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