File: CMakeLists.txt

package info (click to toggle)
urdfdom 4.0.0-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 380 kB
  • sloc: cpp: 2,541; sh: 32; xml: 29; makefile: 8
file content (137 lines) | stat: -rw-r--r-- 3,727 bytes parent folder | download | duplicates (2)
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
126
127
128
129
130
131
132
133
134
135
136
137
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})
  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_urdfdom_library(
  LIBNAME
    urdfdom_model_state
  SOURCES
    src/urdf_model_state.cpp
    src/twist.cpp)

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)

# Deprecated executable
add_executable(urdf_to_graphiz src/urdf_to_graphviz.cpp)
target_link_libraries(urdf_to_graphiz urdfdom_model)

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_graphiz
  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
  urdfdom_model_state
  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})