forked from conda-forge/libignition-cmake0-feedstock
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add fix to FindUUID to avoid spurious dependencies on libuuid on macOS
Backport of gazebosim/gz-cmake#128 Fix of the problems reported in conda-forge/libuuid-feedstock#16 for Ignition libraries.
- Loading branch information
1 parent
592c882
commit 356f03c
Showing
2 changed files
with
107 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
From 5cf1583efaa4742d8bf9e405f47956c506546a25 Mon Sep 17 00:00:00 2001 | ||
From: Silvio Traversaro <silvio.traversaro@iit.it> | ||
Date: Sun, 15 Nov 2020 23:25:17 +0100 | ||
Subject: [PATCH] FindUUID: Always define UUID::UUID on Apple platforms | ||
|
||
On Apple platforms, the headers of libuuid and its symbols | ||
are provided by the OS SDK, so no further linking is necessary. | ||
|
||
Fix https://github.com/ignitionrobotics/ign-cmake/issues/127 | ||
|
||
Signed-off-by: Silvio Traversaro <silvio.traversaro@iit.it> | ||
--- | ||
cmake/FindUUID.cmake | 79 ++++++++++++++++++++++++-------------------- | ||
1 file changed, 43 insertions(+), 36 deletions(-) | ||
|
||
diff --git a/cmake/FindUUID.cmake b/cmake/FindUUID.cmake | ||
index 54246ed..94a6c16 100644 | ||
--- a/cmake/FindUUID.cmake | ||
+++ b/cmake/FindUUID.cmake | ||
@@ -16,42 +16,49 @@ | ||
######################################## | ||
# Find uuid | ||
if (UNIX) | ||
- include(IgnPkgConfig) | ||
- ign_pkg_check_modules_quiet(UUID uuid) | ||
- | ||
- if(NOT UUID_FOUND) | ||
- include(IgnManualSearch) | ||
- ign_manual_search(UUID | ||
- HEADER_NAMES "uuid.h" | ||
- LIBRARY_NAMES "uuid libuuid" | ||
- PATH_SUFFIXES "uuid") | ||
- endif() | ||
- | ||
- # The pkg-config or the manual search will place | ||
- # <uuid_install_prefix>/include/uuid in INTERFACE_INCLUDE_DIRECTORIES, | ||
- # but some projects exepect to use <uuid_install_prefix>/include, so | ||
- # we add it as well. | ||
- # See https://github.com/ignitionrobotics/ign-cmake/issues/103 | ||
- if(TARGET UUID::UUID) | ||
- get_property(uuid_include_dirs | ||
- TARGET UUID::UUID | ||
- PROPERTY INTERFACE_INCLUDE_DIRECTORIES) | ||
- | ||
- set(uuid_include_dirs_extended ${uuid_include_dirs}) | ||
- | ||
- foreach(include_dir IN LISTS uuid_include_dirs) | ||
- if(include_dir MATCHES "uuid$") | ||
- get_filename_component(include_dir_parent ${include_dir} DIRECTORY) | ||
- list(APPEND uuid_include_dirs_extended ${include_dir_parent}) | ||
- endif() | ||
- endforeach() | ||
- | ||
- list(REMOVE_DUPLICATES uuid_include_dirs_extended) | ||
- | ||
- set_property( | ||
- TARGET UUID::UUID | ||
- PROPERTY INTERFACE_INCLUDE_DIRECTORIES | ||
- ${uuid_include_dirs_extended}) | ||
+ if(NOT APPLE) | ||
+ include(IgnPkgConfig) | ||
+ ign_pkg_check_modules_quiet(UUID uuid) | ||
+ | ||
+ if(NOT UUID_FOUND) | ||
+ include(IgnManualSearch) | ||
+ ign_manual_search(UUID | ||
+ HEADER_NAMES "uuid.h" | ||
+ LIBRARY_NAMES "uuid libuuid" | ||
+ PATH_SUFFIXES "uuid") | ||
+ endif() | ||
+ | ||
+ # The pkg-config or the manual search will place | ||
+ # <uuid_install_prefix>/include/uuid in INTERFACE_INCLUDE_DIRECTORIES, | ||
+ # but some projects exepect to use <uuid_install_prefix>/include, so | ||
+ # we add it as well. | ||
+ # See https://github.com/ignitionrobotics/ign-cmake/issues/103 | ||
+ if(TARGET UUID::UUID) | ||
+ get_property(uuid_include_dirs | ||
+ TARGET UUID::UUID | ||
+ PROPERTY INTERFACE_INCLUDE_DIRECTORIES) | ||
+ | ||
+ set(uuid_include_dirs_extended ${uuid_include_dirs}) | ||
+ | ||
+ foreach(include_dir IN LISTS uuid_include_dirs) | ||
+ if(include_dir MATCHES "uuid$") | ||
+ get_filename_component(include_dir_parent ${include_dir} DIRECTORY) | ||
+ list(APPEND uuid_include_dirs_extended ${include_dir_parent}) | ||
+ endif() | ||
+ endforeach() | ||
+ | ||
+ list(REMOVE_DUPLICATES uuid_include_dirs_extended) | ||
+ | ||
+ set_property( | ||
+ TARGET UUID::UUID | ||
+ PROPERTY INTERFACE_INCLUDE_DIRECTORIES | ||
+ ${uuid_include_dirs_extended}) | ||
+ endif() | ||
+ else() | ||
+ # On Apple platforms the UUID library is provided by the OS SDK | ||
+ # See https://github.com/ignitionrobotics/ign-cmake/issues/127 | ||
+ set(UUID_FOUND TRUE) | ||
+ add_library(UUID::UUID INTERFACE IMPORTED) | ||
endif() | ||
|
||
include(FindPackageHandleStandardArgs) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters