Skip to content

Commit

Permalink
Fix test compilation with USE_INTERNAL_URDF (#800)
Browse files Browse the repository at this point in the history
The USE_INTERNAL_URDF logic for include and
windows compiler definitions needs to be repeated
for tests that add parser_urdf.cc via target_sources.
An interface library is used to deduplicate the cmake
logic.

Signed-off-by: Steve Peters <[email protected]>
scpeters authored Dec 27, 2021

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent 1a2c406 commit cf81994
Showing 1 changed file with 24 additions and 31 deletions.
55 changes: 24 additions & 31 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -5,16 +5,26 @@ ign_get_libsources_and_unittests(sources gtest_sources)
# Add the source file auto-generated into the build folder from sdf/CMakeLists.txt
list(APPEND sources EmbeddedSdf.cc)

# Use interface library to deduplicate cmake logic for URDF linking
add_library(using_parser_urdf INTERFACE)
if (USE_INTERNAL_URDF)
set(sources ${sources}
urdf/urdf_parser/model.cpp
urdf/urdf_parser/link.cpp
urdf/urdf_parser/joint.cpp
urdf/urdf_parser/pose.cpp
urdf/urdf_parser/twist.cpp
urdf/urdf_parser/urdf_model_state.cpp
urdf/urdf_parser/urdf_sensor.cpp
urdf/urdf_parser/world.cpp)
urdf/urdf_parser/model.cpp
urdf/urdf_parser/link.cpp
urdf/urdf_parser/joint.cpp
urdf/urdf_parser/pose.cpp
urdf/urdf_parser/twist.cpp
urdf/urdf_parser/urdf_model_state.cpp
urdf/urdf_parser/urdf_sensor.cpp
urdf/urdf_parser/world.cpp)
target_include_directories(using_parser_urdf INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}/urdf)
if (WIN32)
target_compile_definitions(using_parser_urdf INTERFACE -D_USE_MATH_DEFINES)
endif()
else()
target_link_libraries(using_parser_urdf INTERFACE
IgnURDFDOM::IgnURDFDOM)
endif()

if (BUILD_TESTING)
@@ -62,12 +72,9 @@ if (BUILD_TESTING)
endif()

if (TARGET UNIT_ParamPassing_TEST)
if (NOT USE_INTERNAL_URDF)
target_link_libraries(UNIT_ParamPassing_TEST
IgnURDFDOM::IgnURDFDOM)
endif()
target_link_libraries(UNIT_ParamPassing_TEST
TINYXML2::TINYXML2)
TINYXML2::TINYXML2
using_parser_urdf)
target_sources(UNIT_ParamPassing_TEST PRIVATE
Converter.cc
EmbeddedSdf.cc
@@ -90,12 +97,9 @@ if (BUILD_TESTING)
endif()

if (TARGET UNIT_parser_urdf_TEST)
if (NOT USE_INTERNAL_URDF)
target_link_libraries(UNIT_parser_urdf_TEST
IgnURDFDOM::IgnURDFDOM)
endif()
target_link_libraries(UNIT_parser_urdf_TEST
TINYXML2::TINYXML2)
TINYXML2::TINYXML2
using_parser_urdf)
target_sources(UNIT_parser_urdf_TEST PRIVATE
SDFExtension.cc
XmlUtils.cc
@@ -112,7 +116,8 @@ target_link_libraries(${PROJECT_LIBRARY_TARGET_NAME}
PUBLIC
ignition-math${IGN_MATH_VER}::ignition-math${IGN_MATH_VER}
PRIVATE
TINYXML2::TINYXML2)
TINYXML2::TINYXML2
using_parser_urdf)

if (WIN32)
target_compile_definitions(${PROJECT_LIBRARY_TARGET_NAME} PRIVATE URDFDOM_STATIC)
@@ -126,18 +131,6 @@ target_include_directories(${PROJECT_LIBRARY_TARGET_NAME}
${CMAKE_CURRENT_SOURCE_DIR}
)

if (USE_INTERNAL_URDF)
target_include_directories(${PROJECT_LIBRARY_TARGET_NAME}
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/urdf
)
if (WIN32)
target_compile_definitions(${PROJECT_LIBRARY_TARGET_NAME} PRIVATE -D_USE_MATH_DEFINES)
endif()
else()
target_link_libraries(${PROJECT_LIBRARY_TARGET_NAME} PRIVATE IgnURDFDOM::IgnURDFDOM)
endif()

if(NOT WIN32)
add_subdirectory(cmd)
endif()

0 comments on commit cf81994

Please sign in to comment.