Geant4 Cross Reference |
>> 1 #---------------------------------------------------------------------------- >> 2 # Setup the project >> 3 cmake_minimum_required(VERSION 2.6 FATAL_ERROR) >> 4 project(gflash) 1 5 2 #---Adding example B2 subdirectories explicitl << 6 #---------------------------------------------------------------------------- 3 # and a custom target to for building all ex << 7 # Find Geant4 package, activating all available UI and Vis drivers by default >> 8 # You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui >> 9 # to build a batch mode only executable >> 10 # >> 11 option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON) >> 12 if(WITH_GEANT4_UIVIS) >> 13 find_package(Geant4 REQUIRED ui_all vis_all) >> 14 else() >> 15 find_package(Geant4 REQUIRED) >> 16 endif() 4 17 5 cmake_minimum_required(VERSION 3.16...3.27) << 18 #---------------------------------------------------------------------------- >> 19 # Setup Geant4 include directories and compile definitions >> 20 # >> 21 include(${Geant4_USE_FILE}) 6 22 7 add_subdirectory(gflash1) << 23 #---------------------------------------------------------------------------- 8 add_subdirectory(gflash2) << 24 # Locate sources and headers for this project 9 add_subdirectory(gflash3) << 25 # 10 add_subdirectory(gflasha) << 26 include_directories(${PROJECT_SOURCE_DIR}/include >> 27 ${Geant4_INCLUDE_DIR}) >> 28 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) >> 29 file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) >> 30 >> 31 #---------------------------------------------------------------------------- >> 32 # Add the executable, and link it to the Geant4 libraries >> 33 # >> 34 add_executable(ExGflash ExGflash.cc ${sources} ${headers}) >> 35 target_link_libraries(ExGflash ${Geant4_LIBRARIES} ) >> 36 >> 37 #---------------------------------------------------------------------------- >> 38 # Copy all scripts to the build directory, i.e. the directory in which we >> 39 # build gflash. This is so that we can run the executable directly because it >> 40 # relies on these scripts being in the current working directory. >> 41 # >> 42 set(gflash_SCRIPTS >> 43 test.mac vis.mac >> 44 ) >> 45 >> 46 foreach(_script ${gflash_SCRIPTS}) >> 47 configure_file( >> 48 ${PROJECT_SOURCE_DIR}/${_script} >> 49 ${PROJECT_BINARY_DIR}/${_script} >> 50 COPYONLY >> 51 ) >> 52 endforeach() >> 53 >> 54 #---------------------------------------------------------------------------- >> 55 # Add program to the project targets >> 56 # (this avoids the need of typing the program name after make) >> 57 # >> 58 add_custom_target(gflash DEPENDS ExGflash) >> 59 >> 60 #---------------------------------------------------------------------------- >> 61 # Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX >> 62 # >> 63 install(TARGETS ExGflash DESTINATION bin) 11 64 12 add_custom_target(gflash DEPENDS gflash1 gflas <<