Geant4 Cross Reference |
1 # - Use file for Geant4 1 # - Use file for Geant4 2 # Add Module directory so that examples can us << 2 # This file should be included after a find_package call has successfully 3 # modules. Appended to minimize any conflict w << 3 # located Geant4. If Geant4 has been located via the Geant4Config.cmake 4 # settings << 4 # config file, this will have set the following variable: 5 # DEPRECATED: Only needed by certain examples << 5 # 6 list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_ << 6 # Geant4_USE_FILE : Point to the location of the use file for the found >> 7 # Geant4 installation. >> 8 # >> 9 # Inclusion of this file, e.g. via >> 10 # >> 11 # include(${Geant4_USE_FILE}) >> 12 # >> 13 # results in the addition of the Geant4 compile definitions and >> 14 # include directories to those of the directory in which this file is >> 15 # included. >> 16 # >> 17 # The recommended Geant4 compiler flags are also prepended to >> 18 # CMAKE_CXX_FLAGS but duplicated flags are NOT removed. This permits >> 19 # client of UseGeant4 to override Geant4's recommended flags if required >> 20 # and at their own risk. >> 21 # >> 22 # Advanced users requiring special sets of flags, or the removal of >> 23 # duplicate flags should therefore *not* use this file, preferring the >> 24 # direct use of the Geant4_XXXX variables set by the Geant4Config file. >> 25 # >> 26 # The last thing the module does is to optionally include an internal Use >> 27 # file. This file can contain variables, functions and macros for strict >> 28 # internal use in Geant4, such as building and running validation tests. >> 29 # >> 30 >> 31 #----------------------------------------------------------------------- >> 32 # We need to set the compile definitions and include directories >> 33 # >> 34 add_definitions(${Geant4_DEFINITIONS}) >> 35 include_directories(${Geant4_INCLUDE_DIRS}) >> 36 >> 37 #----------------------------------------------------------------------- >> 38 # Because Geant4 is sensitive to the compiler flags, let's set the base >> 39 # set here. This reproduces as far as possible the behaviour of the >> 40 # original makefile system. However, we append any existing CMake flags in >> 41 # case the user wishes to override these (at their own risk). >> 42 # Though this may lead to duplication, that should not affect behaviour. >> 43 # >> 44 set(CMAKE_CXX_FLAGS "${Geant4_CXX_FLAGS} ${CMAKE_CXX_FLAGS}") >> 45 set(CMAKE_CXX_FLAGS_DEBUG "${Geant4_CXX_FLAGS_DEBUG} ${CMAKE_CXX_FLAGS_DEBUG}") >> 46 set(CMAKE_CXX_FLAGS_MINSIZEREL "${Geant4_CXX_FLAGS_MINSIZEREL} ${CMAKE_CXX_FLAGS_MINSIZEREL}") >> 47 set(CMAKE_CXX_FLAGS_RELEASE "${Geant4_CXX_FLAGS_RELEASE} ${CMAKE_CXX_FLAGS_RELEASE}") >> 48 set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${Geant4_CXX_FLAGS_RELWITHDEBINFO} ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") >> 49 set(CMAKE_EXE_LINKER_FLAGS "${Geant4_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS}") >> 50 >> 51 #----------------------------------------------------------------------- >> 52 # Locate ourselves >> 53 # >> 54 get_filename_component(_use_geant4_dir ${CMAKE_CURRENT_LIST_FILE} PATH) >> 55 >> 56 #----------------------------------------------------------------------- >> 57 # Append the local module path to CMAKE_MODULE_PATH to automatically >> 58 # make FindXXX modules for examples available >> 59 # >> 60 list(APPEND CMAKE_MODULE_PATH ${_use_geant4_dir}/Modules) >> 61 >> 62 #----------------------------------------------------------------------- >> 63 # Include internal use file if it exists. It should only exist in the >> 64 # build tree! >> 65 # >> 66 include(${_use_geant4_dir}/UseGeant4_internal.cmake OPTIONAL) >> 67