-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgflags-config-install.cmake
183 lines (172 loc) · 6.12 KB
/
gflags-config-install.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
## gflags CMake configuration file
# library version information
set (GFLAGS_VERSION_STRING "2.2.2")
set (GFLAGS_VERSION_MAJOR 2)
set (GFLAGS_VERSION_MINOR 2)
set (GFLAGS_VERSION_PATCH 0)
# import targets
if (NOT DEFINED GFLAGS_USE_TARGET_NAMESPACE)
set (GFLAGS_USE_TARGET_NAMESPACE FALSE)
endif ()
if (GFLAGS_USE_TARGET_NAMESPACE)
include ("${CMAKE_CURRENT_LIST_DIR}/gflags-targets.cmake")
set (GFLAGS_TARGET_NAMESPACE gflags)
else ()
include ("${CMAKE_CURRENT_LIST_DIR}/gflags-nonamespace-targets.cmake")
set (GFLAGS_TARGET_NAMESPACE)
endif ()
if (GFLAGS_TARGET_NAMESPACE)
set (GFLAGS_TARGET_PREFIX ${GFLAGS_TARGET_NAMESPACE}::)
else ()
set (GFLAGS_TARGET_PREFIX)
endif ()
# installation prefix
get_filename_component (CMAKE_CURRENT_LIST_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component (_INSTALL_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
# include directory
#
# Newer versions of CMake set the INTERFACE_INCLUDE_DIRECTORIES property
# of the imported targets. It is hence not necessary to add this path
# manually to the include search path for targets which link to gflags.
set (GFLAGS_INCLUDE_DIR "${_INSTALL_PREFIX}/include")
if (gflags_FIND_COMPONENTS)
foreach (gflags_FIND_COMPONENT IN LISTS gflags_FIND_COMPONENTS)
if (gflags_FIND_REQUIRED_${gflags_FIND_COMPONENT} AND NOT TARGET ${GFLAGS_TARGET_PREFIX}gflags_${gflags_FIND_COMPONENT})
message (FATAL_ERROR "Package gflags was installed without required component ${GFLAGS_TARGET_PREFIX}${gflags_FIND_COMPONENT}!")
endif ()
endforeach ()
list (GET gflags_FIND_COMPONENTS 0 gflags_FIND_COMPONENT)
else ()
set (gflags_FIND_COMPONENT)
endif ()
# default settings of GFLAGS_SHARED and GFLAGS_NOTHREADS
#
# It is recommended to use either one of the following find_package commands
# instead of setting the GFLAGS_(SHARED|NOTHREADS) variables:
# - find_package(gflags REQUIRED)
# - find_package(gflags COMPONENTS nothreads_static)
# - find_package(gflags COMPONENTS nothreads_shared)
# - find_package(gflags COMPONENTS static)
# - find_package(gflags COMPONENTS shared)
if (NOT DEFINED GFLAGS_SHARED)
if (DEFINED gflags_SHARED)
set (GFLAGS_SHARED ${gflags_SHARED})
elseif (gflags_FIND_COMPONENT)
if (gflags_FIND_COMPONENT MATCHES "shared")
set (GFLAGS_SHARED TRUE)
else ()
set (GFLAGS_SHARED FALSE)
endif ()
elseif (TARGET ${GFLAGS_TARGET_PREFIX}gflags_shared OR TARGET ${GFLAGS_TARGET_PREFIX}gflags_nothreads_shared)
set (GFLAGS_SHARED TRUE)
else ()
set (GFLAGS_SHARED FALSE)
endif ()
endif ()
if (NOT DEFINED GFLAGS_NOTHREADS)
if (DEFINED gflags_NOTHREADS)
set (GFLAGS_NOTHREADS ${gflags_NOTHREADS})
elseif (gflags_FIND_COMPONENT)
if (gflags_FIND_COMPONENT MATCHES "nothreads")
set (GFLAGS_NOTHREADS TRUE)
else ()
set (GFLAGS_NOTHREADS FALSE)
endif ()
elseif (TARGET ${GFLAGS_TARGET_PREFIX}gflags_static OR TARGET ${GFLAGS_TARGET_PREFIX}gflags_shared)
set (GFLAGS_NOTHREADS FALSE)
else ()
set (GFLAGS_NOTHREADS TRUE)
endif ()
endif ()
# choose imported library target
if (NOT GFLAGS_TARGET)
if (gflags_TARGET)
set (GFLAGS_TARGET ${gflags_TARGET})
elseif (GFLAGS_SHARED)
if (GFLAGS_NOTHREADS)
set (GFLAGS_TARGET ${GFLAGS_TARGET_PREFIX}gflags_nothreads_shared)
else ()
set (GFLAGS_TARGET ${GFLAGS_TARGET_PREFIX}gflags_shared)
endif ()
else ()
if (GFLAGS_NOTHREADS)
set (GFLAGS_TARGET ${GFLAGS_TARGET_PREFIX}gflags_nothreads_static)
else ()
set (GFLAGS_TARGET ${GFLAGS_TARGET_PREFIX}gflags_static)
endif ()
endif ()
endif ()
if (NOT TARGET ${GFLAGS_TARGET})
message (FATAL_ERROR "Your gflags installation does not contain a ${GFLAGS_TARGET} library target!"
" Try a different combination of GFLAGS_SHARED and GFLAGS_NOTHREADS.")
endif ()
# add more convenient "${GFLAGS_TARGET_PREFIX}gflags" import target
if (NOT TARGET ${GFLAGS_TARGET_PREFIX}gflags)
if (GFLAGS_SHARED)
add_library (${GFLAGS_TARGET_PREFIX}gflags SHARED IMPORTED)
else ()
add_library (${GFLAGS_TARGET_PREFIX}gflags STATIC IMPORTED)
endif ()
# copy INTERFACE_* properties
foreach (_GFLAGS_PROPERTY_NAME IN ITEMS
COMPILE_DEFINITIONS
COMPILE_FEATURES
COMPILE_OPTIONS
INCLUDE_DIRECTORIES
LINK_LIBRARIES
POSITION_INDEPENDENT_CODE
)
get_target_property (_GFLAGS_PROPERTY_VALUE ${GFLAGS_TARGET} INTERFACE_${_GFLAGS_PROPERTY_NAME})
if (_GFLAGS_PROPERTY_VALUE)
set_target_properties(${GFLAGS_TARGET_PREFIX}gflags PROPERTIES
INTERFACE_${_GFLAGS_PROPERTY_NAME} "${_GFLAGS_PROPERTY_VALUE}"
)
endif ()
endforeach ()
# copy IMPORTED_*_<CONFIG> properties
get_target_property (_GFLAGS_CONFIGURATIONS ${GFLAGS_TARGET} IMPORTED_CONFIGURATIONS)
set_target_properties (${GFLAGS_TARGET_PREFIX}gflags PROPERTIES IMPORTED_CONFIGURATIONS "${_GFLAGS_CONFIGURATIONS}")
foreach (_GFLAGS_PROPERTY_NAME IN ITEMS
IMPLIB
LOCATION
LINK_DEPENDENT_LIBRARIES
LINK_INTERFACE_LIBRARIES
LINK_INTERFACE_LANGUAGES
LINK_INTERFACE_MULTIPLICITY
NO_SONAME
SONAME
)
foreach (_GFLAGS_CONFIG IN LISTS _GFLAGS_CONFIGURATIONS)
get_target_property (_GFLAGS_PROPERTY_VALUE ${GFLAGS_TARGET} IMPORTED_${_GFLAGS_PROPERTY_NAME}_${_GFLAGS_CONFIG})
if (_GFLAGS_PROPERTY_VALUE)
set_target_properties(${GFLAGS_TARGET_PREFIX}gflags PROPERTIES
IMPORTED_${_GFLAGS_PROPERTY_NAME}_${_GFLAGS_CONFIG} "${_GFLAGS_PROPERTY_VALUE}"
)
endif ()
endforeach ()
endforeach ()
unset (_GFLAGS_CONFIGURATIONS)
unset (_GFLAGS_CONFIG)
unset (_GFLAGS_PROPERTY_NAME)
unset (_GFLAGS_PROPERTY_VALUE)
endif ()
# alias for default import target to be compatible with older CMake package configurations
set (GFLAGS_LIBRARIES "${GFLAGS_TARGET}")
# set gflags_* variables for backwards compatibility
if (NOT "^gflags$" STREQUAL "^GFLAGS$")
foreach (_GFLAGS_VARIABLE IN ITEMS
VERSION_STRING
VERSION_MAJOR
VERSION_MINOR
VERSION_PATCH
INCLUDE_DIR
LIBRARIES
TARGET
)
set (gflags_${_GFLAGS_VARIABLE} "${GFLAGS_${_GFLAGS_VARIABLE}}")
endforeach ()
unset (_GFLAGS_VARIABLE)
endif ()
# unset private variables
unset (gflags_FIND_COMPONENT)
unset (_INSTALL_PREFIX)