Geant4 Cross Reference |
1 #--------------------------------------------- 1 #---------------------------------------------------------------------------- 2 # Setup the project 2 # Setup the project 3 cmake_minimum_required(VERSION 3.16...3.27) << 3 cmake_minimum_required(VERSION 3.8...3.18) >> 4 if(${CMAKE_VERSION} VERSION_LESS 3.12) >> 5 cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}) >> 6 endif() 4 project(B03) 7 project(B03) 5 8 6 #--------------------------------------------- 9 #---------------------------------------------------------------------------- 7 # Find Geant4 package, no UI and Vis drivers a 10 # Find Geant4 package, no UI and Vis drivers activated 8 # 11 # 9 find_package(Geant4 REQUIRED) 12 find_package(Geant4 REQUIRED) 10 13 11 #--------------------------------------------- 14 #---------------------------------------------------------------------------- 12 # Setup Geant4 include directories and compile 15 # Setup Geant4 include directories and compile definitions 13 # 16 # 14 include(${Geant4_USE_FILE}) 17 include(${Geant4_USE_FILE}) 15 18 16 #--------------------------------------------- 19 #---------------------------------------------------------------------------- 17 # Locate sources and headers for this project 20 # Locate sources and headers for this project 18 # 21 # 19 include_directories(${PROJECT_SOURCE_DIR}/incl 22 include_directories(${PROJECT_SOURCE_DIR}/include 20 ${Geant4_INCLUDE_DIR}) 23 ${Geant4_INCLUDE_DIR}) 21 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*. 24 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) 22 file(GLOB headers ${PROJECT_SOURCE_DIR}/includ 25 file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) 23 26 24 #--------------------------------------------- 27 #---------------------------------------------------------------------------- 25 # Add the executable, and link it to the Geant 28 # Add the executable, and link it to the Geant4 libraries 26 # 29 # 27 add_executable(exampleB03 exampleB03.cc ${sour 30 add_executable(exampleB03 exampleB03.cc ${sources} ${headers}) 28 target_link_libraries(exampleB03 ${Geant4_LIBR 31 target_link_libraries(exampleB03 ${Geant4_LIBRARIES}) 29 32 30 #--------------------------------------------- 33 #---------------------------------------------------------------------------- 31 # Copy all scripts to the build directory, i.e 34 # Copy all scripts to the build directory, i.e. the directory in which we 32 # build B03. This is so that we can run the ex 35 # build B03. This is so that we can run the executable directly because it 33 # relies on these scripts being in the current 36 # relies on these scripts being in the current working directory. 34 # 37 # 35 set(B03_SCRIPTS 38 set(B03_SCRIPTS 36 exampleB03.out 39 exampleB03.out 37 ) 40 ) 38 41 39 foreach(_script ${B03_SCRIPTS}) 42 foreach(_script ${B03_SCRIPTS}) 40 configure_file( 43 configure_file( 41 ${PROJECT_SOURCE_DIR}/${_script} 44 ${PROJECT_SOURCE_DIR}/${_script} 42 ${PROJECT_BINARY_DIR}/${_script} 45 ${PROJECT_BINARY_DIR}/${_script} 43 COPYONLY 46 COPYONLY 44 ) 47 ) 45 endforeach() 48 endforeach() 46 49 47 #--------------------------------------------- 50 #---------------------------------------------------------------------------- 48 # Add program to the project targets 51 # Add program to the project targets 49 # (this avoids the need of typing the program 52 # (this avoids the need of typing the program name after make) 50 # 53 # 51 add_custom_target(B03 DEPENDS exampleB03) 54 add_custom_target(B03 DEPENDS exampleB03) 52 55 53 #--------------------------------------------- 56 #---------------------------------------------------------------------------- 54 # Install the executable to 'bin' directory un 57 # Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX 55 # 58 # 56 install(TARGETS exampleB03 DESTINATION bin) 59 install(TARGETS exampleB03 DESTINATION bin) 57 60