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()