From 626bc580272cba6ea11b81f14762dc61c4a88f9d Mon Sep 17 00:00:00 2001
From: Rich Mattes <richmattes@gmail.com>
Date: Sat, 23 Aug 2014 12:07:14 -0400
Subject: [PATCH] Add option to enable GNU Install Dirs
This commit adds an option to enable the GNUInstallDirs.cmake script and
use it to define console_bridge's installation directories. When
enabled, libraries, headers, and data are installed to paths defined by
the GNUInstallDirs.cmake script. Otherwise, the hard-coded "lib",
"share", and "include" strings are used, resulting in no change in
functionality after this commit is applied.
The option is diabled by default.
Signed-off-by: Rich Mattes <richmattes@gmail.com>
---
CMakeLists.txt | 22 +++++++++++++++++-----
console_bridge-config.cmake.in | 2 +-
console_bridge.pc.in | 4 ++--
3 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ab0ad99..2c1980b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -30,21 +30,33 @@ if(NOT DEFINED BUILD_SHARED_LIBS)
option(BUILD_SHARED_LIBS "Build dynamically-linked binaries" ON)
endif()
+option(USE_GNU_INSTALL_DIRS "Use GNU Install Directories when installing" OFF)
+
+if (USE_GNU_INSTALL_DIRS)
+ include(GNUInstallDirs)
+else()
+ set(CMAKE_INSTALL_DATAROOTDIR "share")
+ set(CMAKE_INSTALL_INCLUDEDIR "include")
+ set(CMAKE_INSTALL_LIBDIR "lib")
+endif()
+
add_library(${PROJECT_NAME} src/console.cpp)
target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES})
install(TARGETS ${PROJECT_NAME}
- DESTINATION lib/)
+ DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(DIRECTORY include/
- DESTINATION include
- FILES_MATCHING PATTERN "*.h")
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+ FILES_MATCHING PATTERN "*.h")
set(PKG_NAME ${PROJECT_NAME})
set(PKG_LIBRARIES ${PROJECT_NAME})
set(cmake_conf_file "${PROJECT_NAME}-config.cmake")
configure_file("${cmake_conf_file}.in" "${CMAKE_BINARY_DIR}/${cmake_conf_file}" @ONLY)
-install(FILES "${CMAKE_BINARY_DIR}/${cmake_conf_file}" DESTINATION share/${PROJECT_NAME}/cmake/ COMPONENT cmake)
+install(FILES "${CMAKE_BINARY_DIR}/${cmake_conf_file}"
+ DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake/
+ COMPONENT cmake)
if (NOT MSVC)
set(PKG_DESC "Console Bridge")
@@ -52,7 +64,7 @@ if (NOT MSVC)
set(pkg_conf_file "console_bridge.pc")
configure_file("${pkg_conf_file}.in" "${CMAKE_BINARY_DIR}/${pkg_conf_file}" @ONLY)
install(FILES "${CMAKE_BINARY_DIR}/${pkg_conf_file}"
- DESTINATION lib/pkgconfig/ COMPONENT pkgconfig)
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig/ COMPONENT pkgconfig)
endif()
SET_DIRECTORY_PROPERTIES(PROPERTIES
diff --git a/console_bridge-config.cmake.in b/console_bridge-config.cmake.in
index a64762b..c7a55fb 100644
--- a/console_bridge-config.cmake.in
+++ b/console_bridge-config.cmake.in
@@ -8,7 +8,7 @@ set(@PKG_NAME@_INCLUDE_DIRS "@CMAKE_INSTALL_PREFIX@/include")
foreach(lib @PKG_LIBRARIES@)
set(onelib "${lib}-NOTFOUND")
find_library(onelib ${lib}
- PATHS "@CMAKE_INSTALL_PREFIX@/lib"
+ PATHS "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@"
NO_DEFAULT_PATH
)
if(NOT onelib)
diff --git a/console_bridge.pc.in b/console_bridge.pc.in
index 443963e..1e8bebc 100644
--- a/console_bridge.pc.in
+++ b/console_bridge.pc.in
@@ -1,8 +1,8 @@
# This file was generated by CMake for @PROJECT_NAME@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=${prefix}
-libdir=${prefix}/lib
-includedir=${prefix}/include
+libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
+includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
Name: @PKG_NAME@
Description: @PKG_DESC@
--
2.0.4