Geant4 Cross Reference |
1 #--------------------------------------------- 1 #---------------------------------------------------------------------------- 2 # Setup the project 2 # Setup the project 3 # 3 # 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(B3a) 8 project(B3a) 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 # See the documentation for a guide on how to << 12 # You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui >> 13 # to build a batch mode only executable 10 # 14 # 11 find_package(Geant4 REQUIRED ui_all vis_all) << 15 option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON) >> 16 if(WITH_GEANT4_UIVIS) >> 17 find_package(Geant4 REQUIRED ui_all vis_all) >> 18 else() >> 19 find_package(Geant4 REQUIRED) >> 20 endif() >> 21 >> 22 #---------------------------------------------------------------------------- >> 23 # Setup Geant4 include directories and compile definitions >> 24 # Setup include directory for this project >> 25 # >> 26 include(${Geant4_USE_FILE}) >> 27 include_directories(${PROJECT_SOURCE_DIR}/include) 12 28 13 #--------------------------------------------- 29 #---------------------------------------------------------------------------- 14 # Locate sources and headers for this project 30 # Locate sources and headers for this project 15 # NB: headers are included so they will show u 31 # NB: headers are included so they will show up in IDEs 16 # 32 # 17 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*. 33 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) 18 file(GLOB headers ${PROJECT_SOURCE_DIR}/includ 34 file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) 19 35 20 #--------------------------------------------- 36 #---------------------------------------------------------------------------- 21 # Add the executable, use our local headers, a << 37 # Add the executable, and link it to the Geant4 libraries 22 # 38 # 23 add_executable(exampleB3a exampleB3a.cc ${sour 39 add_executable(exampleB3a exampleB3a.cc ${sources} ${headers}) 24 target_include_directories(exampleB3a PRIVATE << 40 target_link_libraries(exampleB3a ${Geant4_LIBRARIES}) 25 target_link_libraries(exampleB3a PRIVATE ${Gea << 26 41 27 #--------------------------------------------- 42 #---------------------------------------------------------------------------- 28 # Copy all scripts to the build directory, i.e 43 # Copy all scripts to the build directory, i.e. the directory in which we 29 # build B3a. This is so that we can run the ex 44 # build B3a. This is so that we can run the executable directly because it 30 # relies on these scripts being in the current 45 # relies on these scripts being in the current working directory. 31 # 46 # 32 set(EXAMPLEB3_SCRIPTS 47 set(EXAMPLEB3_SCRIPTS 33 debug.mac 48 debug.mac 34 exampleB3.in 49 exampleB3.in 35 exampleB3.out 50 exampleB3.out 36 init_vis.mac 51 init_vis.mac 37 run1.mac 52 run1.mac 38 run2.mac 53 run2.mac 39 vis.mac 54 vis.mac 40 ) 55 ) 41 56 42 foreach(_script ${EXAMPLEB3_SCRIPTS}) 57 foreach(_script ${EXAMPLEB3_SCRIPTS}) 43 configure_file( 58 configure_file( 44 ${PROJECT_SOURCE_DIR}/${_script} 59 ${PROJECT_SOURCE_DIR}/${_script} 45 ${PROJECT_BINARY_DIR}/${_script} 60 ${PROJECT_BINARY_DIR}/${_script} 46 COPYONLY 61 COPYONLY 47 ) 62 ) 48 endforeach() 63 endforeach() >> 64 >> 65 #---------------------------------------------------------------------------- >> 66 # For internal Geant4 use - but has no effect if you build this >> 67 # example standalone >> 68 # >> 69 add_custom_target(B3a DEPENDS exampleB3a) >> 70 >> 71 #---------------------------------------------------------------------------- >> 72 # Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX >> 73 # >> 74 install(TARGETS exampleB3a DESTINATION bin )