Skip to content

Commit e5c8b63

Browse files
committed
Add USE_VENDORED_DEPS option, set urdfdom_LIBRARIES to targets
Signed-off-by: Author Name <[email protected]>
1 parent 843b9b4 commit e5c8b63

File tree

2 files changed

+27
-10
lines changed

2 files changed

+27
-10
lines changed

CMakeLists.txt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ include(GNUInstallDirs)
1414

1515
option(BUILD_APPS "Build applications" ON)
1616
option(BUILD_TESTING "Build tests" OFF)
17+
option(USE_VENDORED_DEPS "Use vendored dependencies" ON)
1718
option(APPEND_PROJECT_NAME_TO_INCLUDEDIR
1819
"When ON headers are installed to a folder ending with an extra ${PROJECT_NAME}. \
1920
This avoids include directory search order issues when overriding this package
@@ -47,11 +48,13 @@ endif()
4748

4849
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
4950

50-
find_package(tinyxml2_vendor QUIET)
51-
find_package(TinyXML2 REQUIRED)
52-
5351
find_package(urdfdom_headers 1.0 REQUIRED)
54-
find_package(console_bridge_vendor QUIET) # Provides console_bridge 0.4.0 on platforms without it.
52+
53+
if(USE_VENDORED_DEPS)
54+
find_package(tinyxml2_vendor QUIET)
55+
find_package(console_bridge_vendor QUIET) # Provides console_bridge 0.4.0 on platforms without it.
56+
endif()
57+
find_package(TinyXML2 REQUIRED)
5558
find_package(console_bridge REQUIRED)
5659

5760
# Control where libraries and executables are placed during the build

cmake/urdfdom-config.cmake.in

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@ set(@PKG_NAME@_CONFIG_INCLUDED TRUE)
88
set(CMAKE_MODULE_PATH_BACKUP_URDFDOM ${CMAKE_MODULE_PATH})
99
list(APPEND CMAKE_MODULE_PATH "${@PROJECT_NAME@_DIR}")
1010

11-
set(@PKG_NAME@_INCLUDE_DIRS "${@PROJECT_NAME@_DIR}/@RELATIVE_PATH_CMAKE_DIR_TO_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@")
11+
set(@PKG_NAME@_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_INCLUDEDIR@")
1212

1313
foreach(lib @PKG_LIBRARIES@)
1414
set(onelib "${lib}-NOTFOUND")
1515
set(onelibd "${lib}-NOTFOUND")
1616
find_library(onelib ${lib}
17-
PATHS "${@PROJECT_NAME@_DIR}/@RELATIVE_PATH_CMAKE_DIR_TO_PREFIX@/@CMAKE_INSTALL_LIBDIR@"
17+
PATHS "${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_LIBDIR@"
1818
NO_DEFAULT_PATH)
1919
find_library(onelibd ${lib}d
20-
PATHS "${@PROJECT_NAME@_DIR}/@RELATIVE_PATH_CMAKE_DIR_TO_PREFIX@/@CMAKE_INSTALL_LIBDIR@"
20+
PATHS "${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_LIBDIR@"
2121
NO_DEFAULT_PATH)
2222
if(onelib-NOTFOUND AND onelibd-NOTFOUND)
2323
message(FATAL_ERROR "Library '${lib}' in package @PKG_NAME@ is not installed properly")
@@ -36,17 +36,31 @@ foreach(lib @PKG_LIBRARIES@)
3636
endforeach()
3737

3838
include(CMakeFindDependencyMacro)
39-
find_dependency(tinyxml2_vendor QUIET)
39+
if(@USE_VENDORED_DEPS@)
40+
find_dependency(tinyxml2_vendor QUIET)
41+
find_dependency(console_bridge_vendor QUIET)
42+
else()
43+
find_dependency(TinyXML2 REQUIRED)
44+
find_dependency(console_bridge REQUIRED)
45+
endif()
4046
foreach(dep @PKG_DEPENDS@)
4147
if(NOT ${dep}_FOUND)
4248
find_dependency(${dep})
4349
endif()
44-
list(APPEND @PKG_NAME@_INCLUDE_DIRS ${${dep}_INCLUDE_DIRS})
45-
list(APPEND @PKG_NAME@_LIBRARIES ${${dep}_LIBRARIES})
4650
endforeach()
4751

52+
if(NOT TARGET urdfdom_headers::urdfdom_headers)
53+
add_library(urdfdom_headers::urdfdom_headers INTERFACE IMPORTED)
54+
set_target_properties(urdfdom_headers::urdfdom_headers PROPERTIES
55+
INTERFACE_INCLUDE_DIRECTORIES "${urdfdom_headers_INCLUDE_DIRS}"
56+
)
57+
endif()
58+
list(APPEND @PKG_NAME@_INCLUDE_DIRS "${urdfdom_headers_INCLUDE_DIRS}")
59+
4860
foreach(exp @PKG_EXPORTS@)
4961
include(${@PROJECT_NAME@_DIR}/${exp}Export.cmake)
5062
endforeach()
5163

64+
set(@PKG_NAME@_LIBRARIES ${@PKG_NAME@_TARGETS})
65+
5266
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH_BACKUP_URDFDOM})

0 commit comments

Comments
 (0)