Skip to content

Commit

Permalink
Merge pull request OctoMap#279 from jnumm/install-dirs
Browse files Browse the repository at this point in the history
Support configurable libdir to ease packaging
  • Loading branch information
ahornung authored Jan 24, 2020
2 parents 8a5aa0c + a330c3c commit b300d38
Show file tree
Hide file tree
Showing 9 changed files with 50 additions and 47 deletions.
15 changes: 8 additions & 7 deletions dynamicEDT3D/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8)
PROJECT(dynamicEDT3D)

include(CTest)
include(GNUInstallDirs)

# version (e.g. for packaging)
set(DYNAMICEDT3D_MAJOR_VERSION 1)
Expand Down Expand Up @@ -63,10 +64,10 @@ ADD_SUBDIRECTORY(src)


file(GLOB dynamicEDT3D_HDRS ${PROJECT_SOURCE_DIR}/include/dynamicEDT3D/*.h ${PROJECT_SOURCE_DIR}/include/dynamicEDT3D/*.hxx)
install(FILES ${dynamicEDT3D_HDRS} DESTINATION include/dynamicEDT3D)
install(FILES ${dynamicEDT3D_HDRS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/dynamicEDT3D")

# Install catkin package.xml, attention package.xml names the catkin package "dynamic_edt_3d", so this is also the location where it needs to be installed to (and not "dynamicEDT3D")
install(FILES package.xml DESTINATION share/dynamic_edt_3d)
install(FILES package.xml DESTINATION "${CMAKE_INSTALL_DATADIR}/dynamic_edt_3d")

#TODO: this conflicts with the octomap uninstall
#it is not only a target name problem, also both will use the same manifest file
Expand Down Expand Up @@ -106,7 +107,7 @@ CONFIGURE_PACKAGE_CONFIG_FILE(
dynamicEDT3DConfig.cmake.in
"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/dynamicEDT3D/dynamicEDT3DConfig.cmake"
PATH_VARS DYNAMICEDT3D_INCLUDE_DIRS DYNAMICEDT3D_LIB_DIR
INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/share/dynamicEDT3D)
INSTALL_DESTINATION "${CMAKE_INSTALL_FULL_DATADIR}/dynamicEDT3D")

WRITE_BASIC_PACKAGE_VERSION_FILE(
"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/dynamicEDT3D/dynamicEDT3DConfig-version.cmake"
Expand All @@ -120,8 +121,8 @@ WRITE_BASIC_PACKAGE_VERSION_FILE(

# Create a dynamicEDT3DConfig.cmake file for the use from the install tree
# and install it
set(DYNAMICEDT3D_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include")
set(DYNAMICEDT3D_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib")
set(DYNAMICEDT3D_INCLUDE_DIRS "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
set(DYNAMICEDT3D_LIB_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
#set(DYNAMICEDT3D_CMAKE_DIR "${INSTALL_DATA_DIR}/FooBar/CMake")

set(DYNAMICEDT3D_INCLUDE_TARGETS
Expand All @@ -131,7 +132,7 @@ CONFIGURE_PACKAGE_CONFIG_FILE(
dynamicEDT3DConfig.cmake.in
"${PROJECT_BINARY_DIR}/InstallFiles/dynamicEDT3DConfig.cmake"
PATH_VARS DYNAMICEDT3D_INCLUDE_DIRS DYNAMICEDT3D_LIB_DIR
INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/share/dynamicEDT3D)
INSTALL_DESTINATION "${CMAKE_INSTALL_FULL_DATADIR}/dynamicEDT3D")

WRITE_BASIC_PACKAGE_VERSION_FILE(
"${PROJECT_BINARY_DIR}/InstallFiles/dynamicEDT3DConfig-version.cmake"
Expand All @@ -141,7 +142,7 @@ WRITE_BASIC_PACKAGE_VERSION_FILE(
install(FILES
"${PROJECT_BINARY_DIR}/InstallFiles/dynamicEDT3DConfig.cmake"
"${PROJECT_BINARY_DIR}/InstallFiles/dynamicEDT3DConfig-version.cmake"
DESTINATION share/dynamicEDT3D/)
DESTINATION "${CMAKE_INSTALL_DATADIR}/dynamicEDT3D")

# Write pkgconfig-file:
include(InstallPkgConfigFile)
Expand Down
12 changes: 6 additions & 6 deletions dynamicEDT3D/CMakeModules/InstallPkgConfigFile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
# [LIBS <lflag> ...]
# [REQUIRES <required-package-name> ...])
#
# Create and install a pkg-config .pc file to CMAKE_INSTALL_PREFIX/lib/pkgconfig
# Create and install a pkg-config .pc file to CMAKE_INSTALL_LIBDIR/pkgconfig
# assuming the following install layout:
# libraries: CMAKE_INSTALL_PREFIX/lib
# headers : CMAKE_INSTALL_PREFIX/include
# libraries: CMAKE_INSTALL_LIBDIR
# headers : CMAKE_INSTALL_INCLUDEDIR
#
# example:
# add_library(mylib mylib.c)
Expand Down Expand Up @@ -63,8 +63,8 @@ function(install_pkg_config_file)
# write the .pc file out
file(WRITE ${pc_fname}
"prefix=${CMAKE_INSTALL_PREFIX}\n"
"libdir=\${prefix}/lib\n"
"includedir=\${prefix}/include\n"
"libdir=${CMAKE_INSTALL_FULL_LIBDIR}\n"
"includedir=${CMAKE_INSTALL_FULL_INCLUDEDIR}\n"
"\n"
"Name: ${pc_name}\n"
"Description: ${pc_description}\n"
Expand All @@ -74,5 +74,5 @@ function(install_pkg_config_file)
"Cflags: -I\${includedir} ${pc_cflags}\n")

# mark the .pc file for installation to the lib/pkgconfig directory
install(FILES ${pc_fname} DESTINATION lib/pkgconfig)
install(FILES ${pc_fname} DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
endfunction(install_pkg_config_file)
4 changes: 2 additions & 2 deletions dynamicEDT3D/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ ADD_SUBDIRECTORY(examples)

install(TARGETS dynamicedt3d dynamicedt3d-static
EXPORT dynamicEDT3DTargets
INCLUDES DESTINATION include
INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
${INSTALL_TARGETS_DEFAULT_ARGS}
)
install(EXPORT dynamicEDT3DTargets DESTINATION share/dynamicEDT3D/)
install(EXPORT dynamicEDT3DTargets DESTINATION "${CMAKE_INSTALL_DATADIR}/dynamicEDT3D")
23 changes: 12 additions & 11 deletions octomap/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8)
PROJECT( octomap )

include(CTest)
include(GNUInstallDirs)

# version (e.g. for packaging)
set(OCTOMAP_MAJOR_VERSION 1)
Expand Down Expand Up @@ -55,21 +56,21 @@ LINK_DIRECTORIES(${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
# Installation

set(INSTALL_TARGETS_DEFAULT_ARGS
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
)

ADD_SUBDIRECTORY( src/math )
ADD_SUBDIRECTORY( src )

file(GLOB octomap_HDRS ${PROJECT_SOURCE_DIR}/include/octomap/*.h ${PROJECT_SOURCE_DIR}/include/octomap/*.hxx)
install(FILES ${octomap_HDRS} DESTINATION include/octomap)
install(FILES ${octomap_HDRS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/octomap")
file(GLOB octomap_math_HDRS ${PROJECT_SOURCE_DIR}/include/octomap/math/*.h)
install(FILES ${octomap_math_HDRS} DESTINATION include/octomap/math)
install(FILES ${octomap_math_HDRS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/octomap/math")

# Install catkin package.xml
install(FILES package.xml DESTINATION share/octomap)
install(FILES package.xml DESTINATION "${CMAKE_INSTALL_DATADIR}/octomap")

# uninstall target
configure_file(
Expand Down Expand Up @@ -113,7 +114,7 @@ CONFIGURE_PACKAGE_CONFIG_FILE(
octomap-config.cmake.in
"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap/octomap-config.cmake"
PATH_VARS OCTOMAP_INCLUDE_DIRS OCTOMAP_LIB_DIR
INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/share/octomap)
INSTALL_DESTINATION "${CMAKE_INSTALL_FULL_DATADIR}/octomap")

WRITE_BASIC_PACKAGE_VERSION_FILE(
"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/cmake/octomap/octomap-config-version.cmake"
Expand All @@ -122,8 +123,8 @@ WRITE_BASIC_PACKAGE_VERSION_FILE(

# Create a octomap-config.cmake file for the use from the install tree
# and install it
set(OCTOMAP_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include")
set(OCTOMAP_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib")
set(OCTOMAP_INCLUDE_DIRS "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
set(OCTOMAP_LIB_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
#set(OCTOMAP_CMAKE_DIR "${INSTALL_DATA_DIR}/FooBar/CMake")

set(OCTOMAP_INCLUDE_TARGETS
Expand All @@ -133,7 +134,7 @@ CONFIGURE_PACKAGE_CONFIG_FILE(
octomap-config.cmake.in
"${PROJECT_BINARY_DIR}/InstallFiles/octomap-config.cmake"
PATH_VARS OCTOMAP_INCLUDE_DIRS OCTOMAP_LIB_DIR
INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/share/octomap)
INSTALL_DESTINATION "${CMAKE_INSTALL_FULL_DATADIR}/octomap")

WRITE_BASIC_PACKAGE_VERSION_FILE(
${PROJECT_BINARY_DIR}/InstallFiles/octomap-config-version.cmake
Expand All @@ -143,7 +144,7 @@ WRITE_BASIC_PACKAGE_VERSION_FILE(
install(FILES
"${PROJECT_BINARY_DIR}/InstallFiles/octomap-config.cmake"
"${PROJECT_BINARY_DIR}/InstallFiles/octomap-config-version.cmake"
DESTINATION share/octomap/)
DESTINATION "${CMAKE_INSTALL_DATADIR}/octomap")

# Write pkgconfig-file:
include(InstallPkgConfigFile)
Expand Down
12 changes: 6 additions & 6 deletions octomap/CMakeModules/InstallPkgConfigFile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
# [LIBS <lflag> ...]
# [REQUIRES <required-package-name> ...])
#
# Create and install a pkg-config .pc file to CMAKE_INSTALL_PREFIX/lib/pkgconfig
# Create and install a pkg-config .pc file to CMAKE_INSTALL_LIBDIR/pkgconfig
# assuming the following install layout:
# libraries: CMAKE_INSTALL_PREFIX/lib
# headers : CMAKE_INSTALL_PREFIX/include
# libraries: CMAKE_INSTALL_LIBDIR
# headers : CMAKE_INSTALL_INCLUDEDIR
#
# example:
# add_library(mylib mylib.c)
Expand Down Expand Up @@ -63,8 +63,8 @@ function(install_pkg_config_file)
# write the .pc file out
file(WRITE ${pc_fname}
"prefix=${CMAKE_INSTALL_PREFIX}\n"
"libdir=\${prefix}/lib\n"
"includedir=\${prefix}/include\n"
"libdir=${CMAKE_INSTALL_FULL_LIBDIR}\n"
"includedir=${CMAKE_INSTALL_FULL_INCLUDEDIR}\n"
"\n"
"Name: ${pc_name}\n"
"Description: ${pc_description}\n"
Expand All @@ -74,5 +74,5 @@ function(install_pkg_config_file)
"Cflags: -I\${includedir} ${pc_cflags}\n")

# mark the .pc file for installation to the lib/pkgconfig directory
install(FILES ${pc_fname} DESTINATION lib/pkgconfig)
install(FILES ${pc_fname} DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
endfunction(install_pkg_config_file)
4 changes: 2 additions & 2 deletions octomap/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,10 @@ TARGET_LINK_LIBRARIES(octree2pointcloud octomap)

install(TARGETS octomap octomap-static
EXPORT octomap-targets
INCLUDES DESTINATION include
INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
${INSTALL_TARGETS_DEFAULT_ARGS}
)
install(EXPORT octomap-targets DESTINATION share/octomap/)
install(EXPORT octomap-targets DESTINATION "${CMAKE_INSTALL_DATADIR}/octomap")

install(TARGETS
graph2tree
Expand Down
2 changes: 1 addition & 1 deletion octomap/src/math/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,6 @@ export(TARGETS octomath octomath-static

install(TARGETS octomath octomath-static
EXPORT octomap-targets
INCLUDES DESTINATION include
INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
${INSTALL_TARGETS_DEFAULT_ARGS}
)
19 changes: 10 additions & 9 deletions octovis/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8)
PROJECT( octovis )

include(CTest)
include(GNUInstallDirs)

# # version (e.g. for packaging)
set(OCTOVIS_MAJOR_VERSION 1)
Expand Down Expand Up @@ -55,9 +56,9 @@ INCLUDE_DIRECTORIES(BEFORE SYSTEM ${OCTOMAP_INCLUDE_DIRS})
export(PACKAGE octovis)

set(INSTALL_TARGETS_DEFAULT_ARGS
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
)

# Builds the "octovis" viewer based on OpenGL and
Expand Down Expand Up @@ -127,8 +128,8 @@ IF(BUILD_VIEWER)

# Create a octovis-config.cmake file for the use from the install tree
# and install it
set(OCTOVIS_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include")
set(OCTOVIS_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib")
set(OCTOVIS_INCLUDE_DIRS "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
set(OCTOVIS_LIB_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
#set(OCTOMAP_CMAKE_DIR "${INSTALL_DATA_DIR}/FooBar/CMake")

set(OCTOVIS_INCLUDE_TARGETS
Expand All @@ -138,7 +139,7 @@ IF(BUILD_VIEWER)
octovis-config.cmake.in
"${PROJECT_BINARY_DIR}/InstallFiles/octovis-config.cmake"
PATH_VARS OCTOVIS_INCLUDE_DIRS OCTOVIS_LIB_DIR
INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX}/share/octovis)
INSTALL_DESTINATION "${CMAKE_INSTALL_FULL_DATADIR}/octovis")

WRITE_BASIC_PACKAGE_VERSION_FILE(
"${PROJECT_BINARY_DIR}/InstallFiles/octovis-config-version.cmake"
Expand All @@ -148,15 +149,15 @@ IF(BUILD_VIEWER)
install(FILES
"${PROJECT_BINARY_DIR}/InstallFiles/octovis-config.cmake"
"${PROJECT_BINARY_DIR}/InstallFiles/octovis-config-version.cmake"
DESTINATION share/octovis/)
DESTINATION "${CMAKE_INSTALL_DATADIR}/octovis")

# #installation:
# # store all header files to install:
file(GLOB octovis_HDRS *.h *.hxx *.hpp)
install(FILES ${octovis_HDRS} DESTINATION include/octovis)
install(FILES ${octovis_HDRS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/octovis")

# Install catkin package.xml
install(FILES package.xml DESTINATION share/octovis)
install(FILES package.xml DESTINATION "${CMAKE_INSTALL_DATADIR}/octovis")

ELSE()
MESSAGE ( "Unfortunately, the viewer (octovis) can not be built because some requirements are missing.")
Expand Down
6 changes: 3 additions & 3 deletions octovis/CMakeLists_src.txt
Original file line number Diff line number Diff line change
Expand Up @@ -151,13 +151,13 @@ export(TARGETS octovis octovis-static octovis-shared

install(TARGETS octovis octovis-static octovis-shared
EXPORT octovis-targets
INCLUDES DESTINATION include
INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
${INSTALL_TARGETS_DEFAULT_ARGS}
)
install(EXPORT octovis-targets DESTINATION share/octovis/)
install(EXPORT octovis-targets DESTINATION "${CMAKE_INSTALL_DATADIR}/octovis")

file(GLOB octovis_HDRS ${PROJECT_SOURCE_DIR}/include/octovis/*.h)
# filter generated headers for GUI:
list(REMOVE_ITEM octovis_HDRS ${viewer_MOC_HDRS} ${viewer_UIS_H})
install(FILES ${octovis_HDRS} DESTINATION include/octovis)
install(FILES ${octovis_HDRS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/octovis")

0 comments on commit b300d38

Please sign in to comment.