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