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.27) 4 project(B03) 4 project(B03) 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 # Locate sources and headers for this project 17 # Locate sources and headers for this project 18 # 18 # 19 include_directories(${PROJECT_SOURCE_DIR}/incl 19 include_directories(${PROJECT_SOURCE_DIR}/include 20 ${Geant4_INCLUDE_DIR}) 20 ${Geant4_INCLUDE_DIR}) 21 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*. 21 file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc) 22 file(GLOB headers ${PROJECT_SOURCE_DIR}/includ 22 file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh) 23 23 24 #--------------------------------------------- 24 #---------------------------------------------------------------------------- 25 # Add the executable, and link it to the Geant 25 # Add the executable, and link it to the Geant4 libraries 26 # 26 # 27 add_executable(exampleB03 exampleB03.cc ${sour 27 add_executable(exampleB03 exampleB03.cc ${sources} ${headers}) 28 target_link_libraries(exampleB03 ${Geant4_LIBR 28 target_link_libraries(exampleB03 ${Geant4_LIBRARIES}) 29 29 30 #--------------------------------------------- 30 #---------------------------------------------------------------------------- 31 # Copy all scripts to the build directory, i.e 31 # Copy all scripts to the build directory, i.e. the directory in which we 32 # build B03. This is so that we can run the ex 32 # build B03. This is so that we can run the executable directly because it 33 # relies on these scripts being in the current 33 # relies on these scripts being in the current working directory. 34 # 34 # 35 set(B03_SCRIPTS 35 set(B03_SCRIPTS 36 exampleB03.out 36 exampleB03.out 37 ) 37 ) 38 38 39 foreach(_script ${B03_SCRIPTS}) 39 foreach(_script ${B03_SCRIPTS}) 40 configure_file( 40 configure_file( 41 ${PROJECT_SOURCE_DIR}/${_script} 41 ${PROJECT_SOURCE_DIR}/${_script} 42 ${PROJECT_BINARY_DIR}/${_script} 42 ${PROJECT_BINARY_DIR}/${_script} 43 COPYONLY 43 COPYONLY 44 ) 44 ) 45 endforeach() 45 endforeach() 46 46 47 #--------------------------------------------- 47 #---------------------------------------------------------------------------- 48 # Add program to the project targets 48 # Add program to the project targets 49 # (this avoids the need of typing the program 49 # (this avoids the need of typing the program name after make) 50 # 50 # 51 add_custom_target(B03 DEPENDS exampleB03) 51 add_custom_target(B03 DEPENDS exampleB03) 52 52 53 #--------------------------------------------- 53 #---------------------------------------------------------------------------- 54 # Install the executable to 'bin' directory un 54 # Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX 55 # 55 # 56 install(TARGETS exampleB03 DESTINATION bin) 56 install(TARGETS exampleB03 DESTINATION bin) 57 57