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.16...3.27) 4 project(TestEm1) 4 project(TestEm1) 5 5 6 #--------------------------------------------- 6 #---------------------------------------------------------------------------- 7 # Find Geant4 package, activating all availabl 7 # Find Geant4 package, activating all available UI and Vis drivers by default 8 # You can set WITH_GEANT4_UIVIS to OFF via the 8 # You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui 9 # to build a batch mode only executable 9 # to build a batch mode only executable 10 # 10 # 11 option(WITH_GEANT4_UIVIS "Build example with G 11 option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON) 12 if(WITH_GEANT4_UIVIS) 12 if(WITH_GEANT4_UIVIS) 13 find_package(Geant4 REQUIRED ui_all vis_all) 13 find_package(Geant4 REQUIRED ui_all vis_all) 14 else() 14 else() 15 find_package(Geant4 REQUIRED) 15 find_package(Geant4 REQUIRED) 16 endif() 16 endif() 17 17 18 #--------------------------------------------- 18 #---------------------------------------------------------------------------- 19 # Setup Geant4 include directories and compile 19 # Setup Geant4 include directories and compile definitions 20 # 20 # 21 include(${Geant4_USE_FILE}) 21 include(${Geant4_USE_FILE}) 22 22 23 #--------------------------------------------- 23 #---------------------------------------------------------------------------- 24 # Locate sources and headers for this project 24 # Locate sources and headers for this project 25 # 25 # 26 include_directories(${PROJECT_SOURCE_DIR}/incl 26 include_directories(${PROJECT_SOURCE_DIR}/include 27 ${Geant4_INCLUDE_DIR}) 27 ${Geant4_INCLUDE_DIR}) 28 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*. 28 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) 29 file(GLOB headers ${PROJECT_SOURCE_DIR}/includ 29 file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) 30 30 31 #--------------------------------------------- 31 #---------------------------------------------------------------------------- 32 # Add the executable, and link it to the Geant 32 # Add the executable, and link it to the Geant4 libraries 33 # 33 # 34 add_executable(TestEm1 TestEm1.cc ${sources} $ 34 add_executable(TestEm1 TestEm1.cc ${sources} ${headers} ${TOOLS_FORTRAN_OBJECTS}) 35 target_link_libraries(TestEm1 ${Geant4_LIBRARI 35 target_link_libraries(TestEm1 ${Geant4_LIBRARIES} ${HBOOK_LIBRARIES}) 36 36 37 #--------------------------------------------- 37 #---------------------------------------------------------------------------- 38 # Copy all scripts to the build directory, i.e 38 # Copy all scripts to the build directory, i.e. the directory in which we 39 # build TestEm1. This is so that we can run th 39 # build TestEm1. This is so that we can run the executable directly because it 40 # relies on these scripts being in the current 40 # relies on these scripts being in the current working directory. 41 # 41 # 42 set(TestEm1_SCRIPTS 42 set(TestEm1_SCRIPTS 43 alphaRange.mac annihil.mac brems.mac decay 43 alphaRange.mac annihil.mac brems.mac decayinfly.mac erange.mac etaDecay.mac gammaconversion.mac 44 geantino.mac ionRange.mac photoelec.mac ph 44 geantino.mac ionRange.mac photoelec.mac photon.mac radioactive.mac range.mac runs.mac 45 pRange.mac stepMax.mac TestEm1.in TestEm1. 45 pRange.mac stepMax.mac TestEm1.in TestEm1.out vis.mac 46 ) 46 ) 47 47 48 foreach(_script ${TestEm1_SCRIPTS}) 48 foreach(_script ${TestEm1_SCRIPTS}) 49 configure_file( 49 configure_file( 50 ${PROJECT_SOURCE_DIR}/${_script} 50 ${PROJECT_SOURCE_DIR}/${_script} 51 ${PROJECT_BINARY_DIR}/${_script} 51 ${PROJECT_BINARY_DIR}/${_script} 52 COPYONLY 52 COPYONLY 53 ) 53 ) 54 endforeach() 54 endforeach() 55 55 56 #--------------------------------------------- 56 #---------------------------------------------------------------------------- 57 # Install the executable to 'bin' directory un 57 # Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX 58 # 58 # 59 install(TARGETS TestEm1 DESTINATION bin) 59 install(TARGETS TestEm1 DESTINATION bin) 60 60