Skip to content

Commit

Permalink
Add fix to FindUUID to avoid spurious dependencies on libuuid on macOS
Browse files Browse the repository at this point in the history
Backport of gazebosim/gz-cmake#128
Fix of the problems reported in conda-forge/libuuid-feedstock#16
for Ignition libraries.
  • Loading branch information
traversaro committed Nov 15, 2020
1 parent 592c882 commit 356f03c
Show file tree
Hide file tree
Showing 2 changed files with 107 additions and 1 deletion.
105 changes: 105 additions & 0 deletions recipe/FindUUID.cmake.patch
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)
3 changes: 2 additions & 1 deletion recipe/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@ source:
- examples.patch # [linux]
- FindGTS.cmake.patch # [win]
- FindIgnOGRE.cmake.patch # [win]
- FindUUID.cmake.patch

build:
number: 1
number: 2
skip: true # [win and vc<14]
run_exports:
- {{ pin_subpackage(name, max_pin='x') }}
Expand Down

0 comments on commit 356f03c

Please sign in to comment.