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