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(errProp) 4 project(errProp) 5 5 6 #--------------------------------------------- 6 #---------------------------------------------------------------------------- 7 # Find Geant4 package, no UI and Vis drivers a 7 # Find Geant4 package, no UI and Vis drivers activated 8 # 8 # 9 find_package(Geant4 REQUIRED) 9 find_package(Geant4 REQUIRED) 10 10 11 #--------------------------------------------- 11 #---------------------------------------------------------------------------- 12 # Setup Geant4 include directories and compile 12 # Setup Geant4 include directories and compile definitions 13 # 13 # 14 include(${Geant4_USE_FILE}) 14 include(${Geant4_USE_FILE}) 15 15 16 16 17 #--------------------------------------------- 17 #---------------------------------------------------------------------------- 18 # Locate sources and headers for this project 18 # Locate sources and headers for this project 19 # 19 # 20 include_directories(${PROJECT_SOURCE_DIR}/incl 20 include_directories(${PROJECT_SOURCE_DIR}/include 21 ${Geant4_INCLUDE_DIR}) 21 ${Geant4_INCLUDE_DIR}) 22 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*. 22 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) 23 file(GLOB headers ${PROJECT_SOURCE_DIR}/includ 23 file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) 24 24 25 #--------------------------------------------- 25 #---------------------------------------------------------------------------- 26 # Add the executable, and link it to the Geant 26 # Add the executable, and link it to the Geant4 libraries 27 # 27 # 28 add_executable(errProp errProp.cc ${sources} $ 28 add_executable(errProp errProp.cc ${sources} ${headers}) 29 target_link_libraries(errProp ${Geant4_LIBRARI 29 target_link_libraries(errProp ${Geant4_LIBRARIES} ) 30 30 31 #--------------------------------------------- 31 #---------------------------------------------------------------------------- 32 # Copy all scripts to the build directory, i.e 32 # Copy all scripts to the build directory, i.e. the directory in which we 33 # build errorpropagation. This is so that we c 33 # build errorpropagation. This is so that we can run the executable directly because it 34 # relies on these scripts being in the current 34 # relies on these scripts being in the current working directory. 35 # 35 # 36 set(errorpropagation_SCRIPTS 36 set(errorpropagation_SCRIPTS 37 37 38 ) 38 ) 39 39 40 foreach(_script ${errorpropagation_SCRIPTS}) 40 foreach(_script ${errorpropagation_SCRIPTS}) 41 configure_file( 41 configure_file( 42 ${PROJECT_SOURCE_DIR}/${_script} 42 ${PROJECT_SOURCE_DIR}/${_script} 43 ${PROJECT_BINARY_DIR}/${_script} 43 ${PROJECT_BINARY_DIR}/${_script} 44 COPYONLY 44 COPYONLY 45 ) 45 ) 46 endforeach() 46 endforeach() 47 47 48 #--------------------------------------------- 48 #---------------------------------------------------------------------------- 49 # Add program to the project targets 49 # Add program to the project targets 50 # (this avoids the need of typing the program 50 # (this avoids the need of typing the program name after make) 51 # 51 # 52 add_custom_target(errorpropagation DEPENDS err 52 add_custom_target(errorpropagation DEPENDS errProp) 53 53 54 #--------------------------------------------- 54 #---------------------------------------------------------------------------- 55 # Install the executable to 'bin' directory un 55 # Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX 56 # 56 # 57 install(TARGETS errProp DESTINATION bin) 57 install(TARGETS errProp DESTINATION bin) 58 58