Skip to content

Commit 18245f1

Browse files
committed
take changes from #142 to new version
1 parent 29426ec commit 18245f1

File tree

4 files changed

+103
-8
lines changed

4 files changed

+103
-8
lines changed

CMakeLists.txt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ option(APPEND_PROJECT_NAME_TO_INCLUDEDIR
1919

2020
if(APPEND_PROJECT_NAME_TO_INCLUDEDIR)
2121
set(CMAKE_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}")
22+
set(CMAKE_INSTALL_FULL_INCLUDEDIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}/${PROJECT_NAME}")
2223
endif()
2324

2425
# set the default build type
@@ -59,16 +60,22 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}"
5960

6061
enable_testing()
6162

62-
set(CMAKE_CONFIG_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/${PROJECT_NAME}/cmake)
63-
string(REGEX REPLACE "[^/]+" ".." RELATIVE_PATH_CMAKE_DIR_TO_PREFIX "${CMAKE_CONFIG_INSTALL_DIR}")
64-
string(REGEX REPLACE "[^/]+" ".." RELATIVE_PATH_LIBDIR_TO_PREFIX "${CMAKE_INSTALL_LIBDIR}")
63+
set(CMAKE_CONFIG_INSTALL_DIR ${CMAKE_INSTALL_FULL_LIBDIR}/${PROJECT_NAME}/cmake)
64+
file(RELATIVE_PATH RELATIVE_PATH_CMAKE_DIR_TO_PREFIX "${CMAKE_CONFIG_INSTALL_DIR}" "${CMAKE_INSTALL_PREFIX}")
65+
file(RELATIVE_PATH RELATIVE_PATH_LIBDIR_TO_PREFIX "${CMAKE_INSTALL_FULL_LIBDIR}" "${CMAKE_INSTALL_PREFIX}")
6566

6667
add_subdirectory(urdf_parser)
6768

6869
set(PKG_NAME ${PROJECT_NAME})
6970
set(PKG_LIBRARIES urdfdom_sensor urdfdom_model_state urdfdom_model urdfdom_world)
7071
set(PKG_DEPENDS urdfdom_headers)
7172
set(PKG_EXPORTS urdfdom)
73+
string(REPLACE
74+
"${CMAKE_INSTALL_PREFIX}" "\${${PROJECT_NAME}_DIR}/${RELATIVE_PATH_CMAKE_DIR_TO_PREFIX}"
75+
CMAKE_CONF_LIBDIR "${CMAKE_INSTALL_FULL_LIBDIR}")
76+
string(REPLACE
77+
"${CMAKE_INSTALL_PREFIX}" "\${${PROJECT_NAME}_DIR}/${RELATIVE_PATH_CMAKE_DIR_TO_PREFIX}"
78+
CMAKE_CONF_INCLUDEDIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
7279
set(cmake_conf_file "cmake/urdfdom-config")
7380
include(CMakePackageConfigHelpers)
7481
write_basic_package_version_file(
@@ -92,6 +99,8 @@ install(FILES package.xml DESTINATION share/${PROJECT_NAME})
9299
set(PKG_DESC "Unified Robot Description Format")
93100
set(PKG_DEPENDS "urdfdom_headers") # make the list separated by spaces instead of ;
94101
set(PKG_URDF_LIBS "-lurdfdom_sensor -lurdfdom_model_state -lurdfdom_model -lurdfdom_world")
102+
string(REPLACE "${CMAKE_INSTALL_PREFIX}" "\${prefix}" PKG_CONF_LIBDIR "${CMAKE_INSTALL_FULL_LIBDIR}")
103+
string(REPLACE "${CMAKE_INSTALL_PREFIX}" "\${prefix}" PKG_CONF_INCLUDEDIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
95104
set(pkg_conf_file "cmake/pkgconfig/urdfdom.pc")
96105
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/${pkg_conf_file}.in" "${CMAKE_BINARY_DIR}/${pkg_conf_file}" @ONLY)
97106
install(FILES ${CMAKE_BINARY_DIR}/${pkg_conf_file}

cmake-absolute-paths.patch

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
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")

cmake/pkgconfig/urdfdom.pc.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# This file was generated by CMake for @PROJECT_NAME@
22
prefix=${pcfiledir}/../@RELATIVE_PATH_LIBDIR_TO_PREFIX@
33
exec_prefix=${prefix}
4-
libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
5-
includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
4+
libdir=@PKG_CONF_LIBDIR@
5+
includedir=@PKG_CONF_INCLUDEDIR@
66

77
Name: @PKG_NAME@
88
Description: @PKG_DESC@

cmake/urdfdom-config.cmake.in

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@ set(@PKG_NAME@_CONFIG_INCLUDED TRUE)
88
set(CMAKE_MODULE_PATH_BACKUP_URDFDOM ${CMAKE_MODULE_PATH})
99
list(APPEND CMAKE_MODULE_PATH "${@PROJECT_NAME@_DIR}")
1010

11-
set(@PKG_NAME@_INCLUDE_DIRS "${@PROJECT_NAME@_DIR}/@RELATIVE_PATH_CMAKE_DIR_TO_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@")
11+
set(@PKG_NAME@_INCLUDE_DIRS "@CMAKE_CONF_INCLUDEDIR@")
1212

1313
foreach(lib @PKG_LIBRARIES@)
1414
set(onelib "${lib}-NOTFOUND")
1515
set(onelibd "${lib}-NOTFOUND")
1616
find_library(onelib ${lib}
17-
PATHS "${@PROJECT_NAME@_DIR}/@RELATIVE_PATH_CMAKE_DIR_TO_PREFIX@/@CMAKE_INSTALL_LIBDIR@"
17+
PATHS "@CMAKE_CONF_LIBDIR@"
1818
NO_DEFAULT_PATH)
1919
find_library(onelibd ${lib}d
20-
PATHS "${@PROJECT_NAME@_DIR}/@RELATIVE_PATH_CMAKE_DIR_TO_PREFIX@/@CMAKE_INSTALL_LIBDIR@"
20+
PATHS "@CMAKE_CONF_LIBDIR@"
2121
NO_DEFAULT_PATH)
2222
if(onelib-NOTFOUND AND onelibd-NOTFOUND)
2323
message(FATAL_ERROR "Library '${lib}' in package @PKG_NAME@ is not installed properly")

0 commit comments

Comments
 (0)