Warning, /acts/Core/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 configure_file(
0002 ActsVersion.hpp.in
0003 ${CMAKE_CURRENT_BINARY_DIR}/include/Acts/ActsVersion.hpp
0004 )
0005
0006 # source files will be added later
0007 acts_add_library(Core "")
0008
0009 target_sources(ActsCore PRIVATE src/ActsVersion.cpp)
0010
0011 target_compile_features(ActsCore PUBLIC ${ACTS_CXX_STANDARD_FEATURE})
0012
0013 set(ACTS_GEOMETRY_MODULE_CAPI 1)
0014 set(_acts_geometry_module_abi_tag
0015 "acts-${Acts_VERSION}|sys-${CMAKE_SYSTEM_NAME}|arch-${CMAKE_SYSTEM_PROCESSOR}|cxx-${CMAKE_CXX_COMPILER_ID}-${CMAKE_CXX_COMPILER_VERSION}|capi-${ACTS_GEOMETRY_MODULE_CAPI}"
0016 )
0017 set(ACTS_GEOMETRY_MODULE_ABI_TAG
0018 "${_acts_geometry_module_abi_tag}"
0019 CACHE INTERNAL
0020 "ACTS geometry module ABI tag"
0021 )
0022
0023 target_include_directories(
0024 ActsCore
0025 PUBLIC
0026 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
0027 # for the generated version header
0028 $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
0029 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
0030 )
0031 target_link_libraries(ActsCore PUBLIC Boost::boost Eigen3::Eigen)
0032
0033 find_package(Threads REQUIRED)
0034 target_link_libraries(ActsCore PRIVATE Threads::Threads)
0035 if(CMAKE_DL_LIBS)
0036 target_link_libraries(ActsCore PRIVATE ${CMAKE_DL_LIBS})
0037 endif()
0038
0039 target_compile_definitions(
0040 ActsCore
0041 PRIVATE ACTS_GEOMETRY_MODULE_ABI_TAG="${_acts_geometry_module_abi_tag}"
0042 )
0043
0044 if(ACTS_PARAMETER_DEFINITIONS_HEADER)
0045 target_compile_definitions(
0046 ActsCore
0047 PUBLIC
0048 -DACTS_PARAMETER_DEFINITIONS_HEADER="${ACTS_PARAMETER_DEFINITIONS_HEADER}"
0049 )
0050 endif()
0051
0052 if(ACTS_SOURCELINK_SBO_SIZE)
0053 target_compile_definitions(
0054 ActsCore
0055 PUBLIC -DACTS_SOURCELINK_SBO_SIZE=${ACTS_SOURCELINK_SBO_SIZE}
0056 )
0057 endif()
0058
0059 if(ACTS_ENABLE_LOG_FAILURE_THRESHOLD)
0060 message(STATUS "Enable log failure threshold")
0061 target_compile_definitions(
0062 ActsCore
0063 PUBLIC -DACTS_ENABLE_LOG_FAILURE_THRESHOLD
0064 )
0065 endif()
0066
0067 if(ACTS_ENABLE_CPU_PROFILING)
0068 message(STATUS "added lprofiler")
0069
0070 if(NOT ACTS_GPERF_INSTALL_DIR STREQUAL "")
0071 find_library(PROFILER_LIBRARY profiler HINTS ${ACTS_GPERF_INSTALL_DIR})
0072
0073 target_link_libraries(ActsCore PUBLIC ${PROFILER_LIBRARY})
0074 else()
0075 target_link_libraries(ActsCore PUBLIC -lprofiler)
0076 endif()
0077
0078 target_link_options(ActsCore PUBLIC "LINKER:-no-as-needed")
0079 endif()
0080
0081 if(ACTS_ENABLE_MEMORY_PROFILING)
0082 message(STATUS "added ltcmalloc")
0083
0084 if(NOT ACTS_GPERF_INSTALL_DIR STREQUAL "")
0085 find_library(TCMALLOC_LIBRARY tcmalloc HINTS ${ACTS_GPERF_INSTALL_DIR})
0086
0087 target_link_libraries(ActsCore PUBLIC ${TCMALLOC_LIBRARY})
0088 else()
0089 target_link_libraries(ActsCore PUBLIC -ltcmalloc)
0090 endif()
0091 endif()
0092
0093 install(DIRECTORY include/Acts DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
0094
0095 # Install version header based on git repository status
0096 if(_acts_is_git_repo)
0097 # For git repositories, generate header with hash at install time
0098 install(
0099 CODE
0100 "
0101 # Get git hash at install time
0102 execute_process(
0103 COMMAND git rev-parse HEAD
0104 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0105 OUTPUT_VARIABLE _install_git_hash
0106 OUTPUT_STRIP_TRAILING_WHITESPACE
0107 ERROR_QUIET
0108 )
0109 execute_process(
0110 COMMAND git rev-parse --short HEAD
0111 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0112 OUTPUT_VARIABLE _install_git_hash_short
0113 OUTPUT_STRIP_TRAILING_WHITESPACE
0114 ERROR_QUIET
0115 )
0116 execute_process(
0117 COMMAND git diff-index --quiet HEAD --
0118 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
0119 RESULT_VARIABLE _git_is_dirty
0120 ERROR_QUIET
0121 )
0122
0123 if(NOT _git_is_dirty EQUAL 0)
0124 set(_install_git_hash \"\${_install_git_hash}-dirty\")
0125 set(_install_git_hash_short \"\${_install_git_hash_short}-dirty\")
0126 endif()
0127
0128 # Configure the version file with hash and version numbers
0129 set(_acts_commit_hash \"\\\"\${_install_git_hash}\\\"\")
0130 set(_acts_commit_hash_short \"\\\"\${_install_git_hash_short}\\\"\")
0131 set(PROJECT_VERSION_MAJOR \"${PROJECT_VERSION_MAJOR}\")
0132 set(PROJECT_VERSION_MINOR \"${PROJECT_VERSION_MINOR}\")
0133 set(PROJECT_VERSION_PATCH \"${PROJECT_VERSION_PATCH}\")
0134 configure_file(
0135 ${CMAKE_CURRENT_SOURCE_DIR}/ActsVersion.hpp.in
0136 ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/Acts/ActsVersion.hpp
0137 @ONLY
0138 )
0139 "
0140 )
0141 else()
0142 # For non-git sources (e.g., tarball), just copy the build-time header
0143 install(
0144 FILES ${CMAKE_CURRENT_BINARY_DIR}/include/Acts/ActsVersion.hpp
0145 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/Acts
0146 )
0147 endif()
0148
0149 # target source files are added separately
0150 add_subdirectory(src/EventData)
0151 add_subdirectory(src/Definitions)
0152 add_subdirectory(src/Geometry)
0153 add_subdirectory(src/MagneticField)
0154 add_subdirectory(src/Material)
0155 add_subdirectory(src/Navigation)
0156 add_subdirectory(src/Propagator)
0157 add_subdirectory(src/Seeding)
0158 add_subdirectory(src/SpacePointFormation)
0159 add_subdirectory(src/Surfaces)
0160 add_subdirectory(src/TrackFinding)
0161 add_subdirectory(src/TrackFitting)
0162 add_subdirectory(src/Utilities)
0163 add_subdirectory(src/Vertexing)
0164 add_subdirectory(src/Visualization)
0165 add_subdirectory(src/AmbiguityResolution)
0166
0167 acts_compile_headers(
0168 Core
0169 GLOB include/Acts/**/*.hpp
0170 # deprecated forwarding headers, which emit a warning
0171 EXCLUDE "include/Acts/Material/interface/"
0172 )