Skip to content

Commit fb7f8cb

Browse files
authored
Remove tinyxml2 from public dependencies. (#190)
That way, we don't have to export the tinyxml2 dependencies to downstream consumers. It is just a private dependency at that point. Signed-off-by: Chris Lalancette <clalancette@gmail.com>
1 parent 10093ba commit fb7f8cb

File tree

5 files changed

+15
-9
lines changed

5 files changed

+15
-9
lines changed

CMakeLists.txt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ add_subdirectory(urdf_parser)
6767

6868
set(PKG_NAME ${PROJECT_NAME})
6969
set(PKG_LIBRARIES urdfdom_sensor urdfdom_model_state urdfdom_model urdfdom_world)
70-
set(PKG_DEPENDS TinyXML2 urdfdom_headers console_bridge)
70+
set(PKG_DEPENDS urdfdom_headers)
7171
set(PKG_EXPORTS urdfdom)
7272
set(cmake_conf_file "cmake/urdfdom-config")
7373
include(CMakePackageConfigHelpers)
@@ -86,16 +86,11 @@ install(FILES
8686
DESTINATION ${CMAKE_CONFIG_INSTALL_DIR}
8787
)
8888

89-
# Some operating systems (like Ubuntu 22.04) do not provide a default
90-
# way to find TinyXML2. For that reason, this package provides it
91-
install(FILES cmake/FindTinyXML2.cmake
92-
DESTINATION ${CMAKE_CONFIG_INSTALL_DIR})
93-
9489
install(FILES package.xml DESTINATION share/${PROJECT_NAME})
9590

9691
# Make the package config file
9792
set(PKG_DESC "Unified Robot Description Format")
98-
set(PKG_DEPENDS "tinyxml2 urdfdom_headers console_bridge") # make the list separated by spaces instead of ;
93+
set(PKG_DEPENDS "urdfdom_headers") # make the list separated by spaces instead of ;
9994
set(PKG_URDF_LIBS "-lurdfdom_sensor -lurdfdom_model_state -lurdfdom_model -lurdfdom_world")
10095
set(pkg_conf_file "cmake/pkgconfig/urdfdom.pc")
10196
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/${pkg_conf_file}.in" "${CMAKE_BINARY_DIR}/${pkg_conf_file}" @ONLY)

urdf_parser/CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ macro(add_urdfdom_library)
1010
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
1111
target_link_libraries(${add_urdfdom_library_LIBNAME} PUBLIC
1212
${add_urdfdom_library_LINK}
13-
${console_bridge_link_libs}
1413
${urdfdom_headers_link_libs}
14+
)
15+
target_link_libraries(${add_urdfdom_library_LIBNAME} PRIVATE
16+
${console_bridge_link_libs}
1517
tinyxml2::tinyxml2
1618
)
1719
if(NOT CMAKE_CXX_STANDARD)

urdf_parser/include/urdf_parser/urdf_parser.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
#include <string>
4242
#include <vector>
4343

44-
#include <tinyxml2.h>
4544
#include <urdf_model/model.h>
4645
#include <urdf_model/color.h>
4746
#include <urdf_model/utils.h>
@@ -51,6 +50,13 @@
5150

5251
#include "exportdecl.h"
5352

53+
namespace tinyxml2{
54+
// Forward declaration for APIs that use TinyXML2 structures.
55+
// That way, we don't have to export a TinyXML2 dependency.
56+
class XMLDocument;
57+
class XMLElement;
58+
}
59+
5460
namespace urdf_export_helpers {
5561

5662
URDFDOM_DLLAPI std::string values2str(unsigned int count, const double *values, double (*conv)(double) = NULL);

urdf_parser/src/check_urdf.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
/* Author: Wim Meeussen */
3636

3737
#include "urdf_parser/urdf_parser.h"
38+
39+
#include <cstring>
3840
#include <iostream>
3941
#include <fstream>
4042

urdf_parser/src/model.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
#include <string>
4141
#include "urdf_parser/urdf_parser.h"
4242
#include <console_bridge/console.h>
43+
#include <tinyxml2.h>
4344

4445
namespace urdf{
4546

0 commit comments

Comments
 (0)