Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 5815afd

Browse files
author
Davide Faconti
committed
this should fix issue with tinyXML2 once and for all (maybe...)
1 parent 1844468 commit 5815afd

File tree

7 files changed

+53
-171
lines changed

7 files changed

+53
-171
lines changed

3rdparty/tinyXML2/CMakeLists.txt

Lines changed: 0 additions & 102 deletions
This file was deleted.

3rdparty/tinyXML2/Config.cmake.in

Lines changed: 0 additions & 4 deletions
This file was deleted.

3rdparty/tinyXML2/tinyxml2.pc.in

Lines changed: 0 additions & 10 deletions
This file was deleted.

CMakeLists.txt

Lines changed: 48 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ endif()
1515
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
1616
set(CMAKE_DEBUG_POSTFIX d)
1717

18-
add_subdirectory( 3rdparty/tinyXML2 )
1918

2019
set(CMAKE_CONFIG_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/cmake")
2120
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CONFIG_PATH}")
@@ -29,7 +28,9 @@ option(BUILD_TOOLS "Build commandline tools" ON)
2928
find_package(Threads REQUIRED)
3029
find_package(ZMQ)
3130

32-
list(APPEND BEHAVIOR_TREE_EXTERNAL_LIBRARIES ${CMAKE_THREAD_LIBS_INIT} ${CMAKE_DL_LIBS} tinyxml2_v7)
31+
list(APPEND BEHAVIOR_TREE_EXTERNAL_LIBRARIES
32+
${CMAKE_THREAD_LIBS_INIT}
33+
${CMAKE_DL_LIBS} )
3334

3435
if( ZMQ_FOUND )
3536
message(STATUS "ZeroMQ found.")
@@ -46,53 +47,53 @@ set(BEHAVIOR_TREE_LIBRARY ${PROJECT_NAME})
4647
# Update the policy setting to avoid an error when loading the ament_cmake package
4748
# at the current cmake version level
4849
if(POLICY CMP0057)
49-
cmake_policy(SET CMP0057 NEW)
50+
cmake_policy(SET CMP0057 NEW)
5051
endif()
5152

5253
find_package(ament_cmake QUIET)
5354

5455
if ( ament_cmake_FOUND )
55-
find_package(ament_cmake_gtest REQUIRED)
56+
find_package(ament_cmake_gtest REQUIRED)
5657

57-
# Not adding -DUSING_ROS since xml_parsing.cpp hasn't been ported to ROS2
58+
# Not adding -DUSING_ROS since xml_parsing.cpp hasn't been ported to ROS2
5859

59-
message(STATUS "------------------------------------------")
60-
message(STATUS "BehaviourTree is being built using AMENT.")
61-
message(STATUS "------------------------------------------")
60+
message(STATUS "------------------------------------------")
61+
message(STATUS "BehaviourTree is being built using AMENT.")
62+
message(STATUS "------------------------------------------")
6263

63-
set(BUILD_TOOL_INCLUDE_DIRS ${ament_INCLUDE_DIRS})
64+
set(BUILD_TOOL_INCLUDE_DIRS ${ament_INCLUDE_DIRS})
6465

6566
elseif( CATKIN_DEVEL_PREFIX OR CATKIN_BUILD_BINARY_PACKAGE)
6667

67-
set(catkin_FOUND 1)
68-
add_definitions( -DUSING_ROS )
69-
find_package(catkin REQUIRED COMPONENTS roslib)
70-
find_package(GTest)
68+
set(catkin_FOUND 1)
69+
add_definitions( -DUSING_ROS )
70+
find_package(catkin REQUIRED COMPONENTS roslib)
71+
find_package(GTest)
7172

72-
message(STATUS "------------------------------------------")
73-
message(STATUS "BehaviourTree is being built using CATKIN.")
74-
message(STATUS "------------------------------------------")
73+
message(STATUS "------------------------------------------")
74+
message(STATUS "BehaviourTree is being built using CATKIN.")
75+
message(STATUS "------------------------------------------")
7576

76-
catkin_package(
77-
INCLUDE_DIRS include # do not include "3rdparty" here
78-
LIBRARIES ${BEHAVIOR_TREE_LIBRARY}
79-
CATKIN_DEPENDS roslib
80-
)
77+
catkin_package(
78+
INCLUDE_DIRS include # do not include "3rdparty" here
79+
LIBRARIES ${BEHAVIOR_TREE_LIBRARY}
80+
CATKIN_DEPENDS roslib
81+
)
8182

82-
list(APPEND BEHAVIOR_TREE_EXTERNAL_LIBRARIES ${catkin_LIBRARIES})
83-
set(BUILD_TOOL_INCLUDE_DIRS ${catkin_INCLUDE_DIRS})
83+
list(APPEND BEHAVIOR_TREE_EXTERNAL_LIBRARIES ${catkin_LIBRARIES})
84+
set(BUILD_TOOL_INCLUDE_DIRS ${catkin_INCLUDE_DIRS})
8485

85-
find_package(backward_ros QUIET)
86-
if (backward_ros_FOUND)
87-
message(STATUS "backward_ros found, using it.")
88-
list(APPEND BEHAVIOR_TREE_EXTERNAL_LIBRARIES ${catkin_LIBRARIES} ${backward_ros_LIBRARIES})
89-
endif()
86+
find_package(backward_ros QUIET)
87+
if (backward_ros_FOUND)
88+
message(STATUS "backward_ros found, using it.")
89+
list(APPEND BEHAVIOR_TREE_EXTERNAL_LIBRARIES ${catkin_LIBRARIES} ${backward_ros_LIBRARIES})
90+
endif()
9091

9192
else()
9293
find_package(GTest)
9394

9495
if(NOT GTEST_FOUND)
95-
message(WARNING " GTest missing!")
96+
message(WARNING " GTest missing!")
9697
endif(NOT GTEST_FOUND)
9798

9899
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
@@ -136,31 +137,34 @@ list(APPEND BT_SOURCE
136137
src/loggers/bt_cout_logger.cpp
137138
src/loggers/bt_file_logger.cpp
138139
src/loggers/bt_minitrace_logger.cpp
140+
src/private/tinyxml2.cpp
141+
139142
3rdparty/minitrace/minitrace.cpp
140143
)
141144

142-
######################################################
143-
144145
if (NOT backward_ros_FOUND)
145146
list(APPEND SRC_3rd_PARTY
146147
3rdparty/backward-cpp/backward.cpp)
147148
endif()
148149

149150
######################################################
150151
if (UNIX)
151-
list(APPEND BT_SOURCE src/shared_library_UNIX.cpp )
152-
add_library(${BEHAVIOR_TREE_LIBRARY} SHARED ${BT_SOURCE} )
152+
list(APPEND BT_SOURCE src/shared_library_UNIX.cpp )
153+
add_library(${BEHAVIOR_TREE_LIBRARY} SHARED ${BT_SOURCE} )
153154
endif()
154155

155156
if (WIN32)
156-
list(APPEND BT_SOURCE src/shared_library_WIN.cpp )
157-
add_library(${BEHAVIOR_TREE_LIBRARY} STATIC ${BT_SOURCE} )
157+
list(APPEND BT_SOURCE src/shared_library_WIN.cpp )
158+
add_library(${BEHAVIOR_TREE_LIBRARY} STATIC ${BT_SOURCE} )
158159
endif()
159160

160161

161162
target_link_libraries(${BEHAVIOR_TREE_LIBRARY} PUBLIC
162163
${BEHAVIOR_TREE_EXTERNAL_LIBRARIES})
163164

165+
target_compile_definitions(${BEHAVIOR_TREE_LIBRARY} PRIVATE $<$<CONFIG:Debug>:TINYXML2_DEBUG>)
166+
167+
164168
target_include_directories(${BEHAVIOR_TREE_LIBRARY} PUBLIC
165169
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
166170
$<INSTALL_INTERFACE:include>
@@ -173,23 +177,14 @@ if( ZMQ_FOUND )
173177
endif()
174178

175179
if(MSVC)
176-
target_compile_options(${BEHAVIOR_TREE_LIBRARY} PRIVATE /W4 /WX)
180+
target_compile_options(${BEHAVIOR_TREE_LIBRARY} PRIVATE /W4 /WX)
177181
else()
178-
target_compile_options(${BEHAVIOR_TREE_LIBRARY} PRIVATE -Wall -Wextra -Werror=return-type -g)
182+
target_compile_options(${BEHAVIOR_TREE_LIBRARY} PRIVATE
183+
-Wall -Wextra -Werror=return-type -g)
179184
endif()
180185

181-
######################################################
182-
# EXPORTS
183-
184-
set(PROJECT_NAMESPACE BehaviorTree)
185-
set(PROJECT_CONFIG ${PROJECT_NAMESPACE}Config)
186-
export(TARGETS ${PROJECT_NAME}
187-
NAMESPACE ${PROJECT_NAMESPACE}::
188-
FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_CONFIG}.cmake")
189-
190186
######################################################
191187
# Test
192-
193188
add_subdirectory(tests)
194189

195190
######################################################
@@ -212,9 +207,8 @@ else()
212207
set( BEHAVIOR_TREE_BIN_DESTINATION bin )
213208
endif()
214209

215-
message(STATUS "BEHAVIOR_TREE_LIB_DESTINATION: ${BEHAVIOR_TREE_LIB_DESTINATION}")
216-
message(STATUS "BEHAVIOR_TREE_INC_DESTINATION: ${BEHAVIOR_TREE_INC_DESTINATION}")
217-
message(STATUS "BEHAVIOR_TREE_BIN_DESTINATION: ${BEHAVIOR_TREE_BIN_DESTINATION}")
210+
set(PROJECT_NAMESPACE BehaviorTree)
211+
set(PROJECT_CONFIG ${PROJECT_NAMESPACE}Config)
218212

219213
INSTALL(TARGETS ${BEHAVIOR_TREE_LIBRARY}
220214
EXPORT ${PROJECT_CONFIG}
@@ -230,6 +224,10 @@ install(EXPORT ${PROJECT_CONFIG}
230224
DESTINATION "${BEHAVIOR_TREE_LIB_DESTINATION}/${PROJECT_NAMESPACE}/cmake"
231225
NAMESPACE ${PROJECT_NAMESPACE}::)
232226

227+
export(TARGETS ${PROJECT_NAME}
228+
NAMESPACE ${PROJECT_NAMESPACE}::
229+
FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_CONFIG}.cmake")
230+
233231
######################################################
234232
# EXAMPLES and TOOLS
235233
if(BUILD_TOOLS)
File renamed without changes.

3rdparty/tinyXML2/tinyxml2.h renamed to src/private/tinyxml2.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ must not be misrepresented as being the original software.
2121
distribution.
2222
*/
2323

24-
#ifndef TINYXML2_INCLUDED
25-
#define TINYXML2_INCLUDED
24+
#ifndef BT_TINYXML2_INCLUDED
25+
#define BT_TINYXML2_INCLUDED
2626

2727
#if defined(ANDROID_NDK) || defined(__BORLANDC__) || defined(__QNXNTO__)
2828
# include <ctype.h>
@@ -73,7 +73,7 @@ distribution.
7373
# define TINYXML2_LIB
7474
# endif
7575
#elif __GNUC__ >= 4
76-
# define TINYXML2_LIB __attribute__((visibility("default")))
76+
# define TINYXML2_LIB __attribute__((visibility("hidden")))
7777
#else
7878
# define TINYXML2_LIB
7979
#endif
@@ -2306,4 +2306,4 @@ class TINYXML2_LIB XMLPrinter : public XMLVisitor
23062306
# pragma warning(pop)
23072307
#endif
23082308

2309-
#endif // TINYXML2_INCLUDED
2309+
#endif // BT_TINYXML2_INCLUDED

src/xml_parsing.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
#endif
2424

2525
#include "behaviortree_cpp/xml_parsing.h"
26-
#include "tinyXML2/tinyxml2.h"
26+
#include "private/tinyxml2.h"
2727
#include "filesystem/path.h"
2828

2929
#ifdef USING_ROS

0 commit comments

Comments
 (0)