File: CMakeLists.txt

package info (click to toggle)
urdfdom 5.0.4-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 356 kB
  • sloc: cpp: 2,338; sh: 32; xml: 27; makefile: 8
file content (125 lines) | stat: -rw-r--r-- 3,530 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
macro(add_urdfdom_library)
  set(oneValueArgs LIBNAME)
  set(multiValueArgs SOURCES LINK)
  cmake_parse_arguments(add_urdfdom_library "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})

  add_library(${add_urdfdom_library_LIBNAME} SHARED
    ${add_urdfdom_library_SOURCES})
  add_library(urdfdom::${add_urdfdom_library_LIBNAME} ALIAS ${add_urdfdom_library_LIBNAME})
  target_include_directories(${add_urdfdom_library_LIBNAME} PUBLIC
    "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
    "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
  target_link_libraries(${add_urdfdom_library_LIBNAME} PUBLIC
    ${add_urdfdom_library_LINK}
    ${urdfdom_headers_link_libs}
  )
  target_link_libraries(${add_urdfdom_library_LIBNAME} PRIVATE
    ${console_bridge_link_libs}
    tinyxml2::tinyxml2
  )
  if(NOT CMAKE_CXX_STANDARD)
    target_compile_features(${add_urdfdom_library_LIBNAME} PUBLIC cxx_std_14)
  endif()
  set_target_properties(${add_urdfdom_library_LIBNAME} PROPERTIES
    DEFINE_SYMBOL URDFDOM_EXPORTS
    SOVERSION ${URDF_MAJOR_MINOR_VERSION})
endmacro()

if(TARGET console_bridge::console_bridge)
  set(console_bridge_link_libs "console_bridge::console_bridge")
else()
  set(console_bridge_link_libs "console_bridge")
endif()

if(TARGET urdfdom_headers::urdfdom_headers)
  set(urdfdom_headers_link_libs "urdfdom_headers::urdfdom_headers")
else()
  set(urdfdom_headers_link_libs "")
endif()

add_urdfdom_library(
  LIBNAME
    urdfdom_world
  SOURCES
    src/pose.cpp
    src/model.cpp
    src/link.cpp
    src/joint.cpp
    src/world.cpp)

add_urdfdom_library(
  LIBNAME
    urdfdom_model
  SOURCES
    src/pose.cpp
    src/model.cpp
    src/link.cpp
    src/joint.cpp)

add_urdfdom_library(
  LIBNAME
    urdfdom_sensor
  SOURCES
    src/urdf_sensor.cpp
  LINK
    urdfdom_model)

add_library(urdf_parser INTERFACE)
target_include_directories(urdf_parser INTERFACE
  "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
  "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
target_link_libraries(urdf_parser INTERFACE
  urdfdom::urdfdom_model
  urdfdom::urdfdom_sensor
  urdfdom::urdfdom_world)

# --------------------------------

add_executable(check_urdf src/check_urdf.cpp)
target_include_directories(check_urdf PUBLIC include)
target_link_libraries(check_urdf urdfdom_model urdfdom_world)

add_executable(urdf_to_graphviz src/urdf_to_graphviz.cpp)
target_include_directories(urdf_to_graphviz PUBLIC include)
target_link_libraries(urdf_to_graphviz urdfdom_model)

# urdf_mem_test is a binary for testing, not a unit test
add_executable(urdf_mem_test test/memtest.cpp)
target_include_directories(urdf_mem_test PUBLIC include)
target_link_libraries(urdf_mem_test urdfdom_model)

include(CTest)
if(BUILD_TESTING)
  # TODO: check Shane's comment https://github.com/ros/urdfdom/pull/157/files#r664960227
  add_subdirectory(test)
endif()

INSTALL(
  TARGETS
  check_urdf
  urdf_to_graphviz
  urdf_mem_test
  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
INSTALL(
  TARGETS
  urdfdom_model
  urdfdom_world
  urdfdom_sensor
  urdf_parser
  EXPORT
  urdfdom
  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
install(
  EXPORT urdfdom
  DESTINATION ${CMAKE_CONFIG_INSTALL_DIR}
  NAMESPACE "${PROJECT_NAME}::"
  FILE "urdfdomExport.cmake"
)

INSTALL(DIRECTORY include/urdf_parser DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})