Geant4 Cross Reference |
1 #--------------------------------------------- 1 #---------------------------------------------------------------------------- 2 # Setup the project 2 # Setup the project 3 cmake_minimum_required(VERSION 3.16...3.27) << 3 cmake_minimum_required(VERSION 3.16...3.21) 4 project(wholeNuclearDNA) 4 project(wholeNuclearDNA) 5 5 6 #--------------------------------------------- 6 #---------------------------------------------------------------------------- 7 # Find Geant4 package, activating all availabl 7 # Find Geant4 package, activating all available UI and Vis drivers by default 8 # You can set WITH_GEANT4_UIVIS to OFF via the 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 9 # to build a batch mode only executable 10 # 10 # 11 option(WITH_GEANT4_UIVIS "Build example with G 11 option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON) 12 if(WITH_GEANT4_UIVIS) 12 if(WITH_GEANT4_UIVIS) 13 find_package(Geant4 REQUIRED ui_all vis_all) 13 find_package(Geant4 REQUIRED ui_all vis_all) 14 else() 14 else() 15 find_package(Geant4 REQUIRED) 15 find_package(Geant4 REQUIRED) 16 endif() 16 endif() 17 17 18 #--------------------------------------------- 18 #---------------------------------------------------------------------------- 19 # Setup Geant4 include directories and compile 19 # Setup Geant4 include directories and compile definitions 20 # 20 # 21 include(${Geant4_USE_FILE}) 21 include(${Geant4_USE_FILE}) 22 22 23 #--------------------------------------------- 23 #---------------------------------------------------------------------------- 24 # Locate sources and headers for this project 24 # Locate sources and headers for this project 25 # 25 # 26 include_directories(${PROJECT_SOURCE_DIR}/incl 26 include_directories(${PROJECT_SOURCE_DIR}/include 27 ${Geant4_INCLUDE_DIR}) 27 ${Geant4_INCLUDE_DIR}) 28 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*. 28 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) 29 file(GLOB headers ${PROJECT_SOURCE_DIR}/includ 29 file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) 30 30 31 #--------------------------------------------- 31 #---------------------------------------------------------------------------- 32 # Add the executable, and link it to the Geant 32 # Add the executable, and link it to the Geant4 libraries 33 # 33 # 34 34 35 add_executable(${PROJECT_NAME} ${PROJECT_NAME} 35 add_executable(${PROJECT_NAME} ${PROJECT_NAME}.cc ${sources} ${headers}) 36 target_link_libraries(${PROJECT_NAME} ${Geant4 36 target_link_libraries(${PROJECT_NAME} ${Geant4_LIBRARIES} ) 37 37 38 #--------------------------------------------- 38 #---------------------------------------------------------------------------- 39 # Copy all scripts to the build directory, i.e 39 # Copy all scripts to the build directory, i.e. the directory in which we 40 # build microdosimetry. This is so that we can 40 # build microdosimetry. This is so that we can run the executable directly because it 41 # relies on these scripts being in the current 41 # relies on these scripts being in the current working directory. 42 # 42 # 43 set(dnageometry_SCRIPTS 43 set(dnageometry_SCRIPTS 44 wholenucleardna.in 44 wholenucleardna.in 45 vis.mac 45 vis.mac 46 chromo1.dat 46 chromo1.dat 47 chromo2.dat 47 chromo2.dat 48 chromo3.dat 48 chromo3.dat 49 chromo4.dat 49 chromo4.dat 50 chromo5.dat 50 chromo5.dat 51 chromo6.dat 51 chromo6.dat 52 chromo7.dat 52 chromo7.dat 53 chromo8.dat 53 chromo8.dat 54 chromo9.dat 54 chromo9.dat 55 chromo10.dat 55 chromo10.dat 56 chromo11.dat 56 chromo11.dat 57 chromo12.dat 57 chromo12.dat 58 chromo13.dat 58 chromo13.dat 59 chromo14.dat 59 chromo14.dat 60 chromo15.dat 60 chromo15.dat 61 chromo16.dat 61 chromo16.dat 62 chromo17.dat 62 chromo17.dat 63 chromo18.dat 63 chromo18.dat 64 chromo19.dat 64 chromo19.dat 65 chromo20.dat 65 chromo20.dat 66 chromo21.dat 66 chromo21.dat 67 chromo22.dat 67 chromo22.dat 68 chromoX.dat 68 chromoX.dat 69 chromoY.dat 69 chromoY.dat 70 ) 70 ) 71 71 72 file(GLOB SCRIPTS ${PROJECT_SOURCE_DIR}/*.mac 72 file(GLOB SCRIPTS ${PROJECT_SOURCE_DIR}/*.mac 73 ${PROJECT_SOURCE_DIR}/*.in 73 ${PROJECT_SOURCE_DIR}/*.in 74 ${PROJECT_SOURCE_DIR}/*.dat 74 ${PROJECT_SOURCE_DIR}/*.dat 75 ${PROJECT_SOURCE_DIR}/*.C 75 ${PROJECT_SOURCE_DIR}/*.C 76 ) 76 ) 77 77 78 foreach(_script ${SCRIPTS}) 78 foreach(_script ${SCRIPTS}) 79 configure_file( 79 configure_file( 80 ${_script} 80 ${_script} 81 ${PROJECT_BINARY_DIR}/. 81 ${PROJECT_BINARY_DIR}/. 82 COPYONLY 82 COPYONLY 83 ) 83 ) 84 endforeach() 84 endforeach() 85 85 86 #--------------------------------------------- 86 #---------------------------------------------------------------------------- 87 # Install the executable to 'bin' directory un 87 # Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX 88 # 88 # 89 install(TARGETS ${PROJECT_NAME} DESTINATION bi 89 install(TARGETS ${PROJECT_NAME} DESTINATION bin) 90 90