Geant4 Cross Reference |
1 #---------------------------------------------------------------------------- 2 # Setup the project 3 # 4 cmake_minimum_required(VERSION 3.16...3.27) 5 project(ch0) 6 7 #---------------------------------------------------------------------------- 8 # Find Geant4 package, activating all available UI and Vis drivers by default 9 # You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui 10 # to build a batch mode only executable 11 # 12 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) 26 27 #---------------------------------------------------------------------------- 28 # Locate sources and headers for this project 29 # NB: headers are included so they will show up in IDEs 30 # 31 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) 32 file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) 33 34 #---------------------------------------------------------------------------- 35 # Install data 36 # 37 file(GLOB _data RELATIVE ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/data/*.txt) 38 foreach(_dat ${_data}) 39 configure_file( 40 ${PROJECT_SOURCE_DIR}/${_dat} 41 ${PROJECT_BINARY_DIR}/${_dat} 42 COPYONLY 43 ) 44 endforeach() 45 file(GLOB _data RELATIVE ${PROJECT_SOURCE_DIR}/mac ${PROJECT_SOURCE_DIR}/mac/*.mac) 46 foreach(_dat ${_data}) 47 configure_file( 48 ${PROJECT_SOURCE_DIR}/mac/${_dat} 49 ${PROJECT_BINARY_DIR}/${_dat} 50 COPYONLY 51 ) 52 endforeach() 53 file(GLOB _data RELATIVE ${PROJECT_SOURCE_DIR}/analysis ${PROJECT_SOURCE_DIR}/analysis/*.sh ${PROJECT_SOURCE_DIR}/analysis/*.C) 54 foreach(_dat ${_data}) 55 configure_file( 56 ${PROJECT_SOURCE_DIR}/analysis/${_dat} 57 ${PROJECT_BINARY_DIR}/${_dat} 58 COPYONLY 59 ) 60 endforeach() 61 62 63 #---------------------------------------------------------------------------- 64 # Add the executable, and link it to the Geant4 libraries 65 # 66 add_executable(ch0 ch0.cc ${sources} ${headers}) 67 target_link_libraries(ch0 ${Geant4_LIBRARIES}) 68 69 70 #---------------------------------------------------------------------------- 71 # For internal Geant4 use - but has no effect if you build this 72 # example standalone 73 # 74 add_custom_target(ch0_custom DEPENDS ch0) 75 76 #---------------------------------------------------------------------------- 77 # Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX 78 # 79 install(TARGETS ch0 DESTINATION bin)