Warning, /sdk/heaptrack/3rdparty/robin-map/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.1)
0002
0003 project(tsl-robin-map VERSION 1.2.1 LANGUAGES CXX)
0004
0005 include(GNUInstallDirs)
0006
0007
0008 add_library(robin_map INTERFACE)
0009 # Use tsl::robin_map as target, more consistent with other libraries conventions (Boost, Qt, ...)
0010 add_library(tsl::robin_map ALIAS robin_map)
0011
0012 target_include_directories(robin_map INTERFACE
0013 "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
0014 "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
0015
0016 list(APPEND headers "${CMAKE_CURRENT_SOURCE_DIR}/include/tsl/robin_growth_policy.h"
0017 "${CMAKE_CURRENT_SOURCE_DIR}/include/tsl/robin_hash.h"
0018 "${CMAKE_CURRENT_SOURCE_DIR}/include/tsl/robin_map.h"
0019 "${CMAKE_CURRENT_SOURCE_DIR}/include/tsl/robin_set.h")
0020 target_sources(robin_map INTERFACE "$<BUILD_INTERFACE:${headers}>")
0021
0022 if(MSVC)
0023 target_sources(robin_map INTERFACE
0024 "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/tsl-robin-map.natvis>"
0025 "$<INSTALL_INTERFACE:${CMAKE_INSTALL_DATAROOTDIR}/tsl-robin-map.natvis>")
0026 endif()
0027
0028
0029
0030
0031 set(IS_SUBPROJECT TRUE)
0032 if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
0033 set(IS_SUBPROJECT FALSE)
0034 endif()
0035
0036 # Installation (only compatible with CMake version >= 3.3)
0037 if(NOT IS_SUBPROJECT AND ${CMAKE_VERSION} VERSION_GREATER "3.2")
0038 include(CMakePackageConfigHelpers)
0039
0040 ## Install include directory and potential natvis file
0041 install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/tsl"
0042 DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
0043
0044 if(MSVC)
0045 install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/tsl-robin-map.natvis"
0046 DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}")
0047 endif()
0048
0049
0050
0051 ## Create and install tsl-robin-mapConfig.cmake
0052 configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/tsl-robin-mapConfig.cmake.in"
0053 "${CMAKE_CURRENT_BINARY_DIR}/tsl-robin-mapConfig.cmake"
0054 INSTALL_DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/cmake/tsl-robin-map")
0055
0056 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/tsl-robin-mapConfig.cmake"
0057 DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/cmake/tsl-robin-map")
0058
0059
0060 ## Create local tsl-robin-mapTargets.cmake
0061 export(TARGETS robin_map NAMESPACE tsl:: FILE "${CMAKE_CURRENT_BINARY_DIR}/tsl-robin-mapTargets.cmake")
0062
0063 ## Create and install global tsl-robin-mapTargets.cmake
0064 install(TARGETS robin_map
0065 EXPORT tsl-robin-mapTargets)
0066
0067 install(EXPORT tsl-robin-mapTargets
0068 NAMESPACE tsl::
0069 DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/cmake/tsl-robin-map")
0070
0071
0072
0073 ## Create and install tsl-robin-mapConfigVersion.cmake
0074 # tsl-robin-map is header-only and does not depend on the architecture.
0075 # Remove CMAKE_SIZEOF_VOID_P from tsl-robin-mapConfigVersion.cmake so that a
0076 # tsl-robin-mapConfig.cmake generated for a 64 bit target can be used for 32 bit
0077 # targets and vice versa.
0078 set(CMAKE_SIZEOF_VOID_P_BACKUP ${CMAKE_SIZEOF_VOID_P})
0079 unset(CMAKE_SIZEOF_VOID_P)
0080 write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/tsl-robin-mapConfigVersion.cmake"
0081 COMPATIBILITY SameMajorVersion)
0082 set(CMAKE_SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P_BACKUP})
0083
0084 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/tsl-robin-mapConfigVersion.cmake"
0085 DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/cmake/tsl-robin-map")
0086 endif()