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