Geant4 Cross Reference |
1 #--------------------------------------------- 1 #---------------------------------------------------------------------------- 2 # Setup the project 2 # Setup the project 3 3 4 cmake_minimum_required(VERSION 3.16...3.27) << 4 cmake_minimum_required(VERSION 3.16...3.21) 5 project(saxs) 5 project(saxs) 6 6 7 #--------------------------------------------- 7 #---------------------------------------------------------------------------- 8 # Find Geant4 package, activating all availabl 8 # Find Geant4 package, activating all available UI and Vis drivers by default 9 # You can set WITH_GEANT4_UIVIS to OFF via the 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 10 # to build a batch mode only executable 11 11 12 option(WITH_GEANT4_UIVIS "Build SAXS with Gean 12 option(WITH_GEANT4_UIVIS "Build SAXS with Geant4 UI and Vis drivers" ON) 13 if(WITH_GEANT4_UIVIS) 13 if(WITH_GEANT4_UIVIS) 14 find_package(Geant4 REQUIRED ui_all vis_all) 14 find_package(Geant4 REQUIRED ui_all vis_all) 15 else() 15 else() 16 find_package(Geant4 REQUIRED) 16 find_package(Geant4 REQUIRED) 17 endif() 17 endif() 18 18 19 #--------------------------------------------- 19 #---------------------------------------------------------------------------- 20 # Setup Geant4 include directories and compile 20 # Setup Geant4 include directories and compile definitions 21 # Setup include directory for this project 21 # Setup include directory for this project 22 22 23 include(${Geant4_USE_FILE}) 23 include(${Geant4_USE_FILE}) 24 include_directories(${PROJECT_SOURCE_DIR}/incl 24 include_directories(${PROJECT_SOURCE_DIR}/include) 25 25 26 #--------------------------------------------- 26 #---------------------------------------------------------------------------- 27 # Locate sources and headers for this project 27 # Locate sources and headers for this project 28 # NB: headers are included so they will show u 28 # NB: headers are included so they will show up in IDEs 29 29 30 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*. 30 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) 31 file(GLOB headers ${PROJECT_SOURCE_DIR}/includ 31 file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) 32 32 33 #--------------------------------------------- 33 #---------------------------------------------------------------------------- 34 # Add the executable, and link it to the Geant 34 # Add the executable, and link it to the Geant4 libraries 35 35 36 add_executable(saxs saxs.cc ${sources} ${heade 36 add_executable(saxs saxs.cc ${sources} ${headers}) 37 target_link_libraries(saxs ${Geant4_LIBRARIES} 37 target_link_libraries(saxs ${Geant4_LIBRARIES}) 38 38 39 #--------------------------------------------- 39 #---------------------------------------------------------------------------- 40 # Copy all scripts to the build directory, i.e 40 # Copy all scripts to the build directory, i.e. the directory in which we 41 # build SAXS. This is so that we can run the e 41 # build SAXS. This is so that we can run the executable directly because it 42 # relies on these scripts being in the current 42 # relies on these scripts being in the current working directory. 43 43 44 set(SAXS_SCRIPTS 44 set(SAXS_SCRIPTS 45 init_vis.mac 45 init_vis.mac 46 vis.mac 46 vis.mac 47 gui.mac 47 gui.mac 48 geom.mac 48 geom.mac 49 myFF.dat 49 myFF.dat 50 saxs.in 50 saxs.in 51 saxs_slits.in 51 saxs_slits.in 52 test.in 52 test.in 53 scattAnalysis.C 53 scattAnalysis.C 54 ADXRD.C 54 ADXRD.C 55 ) 55 ) 56 56 57 foreach(_script ${SAXS_SCRIPTS}) 57 foreach(_script ${SAXS_SCRIPTS}) 58 configure_file( 58 configure_file( 59 ${PROJECT_SOURCE_DIR}/${_script} 59 ${PROJECT_SOURCE_DIR}/${_script} 60 ${PROJECT_BINARY_DIR}/${_script} 60 ${PROJECT_BINARY_DIR}/${_script} 61 COPYONLY 61 COPYONLY 62 ) 62 ) 63 endforeach() 63 endforeach() 64 64 65 #--------------------------------------------- 65 #---------------------------------------------------------------------------- 66 # For internal Geant4 use - but has no effect 66 # For internal Geant4 use - but has no effect if you build this 67 # example standalone 67 # example standalone 68 # add_custom_target(saxs_custom DEPENDS saxs) 68 # add_custom_target(saxs_custom DEPENDS saxs) 69 69 70 #--------------------------------------------- 70 #---------------------------------------------------------------------------- 71 # Install the executable to 'bin' directory un 71 # Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX 72 72 73 install(TARGETS saxs DESTINATION bin) 73 install(TARGETS saxs DESTINATION bin) 74 74