1
1
cmake_minimum_required (VERSION 3.1)
2
+ include (GNUInstallDirs)
2
3
3
- project (tsl_robin_map VERSION 0.5.0)
4
+
5
+ project (tsl-robin-map VERSION 0.5.0)
4
6
5
7
add_library (robin_map INTERFACE )
6
8
# Use tsl::robin_map as target, more consistent with other libraries conventions (Boost, Qt, ...)
7
9
add_library (tsl::robin_map ALIAS robin_map)
8
10
9
11
target_include_directories (robin_map INTERFACE
10
12
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>"
11
- "$<INSTALL_INTERFACE:include >" )
13
+ "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >" )
12
14
13
15
list (APPEND headers "${CMAKE_CURRENT_SOURCE_DIR} /include/tsl/robin_growth_policy.h"
14
16
"${CMAKE_CURRENT_SOURCE_DIR} /include/tsl/robin_hash.h"
@@ -19,12 +21,7 @@ target_sources(robin_map INTERFACE "$<BUILD_INTERFACE:${headers}>")
19
21
if (MSVC )
20
22
target_sources (robin_map INTERFACE
21
23
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /tsl-robin-map.natvis>"
22
- "$<INSTALL_INTERFACE:tsl-robin-map.natvis>" )
23
- endif ()
24
-
25
- # Only compatible with CMake version >= 3.8
26
- if (${CMAKE_VERSION} VERSION_GREATER "3.7" )
27
- target_compile_features (robin_map INTERFACE cxx_std_11)
24
+ "$<INSTALL_INTERFACE:${CMAKE_INSTALL_DATAROOTDIR} /tsl-robin-map.natvis>" )
28
25
endif ()
29
26
30
27
@@ -33,50 +30,49 @@ endif()
33
30
# Installation (only compatible with CMake version >= 3.3)
34
31
if (${CMAKE_VERSION} VERSION_GREATER "3.2" )
35
32
include (CMakePackageConfigHelpers)
36
- include (GNUInstallDirs)
37
33
38
34
## Install include directory and potential natvis file
39
35
install (DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR} /include/tsl"
40
36
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} " )
41
37
42
38
if (MSVC )
43
39
install (FILES "${CMAKE_CURRENT_SOURCE_DIR} /tsl-robin-map.natvis"
44
- DESTINATION ". " )
40
+ DESTINATION "${CMAKE_INSTALL_DATAROOTDIR} " )
45
41
endif ()
46
42
47
43
48
44
49
- ## Create and install tsl_robin_mapConfig .cmake
50
- configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR} /cmake/tsl_robin_mapConfig .cmake.in"
51
- "${CMAKE_CURRENT_BINARY_DIR} /tsl_robin_mapConfig .cmake"
52
- INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR } /cmake/tsl_robin_map " )
45
+ ## Create and install tsl-robin-mapConfig .cmake
46
+ configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR} /cmake/tsl-robin-mapConfig .cmake.in"
47
+ "${CMAKE_CURRENT_BINARY_DIR} /tsl-robin-mapConfig .cmake"
48
+ INSTALL_DESTINATION "${CMAKE_INSTALL_DATAROOTDIR } /cmake/tsl-robin-map " )
53
49
54
- install (FILES "${CMAKE_CURRENT_BINARY_DIR} /tsl_robin_mapConfig .cmake"
55
- DESTINATION "${CMAKE_INSTALL_LIBDIR } /cmake/tsl_robin_map " )
50
+ install (FILES "${CMAKE_CURRENT_BINARY_DIR} /tsl-robin-mapConfig .cmake"
51
+ DESTINATION "${CMAKE_INSTALL_DATAROOTDIR } /cmake/tsl-robin-map " )
56
52
57
-
58
53
59
- ## Create and install tsl_robin_mapTargets.cmake
54
+
55
+ ## Create and install tsl-robin-mapTargets.cmake
60
56
install (TARGETS robin_map
61
- EXPORT tsl_robin_mapTargets )
62
-
63
- install (EXPORT tsl_robin_mapTargets
57
+ EXPORT tsl-robin-mapTargets )
58
+
59
+ install (EXPORT tsl-robin-mapTargets
64
60
NAMESPACE tsl::
65
- DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/tsl_robin_map" )
61
+ DESTINATION "${CMAKE_INSTALL_DATAROOTDIR} /cmake/tsl-robin-map" )
62
+
66
63
67
-
68
64
69
- ## Create and install tsl_robin_mapConfigVersion .cmake
70
- # tsl_robin_map is header-only and does not depend on the architecture.
71
- # Remove CMAKE_SIZEOF_VOID_P from tsl_robin_mapConfigVersion .cmake so that a
72
- # tsl_robin_mapConfig .cmake generated for a 64 bit target can be used for 32 bit
65
+ ## Create and install tsl-robin-mapConfigVersion .cmake
66
+ # tsl-robin-map is header-only and does not depend on the architecture.
67
+ # Remove CMAKE_SIZEOF_VOID_P from tsl-robin-mapConfigVersion .cmake so that a
68
+ # tsl-robin-mapConfig .cmake generated for a 64 bit target can be used for 32 bit
73
69
# targets and vice versa.
74
- set (TSL_ROBIN_MAP_CMAKE_SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P} )
70
+ set (CMAKE_SIZEOF_VOID_P_BACKUP ${CMAKE_SIZEOF_VOID_P} )
75
71
unset (CMAKE_SIZEOF_VOID_P )
76
- write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR} /tsl_robin_mapConfigVersion .cmake"
72
+ write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR} /tsl-robin-mapConfigVersion .cmake"
77
73
COMPATIBILITY SameMajorVersion)
78
- set (CMAKE_SIZEOF_VOID_P ${TSL_ROBIN_MAP_CMAKE_SIZEOF_VOID_P } )
74
+ set (CMAKE_SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P_BACKUP } )
79
75
80
- install (FILES "${CMAKE_CURRENT_BINARY_DIR} /tsl_robin_mapConfigVersion .cmake"
81
- DESTINATION "${CMAKE_INSTALL_LIBDIR } /cmake/tsl_robin_map " )
76
+ install (FILES "${CMAKE_CURRENT_BINARY_DIR} /tsl-robin-mapConfigVersion .cmake"
77
+ DESTINATION "${CMAKE_INSTALL_DATAROOTDIR } /cmake/tsl-robin-map " )
82
78
endif ()
0 commit comments