-
Notifications
You must be signed in to change notification settings - Fork 196
/
Copy pathYARPConfig.cmake.in
308 lines (247 loc) · 12 KB
/
YARPConfig.cmake.in
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
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
# Copyright (C) 2006-2020 Istituto Italiano di Tecnologia (IIT)
# Copyright (C) 2006-2010 RobotCub Consortium
# All rights reserved.
#
# This software may be modified and distributed under the terms of the
# BSD-3-Clause license. See the accompanying LICENSE file for details.
include(CMakeDependentOption)
# Version
set(YARP_VERSION_MAJOR "@YARP_VERSION_MAJOR@")
set(YARP_VERSION_MINOR "@YARP_VERSION_MINOR@")
set(YARP_VERSION_PATCH "@YARP_VERSION_PATCH@")
set(YARP_VERSION_TWEAK "@YARP_VERSION_TWEAK@")
set(YARP_VERSION "@YARP_VERSION@")
set(YARP_VERSION_SHORT "@YARP_VERSION_SHORT@")
# Build type and flags
set(YARP_IS_SHARED_LIBRARY @BUILD_SHARED_LIBS@)
set(YARP_C_COMPILER_ID "@CMAKE_C_COMPILER_ID@")
set(YARP_C_COMPILER_VERSION "@CMAKE_C_COMPILER_VERSION@")
set(YARP_C_FLAGS "@CMAKE_C_FLAGS@")
set(YARP_CXX_COMPILER_ID "@CMAKE_CXX_COMPILER_ID@")
set(YARP_CXX_COMPILER_VERSION "@CMAKE_CXX_COMPILER_VERSION@")
set(YARP_CXX_FLAGS "@CMAKE_CXX_FLAGS@")
@PACKAGE_INIT@
# Check if deprecated methods are built
set(YARP_NO_DEPRECATED @YARP_NO_DEPRECATED@)
if(YARP_NO_DEPRECATED)
add_definitions("-DYARP_NO_DEPRECATED")
else(YARP_NO_DEPRECATED)
set_and_check(YARP_BINDINGS "@PACKAGE_YARP_BINDINGS@")
endif(YARP_NO_DEPRECATED)
# Disable deprecated warnings, but add an option to enable it
cmake_dependent_option(YARP_NO_DEPRECATED_WARNINGS
"Do not warn when using YARP deprecated declarations" FALSE
"NOT YARP_NO_DEPRECATED" FALSE)
mark_as_advanced(YARP_NO_DEPRECATED_WARNINGS)
if(YARP_NO_DEPRECATED_WARNINGS)
add_definitions("-DYARP_NO_DEPRECATED_WARNINGS")
endif()
# Install prefix
set(YARP_INSTALL_PREFIX "@PACKAGE_YARP_INSTALL_PREFIX@")
# Directory containing CMake config files for other exports
set(YARP_CMAKECONFIG_DIR "@PACKAGE_YARP_CMAKECONFIG_DIR@")
# Install directories (relative path)
set(YARP_DATA_INSTALL_DIR "@YARP_DATA_INSTALL_DIR@")
set(YARP_CONFIG_INSTALL_DIR "@YARP_CONFIG_INSTALL_DIR@")
set(YARP_PLUGIN_MANIFESTS_INSTALL_DIR "@YARP_PLUGIN_MANIFESTS_INSTALL_DIR@")
set(YARP_MODULES_INSTALL_DIR "@YARP_MODULES_INSTALL_DIR@")
set(YARP_APPLICATIONS_INSTALL_DIR "@YARP_APPLICATIONS_INSTALL_DIR@")
set(YARP_TEMPLATES_INSTALL_DIR "@YARP_TEMPLATES_INSTALL_DIR@")
set(YARP_APPLICATIONS_TEMPLATES_INSTALL_DIR "@YARP_APPLICATIONS_TEMPLATES_INSTALL_DIR@")
set(YARP_MODULES_TEMPLATES_INSTALL_DIR "@YARP_MODULES_TEMPLATES_INSTALL_DIR@")
set(YARP_CONTEXTS_INSTALL_DIR "@YARP_CONTEXTS_INSTALL_DIR@")
set(YARP_ROBOTS_INSTALL_DIR "@YARP_ROBOTS_INSTALL_DIR@")
set(YARP_STATIC_PLUGINS_INSTALL_DIR "@YARP_STATIC_PLUGINS_INSTALL_DIR@")
set(YARP_DYNAMIC_PLUGINS_INSTALL_DIR "@YARP_DYNAMIC_PLUGINS_INSTALL_DIR@")
set(YARP_QML2_IMPORT_DIR "@YARP_QML2_IMPORT_DIR@")
# Install directories (absolute path)
set_and_check(YARP_DATA_INSTALL_DIR_FULL "@PACKAGE_YARP_DATA_INSTALL_DIR@")
set(YARP_CONFIG_INSTALL_DIR_FULL "@PACKAGE_YARP_CONFIG_INSTALL_DIR@")
set(YARP_PLUGIN_MANIFESTS_INSTALL_DIR_FULL "@PACKAGE_YARP_PLUGIN_MANIFESTS_INSTALL_DIR@")
set(YARP_MODULES_INSTALL_DIR_FULL "@PACKAGE_YARP_MODULES_INSTALL_DIR@")
set(YARP_APPLICATIONS_INSTALL_DIR_FULL "@PACKAGE_YARP_APPLICATIONS_INSTALL_DIR@")
set(YARP_TEMPLATES_INSTALL_DIR_FULL "@PACKAGE_YARP_TEMPLATES_INSTALL_DIR@")
set(YARP_APPLICATIONS_TEMPLATES_INSTALL_DIR_FULL "@PACKAGE_YARP_APPLICATIONS_TEMPLATES_INSTALL_DIR@")
set(YARP_MODULES_TEMPLATES_INSTALL_DIR_FULL "@PACKAGE_YARP_MODULES_TEMPLATES_INSTALL_DIR@")
set(YARP_CONTEXTS_INSTALL_DIR_FULL "@PACKAGE_YARP_CONTEXTS_INSTALL_DIR@")
set(YARP_ROBOTS_INSTALL_DIR_FULL "@PACKAGE_YARP_ROBOTS_INSTALL_DIR@")
set(YARP_STATIC_PLUGINS_INSTALL_DIR_FULL "@PACKAGE_YARP_STATIC_PLUGINS_INSTALL_DIR@")
set(YARP_DYNAMIC_PLUGINS_INSTALL_DIR_FULL "@PACKAGE_YARP_DYNAMIC_PLUGINS_INSTALL_DIR@")
set(YARP_QML2_IMPORT_DIR_FULL "@PACKAGE_YARP_QML2_IMPORT_DIR@")
# Used by YarpIDL.cmake
set(YARP_IDL_BINARY_HINT "@PACKAGE_YARP_IDL_BINARY_HINT@")
# CMake modules directories
set_and_check(YARP_MODULE_DIR "@PACKAGE_YARP_MODULE_DIR@")
# Save the variables, that it should not be modified by find_package(YARP), but
# we need to modify it in order to find all the dependencies.
set(_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
set(_YCM_FOUND ${YCM_FOUND})
# Find YCM if YARP is static therefore we need YCM (or YARP private version) for
# private dependencies.
if(NOT YARP_IS_SHARED_LIBRARY)
include(CMakeFindDependencyMacro)
find_dependency(YCM @YCM_REQUIRED_VERSION@ REQUIRED)
endif()
if(YARP_FIND_COMPONENTS STREQUAL "")
# No components requested.
# Search for the main YARP libraries only.
set(YARP_FIND_COMPONENTS @YARP_DEFAULT_FIND_COMPONENTS@)
endif()
# Find all requested components
set(YARP_LIBRARIES YARP::YARP_init)
foreach(_yarp_component ${YARP_FIND_COMPONENTS})
if(NOT YARP_NO_DEPRECATED) # Since YARP 3.3
set(_yarp_component_is_uppercase_os 0)
if("${_yarp_component}" STREQUAL "OS")
message(DEPRECATION "The 'OS' component is deprecated. Use 'os' instead, and replace YARP::YARP_OS with YARP::YARP_os.")
set(_yarp_component_is_uppercase_os 1)
set(_yarp_component os)
endif()
endif()
set(_YARP_FIND_PART_${_yarp_component}_REQUIRED)
# Only propagate REQUIRED if module was not passed to OPTIONAL_COMPONENTS
if(YARP_FIND_REQUIRED AND YARP_FIND_REQUIRED_${_yarp_component})
set(_YARP_FIND_PART_${_yarp_component}_REQUIRED REQUIRED)
endif()
set(_YARP_FIND_PARTS_QUIET)
if(YARP_FIND_QUIETLY)
set(_YARP_FIND_PARTS_QUIET QUIET)
endif()
get_property(_yarp_${_yarp_component}_transitive_dependency_set GLOBAL PROPERTY _CMAKE_YARP_${_yarp_component}_TRANSITIVE_DEPENDENCY SET)
find_package(YARP_${_yarp_component}
${_YARP_FIND_PARTS_QUIET}
${_YARP_FIND_PART_${_yarp_component}_REQUIRED}
HINTS "${YARP_CMAKECONFIG_DIR}"
NO_DEFAULT_PATH)
# Ensure that YARP components are not shown by FeatureSummary if not requested
# by the user
if(NOT _yarp_${_yarp_component}_transitive_dependency_set)
set_property(GLOBAL PROPERTY _CMAKE_YARP_${_yarp_component}_TRANSITIVE_DEPENDENCY TRUE)
endif()
if(YARP_${_yarp_component}_FOUND AND TARGET YARP::YARP_${_yarp_component})
list(APPEND YARP_LIBRARIES YARP::YARP_${_yarp_component})
endif()
if(NOT YARP_NO_DEPRECATED) # Since YARP 3.3
if(_yarp_component_is_uppercase_os)
set(YARP_OS_FOUND ${YARP_os_FOUND})
endif()
endif()
endforeach()
# Restore the original value of the variables
set(CMAKE_MODULE_PATH ${_CMAKE_MODULE_PATH})
set(YCM_FOUND ${_YCM_FOUND})
unset(_CMAKE_MODULE_PATH)
unset(_YCM_FOUND)
# Ensure that all requested modules are available
check_required_components(YARP)
################################################################################
# Load CMake helper functions
include(${YARP_MODULE_DIR}/YarpPlugin.cmake)
include(${YARP_MODULE_DIR}/YarpInstallationHelpers.cmake)
################################################################################
# If FeatureSummary was included, add DESCRIPTION and URL
if(COMMAND set_package_properties)
set_package_properties(YARP PROPERTIES DESCRIPTION "A library and toolkit for communication and device interfaces"
URL "https://www.yarp.it/")
endif()
################################################################################
# Print YARP information
if(NOT YCM_FIND_QUIETLY)
message(STATUS "Found YARP: ${YARP_DIR} (found version \"${YARP_VERSION}\")")
endif()
################################################################################
# Deprecated variables
if(NOT YARP_NO_DEPRECATED AND NOT COMMAND _YARP_DEPRECATED_VARIABLE_WARNING)
# A macro to print a warning when using deprecated variables, called by
# variable_watch
macro(_YARP_DEPRECATED_VARIABLE_WARNING _variable)
message(DEPRECATION "The ${_variable} variable is deprecated")
endmacro()
# YARP_os_LIBRARY is deprecated since YARP 3.0.0
set(YARP_os_LIBRARY YARP::YARP_os)
variable_watch(YARP_os_LIBRARY _yarp_deprecated_variable_warning)
# YARP_OS_LIBRARY is deprecated since YARP 3.0.0
set(YARP_OS_LIBRARY YARP::YARP_os)
variable_watch(YARP_OS_LIBRARY _yarp_deprecated_variable_warning)
# YARP_SIG_LIBRARY is deprecated since YARP 3.0.0
set(YARP_SIG_LIBRARY YARP::YARP_sig)
variable_watch(YARP_SIG_LIBRARY _yarp_deprecated_variable_warning)
# YARP_MATH_LIBRARY is deprecated since YARP 3.0.0
if(TARGET YARP::YARP_math)
set(YARP_MATH_LIBRARY YARP::YARP_math)
endif()
variable_watch(YARP_MATH_LIBRARY _yarp_deprecated_variable_warning)
# YARP_DEV_LIBRARY is deprecated since YARP 3.0.0
set(YARP_DEV_LIBRARY YARP::YARP_dev)
variable_watch(YARP_DEV_LIBRARY _yarp_deprecated_variable_warning)
# YARP_NAME_LIBRARY is deprecated since YARP 3.0.0
if(TARGET YARP::YARP_name)
set(YARP_NAME_LIBRARY YARP::YARP_name)
endif()
variable_watch(YARP_NAME_LIBRARY _yarp_deprecated_variable_warning)
# YARP_INIT_LIBRARY is deprecated since YARP 3.0.0
set(YARP_INIT_LIBRARY YARP::YARP_init)
variable_watch(YARP_INIT_LIBRARY _yarp_deprecated_variable_warning)
# YARP_HAS_MATH_LIB is deprecated since YARP 3.0.0
set(YARP_HAS_MATH_LIB FALSE)
if(TARGET YARP::YARP_math)
set(YARP_HAS_MATH_LIB TRUE)
endif()
variable_watch(YARP_HAS_MATH_LIB _yarp_deprecated_variable_warning)
# YARP_MATH_LIBRARY is deprecated since YARP 3.0.0
macro(_YARP_HAS_MATH_LIB_IS_DEPRECATED _variable)
message(DEPRECATION "The ${_variable} variable is deprecated. You can check for YARP_math using find_package(YARP COMPONENTS math)")
endmacro()
variable_watch(YARP_MATH_LIBRARY _YARP_HAS_MATH_LIB_IS_DEPRECATED)
# YARP_VERSION_ABI is deprecated since YARP 3.0.0
set(YARP_VERSION_ABI "3")
variable_watch(YARP_VERSION_ABI _yarp_deprecated_variable_warning)
# YARP_INCLUDE_DIRS is deprecated since YARP 3.0.0
variable_watch(YARP_INCLUDE_DIRS _yarp_deprecated_variable_warning)
# YARP_MODULE_PATH is deprecated since YARP 3.0.0
macro(_YARP_MODULE_PATH_IS_DEPRECATED _variable)
message(DEPRECATION "The ${_variable} variable is deprecated. CMake find package modules are now in YCM.")
endmacro()
set(YARP_MODULE_PATH "${YARP_MODULE_DIR}"
"${YARP_MODULE_DIR}/deprecated"
${_YARP_YCM_MODULE_PATH})
variable_watch(YARP_MODULE_PATH _yarp_module_path_is_deprecated)
# YARP_DEFINES is deprecated since YARP 3.0.0
variable_watch(YARP_DEFINES _yarp_deprecated_variable_warning)
# YARP_HAS_IDL is deprecated since YARP 3.0.0
variable_watch(YARP_HAS_IDL _yarp_deprecated_variable_warning)
if(NOT COMMAND yarp_add_idl)
macro(YARP_ADD_IDL)
message(DEPRECATION "Calling \"yarp_add_idl\" without including YARP \"idl_tools\" COMPONENT in \"find_package(YARP)\" is deprecated.")
get_property(_yarp_idl_tools_transitive_dependency_set GLOBAL PROPERTY _CMAKE_YARP_idl_tools_TRANSITIVE_DEPENDENCY SET)
find_package(YARP_idl_tools
${_YARP_FIND_PARTS_QUIET}
${_YARP_FIND_PART_idl_tools_REQUIRED}
HINTS "${YARP_CMAKECONFIG_DIR}"
NO_DEFAULT_PATH)
# Ensure that YARP_idl_tools is not shown by FeatureSummary if not requested
# by the user
if(NOT _yarp_idl_tools_transitive_dependency_set)
set_property(GLOBAL PROPERTY _CMAKE_YARP_idl_tools_TRANSITIVE_DEPENDENCY TRUE)
endif()
yarp_add_idl(${ARGN})
endmacro()
endif()
if(NOT COMMAND yarp_idl_to_dir)
macro(YARP_IDL_TO_DIR)
message(DEPRECATION "Calling \"yarp_idl_to_dir\" without including YARP \"idl_tools\" COMPONENT in \"find_package(YARP)\" is deprecated.")
get_property(_yarp_idl_tools_transitive_dependency_set GLOBAL PROPERTY _CMAKE_YARP_idl_tools_TRANSITIVE_DEPENDENCY SET)
find_package(YARP_idl_tools
${_YARP_FIND_PARTS_QUIET}
${_YARP_FIND_PART_idl_tools_REQUIRED}
HINTS "${YARP_CMAKECONFIG_DIR}"
NO_DEFAULT_PATH)
# Ensure that YARP_idl_tools is not shown by FeatureSummary if not requested
# by the user
if(NOT _yarp_idl_tools_transitive_dependency_set)
set_property(GLOBAL PROPERTY _CMAKE_YARP_idl_tools_TRANSITIVE_DEPENDENCY TRUE)
endif()
yarp_idl_to_dir(${ARGN})
endmacro()
endif()
endif()