|
| 1 | +diff --git a/CMakeLists.txt b/CMakeLists.txt |
| 2 | +index b533013..a53cb71 100644 |
| 3 | +--- a/CMakeLists.txt |
| 4 | ++++ b/CMakeLists.txt |
| 5 | +@@ -19,6 +19,7 @@ option(APPEND_PROJECT_NAME_TO_INCLUDEDIR |
| 6 | + |
| 7 | + if(APPEND_PROJECT_NAME_TO_INCLUDEDIR) |
| 8 | + set(CMAKE_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}") |
| 9 | ++ set(CMAKE_INSTALL_FULL_INCLUDEDIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}/${PROJECT_NAME}") |
| 10 | + endif() |
| 11 | + |
| 12 | + # set the default build type |
| 13 | +@@ -59,9 +60,9 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}" |
| 14 | + |
| 15 | + enable_testing() |
| 16 | + |
| 17 | +-set(CMAKE_CONFIG_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/cmake) |
| 18 | +-string(REGEX REPLACE "[^/]+" ".." RELATIVE_PATH_CMAKE_DIR_TO_PREFIX "${CMAKE_CONFIG_INSTALL_DIR}") |
| 19 | +-string(REGEX REPLACE "[^/]+" ".." RELATIVE_PATH_LIBDIR_TO_PREFIX "${CMAKE_INSTALL_LIBDIR}") |
| 20 | ++set(CMAKE_CONFIG_INSTALL_DIR ${CMAKE_INSTALL_FULL_LIBDIR}/${PROJECT_NAME}/cmake) |
| 21 | ++file(RELATIVE_PATH RELATIVE_PATH_CMAKE_DIR_TO_PREFIX "${CMAKE_CONFIG_INSTALL_DIR}" "${CMAKE_INSTALL_PREFIX}") |
| 22 | ++file(RELATIVE_PATH RELATIVE_PATH_LIBDIR_TO_PREFIX "${CMAKE_INSTALL_FULL_LIBDIR}" "${CMAKE_INSTALL_PREFIX}") |
| 23 | + |
| 24 | + add_subdirectory(urdf_parser) |
| 25 | + |
| 26 | +@@ -69,6 +70,12 @@ set(PKG_NAME ${PROJECT_NAME}) |
| 27 | + set(PKG_LIBRARIES urdfdom_sensor urdfdom_model_state urdfdom_model urdfdom_world) |
| 28 | + set(PKG_DEPENDS urdfdom_headers) |
| 29 | + set(PKG_EXPORTS urdfdom) |
| 30 | ++string(REPLACE |
| 31 | ++ "${CMAKE_INSTALL_PREFIX}" "\${${PROJECT_NAME}_DIR}/${RELATIVE_PATH_CMAKE_DIR_TO_PREFIX}" |
| 32 | ++ CMAKE_CONF_LIBDIR "${CMAKE_INSTALL_FULL_LIBDIR}") |
| 33 | ++string(REPLACE |
| 34 | ++ "${CMAKE_INSTALL_PREFIX}" "\${${PROJECT_NAME}_DIR}/${RELATIVE_PATH_CMAKE_DIR_TO_PREFIX}" |
| 35 | ++ CMAKE_CONF_INCLUDEDIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}") |
| 36 | + set(cmake_conf_file "cmake/urdfdom-config") |
| 37 | + include(CMakePackageConfigHelpers) |
| 38 | + write_basic_package_version_file( |
| 39 | +@@ -92,6 +99,8 @@ install(FILES package.xml DESTINATION share/${PROJECT_NAME}) |
| 40 | + set(PKG_DESC "Unified Robot Description Format") |
| 41 | + set(PKG_DEPENDS "urdfdom_headers") # make the list separated by spaces instead of ; |
| 42 | + set(PKG_URDF_LIBS "-lurdfdom_sensor -lurdfdom_model_state -lurdfdom_model -lurdfdom_world") |
| 43 | ++string(REPLACE "${CMAKE_INSTALL_PREFIX}" "\${prefix}" PKG_CONF_LIBDIR "${CMAKE_INSTALL_FULL_LIBDIR}") |
| 44 | ++string(REPLACE "${CMAKE_INSTALL_PREFIX}" "\${prefix}" PKG_CONF_INCLUDEDIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}") |
| 45 | + set(pkg_conf_file "cmake/pkgconfig/urdfdom.pc") |
| 46 | + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/${pkg_conf_file}.in" "${CMAKE_BINARY_DIR}/${pkg_conf_file}" @ONLY) |
| 47 | + install(FILES ${CMAKE_BINARY_DIR}/${pkg_conf_file} |
| 48 | +diff --git a/cmake/pkgconfig/urdfdom.pc.in b/cmake/pkgconfig/urdfdom.pc.in |
| 49 | +index 77d1d9f..01ccb89 100644 |
| 50 | +--- a/cmake/pkgconfig/urdfdom.pc.in |
| 51 | ++++ b/cmake/pkgconfig/urdfdom.pc.in |
| 52 | +@@ -1,8 +1,8 @@ |
| 53 | + # This file was generated by CMake for @PROJECT_NAME@ |
| 54 | + prefix=${pcfiledir}/../@RELATIVE_PATH_LIBDIR_TO_PREFIX@ |
| 55 | + exec_prefix=${prefix} |
| 56 | +-libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ |
| 57 | +-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ |
| 58 | ++libdir=@PKG_CONF_LIBDIR@ |
| 59 | ++includedir=@PKG_CONF_INCLUDEDIR@ |
| 60 | + |
| 61 | + Name: @PKG_NAME@ |
| 62 | + Description: @PKG_DESC@ |
| 63 | +diff --git a/cmake/urdfdom-config.cmake.in b/cmake/urdfdom-config.cmake.in |
| 64 | +index ee84f41..9a77019 100644 |
| 65 | +--- a/cmake/urdfdom-config.cmake.in |
| 66 | ++++ b/cmake/urdfdom-config.cmake.in |
| 67 | +@@ -8,16 +8,16 @@ set(@PKG_NAME@_CONFIG_INCLUDED TRUE) |
| 68 | + set(CMAKE_MODULE_PATH_BACKUP_URDFDOM ${CMAKE_MODULE_PATH}) |
| 69 | + list(APPEND CMAKE_MODULE_PATH "${@PROJECT_NAME@_DIR}") |
| 70 | + |
| 71 | +-set(@PKG_NAME@_INCLUDE_DIRS "${@PROJECT_NAME@_DIR}/@RELATIVE_PATH_CMAKE_DIR_TO_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@") |
| 72 | ++set(@PKG_NAME@_INCLUDE_DIRS "@CMAKE_CONF_INCLUDEDIR@") |
| 73 | + |
| 74 | + foreach(lib @PKG_LIBRARIES@) |
| 75 | + set(onelib "${lib}-NOTFOUND") |
| 76 | + set(onelibd "${lib}-NOTFOUND") |
| 77 | + find_library(onelib ${lib} |
| 78 | +- PATHS "${@PROJECT_NAME@_DIR}/@RELATIVE_PATH_CMAKE_DIR_TO_PREFIX@/@CMAKE_INSTALL_LIBDIR@" |
| 79 | ++ PATHS "@CMAKE_CONF_LIBDIR@" |
| 80 | + NO_DEFAULT_PATH) |
| 81 | + find_library(onelibd ${lib}d |
| 82 | +- PATHS "${@PROJECT_NAME@_DIR}/@RELATIVE_PATH_CMAKE_DIR_TO_PREFIX@/@CMAKE_INSTALL_LIBDIR@" |
| 83 | ++ PATHS "@CMAKE_CONF_LIBDIR@" |
| 84 | + NO_DEFAULT_PATH) |
| 85 | + if(onelib-NOTFOUND AND onelibd-NOTFOUND) |
| 86 | + message(FATAL_ERROR "Library '${lib}' in package @PKG_NAME@ is not installed properly") |
0 commit comments