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