Geant4 Cross Reference |
1 1 2 #--------------------------------------------- 2 #---------------------------------------------------------------------------- 3 # Setup the project 3 # Setup the project 4 cmake_minimum_required(VERSION 3.16...3.27) << 4 cmake_minimum_required(VERSION 3.8...3.18) >> 5 if(${CMAKE_VERSION} VERSION_LESS 3.12) >> 6 cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}) >> 7 endif() 5 project(B1Con) 8 project(B1Con) 6 9 7 #--------------------------------------------- 10 #---------------------------------------------------------------------------- 8 # Find Geant4 package, activating all availabl 11 # Find Geant4 package, activating all available UI and Vis drivers by default 9 # You can set WITH_GEANT4_UIVIS to OFF via the 12 # You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui 10 # to build a batch mode only executable 13 # to build a batch mode only executable 11 # 14 # 12 option(WITH_GEANT4_UIVIS "Build example with G 15 option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON) 13 if(WITH_GEANT4_UIVIS) 16 if(WITH_GEANT4_UIVIS) 14 find_package(Geant4 REQUIRED ui_all vis_all) 17 find_package(Geant4 REQUIRED ui_all vis_all) 15 else() 18 else() 16 find_package(Geant4 REQUIRED) 19 find_package(Geant4 REQUIRED) 17 endif() 20 endif() 18 21 19 #--------------------------------------------- 22 #---------------------------------------------------------------------------- 20 # Setup Geant4 include directories and compile 23 # Setup Geant4 include directories and compile definitions 21 # Setup include directory for this project 24 # Setup include directory for this project 22 # 25 # 23 include(${Geant4_USE_FILE}) 26 include(${Geant4_USE_FILE}) 24 include_directories(${PROJECT_SOURCE_DIR}/incl 27 include_directories(${PROJECT_SOURCE_DIR}/include) 25 28 26 29 27 #--------------------------------------------- 30 #---------------------------------------------------------------------------- 28 # Locate sources and headers for this project 31 # Locate sources and headers for this project 29 # NB: headers are included so they will show u 32 # NB: headers are included so they will show up in IDEs 30 # 33 # 31 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*. 34 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) 32 file(GLOB headers ${PROJECT_SOURCE_DIR}/includ 35 file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) 33 36 34 #--------------------------------------------- 37 #---------------------------------------------------------------------------- 35 # Add the executable, and link it to the Geant 38 # Add the executable, and link it to the Geant4 libraries 36 # 39 # 37 add_executable(exampleB1Con exampleB1Con.cc ${ 40 add_executable(exampleB1Con exampleB1Con.cc ${sources} ${headers}) 38 target_link_libraries(exampleB1Con ${Geant4_LI 41 target_link_libraries(exampleB1Con ${Geant4_LIBRARIES}) 39 42 40 #--------------------------------------------- 43 #---------------------------------------------------------------------------- 41 # Copy all scripts to the build directory, i.e 44 # Copy all scripts to the build directory, i.e. the directory in which we 42 # build B1. This is so that we can run the exe 45 # build B1. This is so that we can run the executable directly because it 43 # relies on these scripts being in the current 46 # relies on these scripts being in the current working directory. 44 # 47 # 45 set(EXAMPLEB1_SCRIPTS 48 set(EXAMPLEB1_SCRIPTS 46 exampleB1Con.in 49 exampleB1Con.in 47 exampleB1Con.out 50 exampleB1Con.out >> 51 init.mac 48 init_vis.mac 52 init_vis.mac 49 run1.mac 53 run1.mac 50 run2.mac 54 run2.mac 51 vis.mac 55 vis.mac 52 ) 56 ) 53 57 54 foreach(_script ${EXAMPLEB1_SCRIPTS}) 58 foreach(_script ${EXAMPLEB1_SCRIPTS}) 55 configure_file( 59 configure_file( 56 ${PROJECT_SOURCE_DIR}/${_script} 60 ${PROJECT_SOURCE_DIR}/${_script} 57 ${PROJECT_BINARY_DIR}/${_script} 61 ${PROJECT_BINARY_DIR}/${_script} 58 COPYONLY 62 COPYONLY 59 ) 63 ) 60 endforeach() 64 endforeach() 61 65 62 #--------------------------------------------- 66 #---------------------------------------------------------------------------- 63 # For internal Geant4 use - but has no effect 67 # For internal Geant4 use - but has no effect if you build this 64 # example standalone 68 # example standalone 65 # 69 # 66 add_custom_target(B1Con DEPENDS exampleB1Con) 70 add_custom_target(B1Con DEPENDS exampleB1Con) 67 71 68 #--------------------------------------------- 72 #---------------------------------------------------------------------------- 69 # Install the executable to 'bin' directory un 73 # Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX 70 # 74 # 71 install(TARGETS exampleB1Con DESTINATION bin) 75 install(TARGETS exampleB1Con DESTINATION bin) 72 76 73 77