diff options
author | Matthias Vogelgesang <matthias.vogelgesang@kit.edu> | 2015-06-23 14:59:33 +0200 |
---|---|---|
committer | Matthias Vogelgesang <matthias.vogelgesang@kit.edu> | 2015-06-23 14:59:33 +0200 |
commit | f3c6e08fe4068534373f8026892f569bdcdfa4dd (patch) | |
tree | 729385463df8c457e62c8fcfd8b2c01c826e1cb0 | |
parent | cc7465bec1ab0b12ca79758807788e4ac8fad765 (diff) | |
download | libufodecode-f3c6e08fe4068534373f8026892f569bdcdfa4dd.tar.gz libufodecode-f3c6e08fe4068534373f8026892f569bdcdfa4dd.tar.bz2 libufodecode-f3c6e08fe4068534373f8026892f569bdcdfa4dd.tar.xz libufodecode-f3c6e08fe4068534373f8026892f569bdcdfa4dd.zip |
Use ConfigurePaths to configure paths
-rw-r--r-- | CMakeLists.txt | 32 | ||||
-rw-r--r-- | ConfigurePaths.cmake | 90 | ||||
-rw-r--r-- | src/CMakeLists.txt | 14 | ||||
-rw-r--r-- | test/CMakeLists.txt | 6 | ||||
-rw-r--r-- | ufodecode.pc.in | 16 |
5 files changed, 112 insertions, 46 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 231aa15..0b68b35 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,37 +1,19 @@ cmake_minimum_required(VERSION 2.8) -set(TARNAME "libufodecode") set(LIBUFODECODE_API_VERSION "0.3") set(LIBUFODECODE_ABI_VERSION "0.3") set(LIBUFODECODE_ABI_MAJOR_VERSION "0") +set(LIBUFODECODE_VERSION "0.3.0") -set(PACKAGE_VERSION "0.3.0") -set(PACKAGE_NAME "${TARNAME}") -set(PACKAGE_TARNAME "${TARNAME}") -set(PACKAGE_STRING "${PACKAGE_NAME}-${PACKAGE_VERSION}") -set(PACKAGE_BUGREPORT "http://ufo.kit.edu/ufo/newticket") +list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}") -set(CPACK_SOURCE_GENERATOR "TGZ") -set(CPACK_SOURCE_IGNORE_FILES ".git" "tags" ".bzr" ".swp") -set(CPACK_SOURCE_PACKAGE_FILE_NAME ${PACKAGE_STRING} CACHE INTERNAL "tarball basename") +include(ConfigurePaths) +configure_paths(LIBUFODECODE) -if(NOT DEFINED BIN_INSTALL_DIR) - set(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin") -endif(NOT DEFINED BIN_INSTALL_DIR) +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/ufodecode.pc.in" + "${CMAKE_CURRENT_BINARY_DIR}/ufodecode.pc" + @ONLY IMMEDIATE) -if(NOT DEFINED LIB_INSTALL_DIR) - set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib") -endif(NOT DEFINED LIB_INSTALL_DIR) - -if(NOT DEFINED INCLUDE_INSTALL_DIR) - set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include") -endif(NOT DEFINED INCLUDE_INSTALL_DIR) - -if(NOT DEFINED LOCALE_INSTALL_DIR) - set(LOCALE_INSTALL_DIR "${DATA_INSTALL_DIR}/locale/") -endif(NOT DEFINED LOCALE_INSTALL_DIR) - -configure_file(ufodecode.pc.in ${CMAKE_CURRENT_BINARY_DIR}/ufodecode.pc) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ufodecode.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) diff --git a/ConfigurePaths.cmake b/ConfigurePaths.cmake new file mode 100644 index 0000000..df9c03c --- /dev/null +++ b/ConfigurePaths.cmake @@ -0,0 +1,90 @@ +# - pre-configured paths for CMake +# +# Usage: +# configure_paths(<PREFIX>) +# +# Checks if configure-like prefix and installation paths were passed by the user +# and sets up corresponding variables for use in install() commands and to fill +# out .pc files: +# +# PREFIX_PREFIX defaults to ... CMAKE_INSTALL_PREFIX +# PREFIX_EPREFIX PREFIX_PREFIX +# PREFIX_SBINDIR PREFIX_EPREFIX/sbin +# PREFIX_SYSCONFDIR PREFIX_PREFIX/etc +# PREFIX_LOCALSTATEDIR PREFIX_PREFIX/var +# PREFIX_BINDIR PREFIX_EPREFIX/bin +# PREFIX_LIBDIR PREFIX_EPREFIX/lib +# PREFIX_INCLUDEDIR PREFIX_PREFIX/include +# PREFIX_PKGCONFIGDIR PREFIX_LIBDIR/pkgconfig +# PREFIX_TYPELIBDIR PREFIX_LIBDIR/girepository-1.0 +# PREFIX_DATAROOTDIR PREFIX_PREFIX/share +# PREFIX_DATADIR PREFIX_DATAROOTDIR +# PREFIX_INFODIR PREFIX_DATAROOTDIR/info +# PREFIX_MANDIR PREFIX_DATAROOTDIR/man +# PREFIX_LOCALEDIR PREFIX_DATAROOTDIR/locale +# PREFIX_GIRDIR PREFIX_DATAROOTDIR/gir-1.0 + +# Copyright (C) 2013 Matthias Vogelgesang <matthias.vogelgesang@gmail.com> +# +# Redistribution and use, with or without modification, are permitted +# provided that the following conditions are met: +# +# 1. Redistributions must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# 2. The name of the author may not be used to endorse or promote +# products derived from this software without specific prior +# written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +if(__configure_paths) + return() +endif() + +set(__configure_paths YES) + +macro(_set_var _prefix _var _user _override _description) + set(_name "${_prefix}_${_var}") + + set("${_name}" "${_user}") + + if("${_name}" STREQUAL "") + set("${_name}" "${_override}") + endif() + + set(${_name} "${${_name}}" CACHE PATH "${_description}") + mark_as_advanced(${_name}) +endmacro() + +function(configure_paths _prefix) + _set_var("${_prefix}" "PREFIX" "${PREFIX}" "${CMAKE_INSTALL_PREFIX}" "install architecture-independent files in PREFIX") + _set_var("${_prefix}" "EPREFIX" "${EXEC_PREFIX}" "${${_prefix}_PREFIX}" "install architecture-dependent files in EPREFIX") + + _set_var("${_prefix}" "SBINDIR" "${SBINDIR}" "${${_prefix}_EPREFIX}/sbin" "system admin executabls") + _set_var("${_prefix}" "SYSCONFDIR" "${SYSCONFDIR}" "${${_prefix}_PREFIX}/etc" "read-only single-machine data") + _set_var("${_prefix}" "LOCALSTATEDIR" "${LOCALSTATEDIR}" "${${_prefix}_PREFIX}/var" "modifiable single-machine data") + _set_var("${_prefix}" "BINDIR" "${BINDIR}" "${${_prefix}_EPREFIX}/bin" "user executables") + _set_var("${_prefix}" "LIBDIR" "${LIBDIR}" "${${_prefix}_EPREFIX}/lib" "object code libraries") + _set_var("${_prefix}" "INCLUDEDIR" "${INCLUDEDIR}" "${${_prefix}_PREFIX}/include" "C header files") + _set_var("${_prefix}" "PKGCONFIGDIR" "${PKGCONFIGDIR}" "${${_prefix}_LIBDIR}/pkgconfig" "pkg-config files") + _set_var("${_prefix}" "TYPELIBDIR" "${TYPELIBDIR}" "${${_prefix}_LIBDIR}/girepository-1.0" "GObject run-time introspection data") + _set_var("${_prefix}" "DATAROOTDIR" "${DATAROOTDIR}" "${${_prefix}_PREFIX}/share" "read-only arch.-independent data root") + _set_var("${_prefix}" "DATADIR" "${DATADIR}" "${${_prefix}_DATAROOTDIR}" "read-only architecture-independent data") + _set_var("${_prefix}" "INFODIR" "${INFODIR}" "${${_prefix}_DATAROOTDIR}/info" "info documentation") + _set_var("${_prefix}" "MANDIR" "${MANDIR}" "${${_prefix}_DATAROOTDIR}/man" "man documentation") + _set_var("${_prefix}" "LOCALEDIR" "${LOCALEDIR}" "${${_prefix}_DATAROOTDIR}/locale" "locale-dependent data") + _set_var("${_prefix}" "GIRDIR" "${GIRDIR}" "${${_prefix}_DATAROOTDIR}/gir-1.0" "GObject introspection data") +endfunction() + +# vim: tw=0: diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 313b932..85feff4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -31,6 +31,9 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ) +configure_file("config.h.in" + "${CMAKE_CURRENT_BINARY_DIR}/config.h") + add_definitions("--std=c99 -Wall -O2 ${SSE_FLAGS}") add_library(ufodecode SHARED ufodecode.c) @@ -41,17 +44,10 @@ set_target_properties(ufodecode PROPERTIES ) install(TARGETS ufodecode - LIBRARY DESTINATION lib${LIB_SUFFIX} + LIBRARY DESTINATION ${LIBUFODECODE_LIBDIR} ) install(FILES ufodecode.h - DESTINATION include + DESTINATION ${LIBUFODECODE_INCLUDEDIR} ) - -if ("${CMAKE_BUILD_TYPE}" MATCHES "Debug") - set(DEBUG "1") -endif() - -configure_file(config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h) - diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 7539c19..b0214d4 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -11,10 +11,8 @@ include_directories( ${CMAKE_SOURCE_DIR}/src ) -add_executable(ipedec - ipedec.c - timer.c) +add_executable(ipedec ipedec.c timer.c) target_link_libraries(ipedec ufodecode) -install(TARGETS ipedec DESTINATION ${BIN_INSTALL_DIR}) +install(TARGETS ipedec DESTINATION ${LIBUFODECODE_BINDIR}) diff --git a/ufodecode.pc.in b/ufodecode.pc.in index f9b007a..b4d9524 100644 --- a/ufodecode.pc.in +++ b/ufodecode.pc.in @@ -1,10 +1,10 @@ -prefix=${CMAKE_INSTALL_PREFIX} -exec_prefix=${BIN_INSTALL_DIR} -libdir=${LIB_INSTALL_DIR} -includedir=${INCLUDE_INSTALL_DIR} +prefix=@LIBUFODECODE_PREFIX@ +exec_prefix=@LIBUFODECODE_EPREFIX@ +libdir=@LIBUFODECODE_LIBDIR@ +includedir=@LIBUFODECODE_INCLUDEDIR@ -Name: ${TARNAME} +Name: libufodecode Description: Decoding routines for the UFO camera -Version: ${PACKAGE_VERSION} -Libs: -L${LIB_INSTALL_DIR} -lufodecode -Cflags: -I${INCLUDE_INSTALL_DIR} +Version: @LIBUFODECODE_VERSION@ +Libs: -L@LIBUFODECODE_LIBDIR@ -lufodecode +Cflags: -I@LIBUFODECODE_INCLUDEDIR@ |