diff options
| author | Simon Quigley <tsimonq2@ubuntu.com> | 2017-06-19 15:19:47 -0500 | 
|---|---|---|
| committer | Simon Quigley <tsimonq2@ubuntu.com> | 2017-06-19 15:19:47 -0500 | 
| commit | 7aacc9f2510901c9e97b30fa9bcb550bb7f99c03 (patch) | |
| tree | 16908948750c11da8332d80d8bb9b339399ee4d7 /cmake | |
| parent | 7c47b5b9584f5011aeba18d7e1b26b3d3124825f (diff) | |
New upstream version 0.5.1+git20170605
Diffstat (limited to 'cmake')
| -rw-r--r-- | cmake/GNUInstallDirs.cmake | 182 | ||||
| -rw-r--r-- | cmake/Translations.cmake | 41 | 
2 files changed, 223 insertions, 0 deletions
| diff --git a/cmake/GNUInstallDirs.cmake b/cmake/GNUInstallDirs.cmake new file mode 100644 index 00000000..c3bb203a --- /dev/null +++ b/cmake/GNUInstallDirs.cmake @@ -0,0 +1,182 @@ +# - Define GNU standard installation directories +# Provides install directory variables as defined for GNU software: +#  https://www.gnu.org/prep/standards/html_node/Directory-Variables.html +# Inclusion of this module defines the following variables: +#  CMAKE_INSTALL_<dir>      - destination for files of a given type +#  CMAKE_INSTALL_FULL_<dir> - corresponding absolute path +# where <dir> is one of: +#  BINDIR           - user executables (bin) +#  SBINDIR          - system admin executables (sbin) +#  LIBEXECDIR       - program executables (libexec) +#  SYSCONFDIR       - read-only single-machine data (etc) +#  SHAREDSTATEDIR   - modifiable architecture-independent data (com) +#  LOCALSTATEDIR    - modifiable single-machine data (var) +#  LIBDIR           - object code libraries (lib or lib64) +#  INCLUDEDIR       - C header files (include) +#  OLDINCLUDEDIR    - C header files for non-gcc (/usr/include) +#  DATAROOTDIR      - read-only architecture-independent data root (share) +#  DATADIR          - read-only architecture-independent data (DATAROOTDIR) +#  INFODIR          - info documentation (DATAROOTDIR/info) +#  LOCALEDIR        - locale-dependent data (DATAROOTDIR/locale) +#  MANDIR           - man documentation (DATAROOTDIR/man) +#  DOCDIR           - documentation root (DATAROOTDIR/doc/PROJECT_NAME) +# Each CMAKE_INSTALL_<dir> value may be passed to the DESTINATION options of +# install() commands for the corresponding file type.  If the includer does +# not define a value the above-shown default will be used and the value will +# appear in the cache for editing by the user. +# Each CMAKE_INSTALL_FULL_<dir> value contains an absolute path constructed +# from the corresponding destination by prepending (if necessary) the value +# of CMAKE_INSTALL_PREFIX. + +#============================================================================= +# Copyright 2011 Nikita Krupen'ko <krnekit@gmail.com> +# Copyright 2011 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +#  License text for the above reference.) + +# Installation directories +# +if(NOT DEFINED CMAKE_INSTALL_BINDIR) +  set(CMAKE_INSTALL_BINDIR "bin" CACHE PATH "user executables (bin)") +endif() + +if(NOT DEFINED CMAKE_INSTALL_SBINDIR) +  set(CMAKE_INSTALL_SBINDIR "sbin" CACHE PATH "system admin executables (sbin)") +endif() + +if(NOT DEFINED CMAKE_INSTALL_LIBEXECDIR) +  set(CMAKE_INSTALL_LIBEXECDIR "libexec" CACHE PATH "program executables (libexec)") +endif() + +if(NOT DEFINED CMAKE_INSTALL_SYSCONFDIR) +  set(CMAKE_INSTALL_SYSCONFDIR "etc" CACHE PATH "read-only single-machine data (etc)") +endif() + +if(NOT DEFINED CMAKE_INSTALL_SHAREDSTATEDIR) +  set(CMAKE_INSTALL_SHAREDSTATEDIR "com" CACHE PATH "modifiable architecture-independent data (com)") +endif() + +if(NOT DEFINED CMAKE_INSTALL_LOCALSTATEDIR) +  set(CMAKE_INSTALL_LOCALSTATEDIR "var" CACHE PATH "modifiable single-machine data (var)") +endif() + +if(NOT DEFINED CMAKE_INSTALL_LIBDIR) +  set(_LIBDIR_DEFAULT "lib") +  # Override this default 'lib' with 'lib64' iff: +  #  - we are on Linux system but NOT cross-compiling +  #  - we are NOT on debian +  #  - we are on a 64 bits system +  # reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf +  # Note that the future of multi-arch handling may be even +  # more complicated than that: https://wiki.debian.org/Multiarch +  if(CMAKE_SYSTEM_NAME MATCHES "Linux" +      AND NOT CMAKE_CROSSCOMPILING +      AND NOT EXISTS "/etc/debian_version") +    if(NOT DEFINED CMAKE_SIZEOF_VOID_P) +      message(AUTHOR_WARNING +        "Unable to determine default CMAKE_INSTALL_LIBDIR directory because no target architecture is known. " +        "Please enable at least one language before including GNUInstallDirs.") +    else() +      if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") +        set(_LIBDIR_DEFAULT "lib64") +      endif() +    endif() +  endif() +  set(CMAKE_INSTALL_LIBDIR "${_LIBDIR_DEFAULT}" CACHE PATH "object code libraries (${_LIBDIR_DEFAULT})") +endif() + +if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR) +  set(CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C header files (include)") +endif() + +if(NOT DEFINED CMAKE_INSTALL_OLDINCLUDEDIR) +  set(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include" CACHE PATH "C header files for non-gcc (/usr/include)") +endif() + +if(NOT DEFINED CMAKE_INSTALL_DATAROOTDIR) +  set(CMAKE_INSTALL_DATAROOTDIR "share" CACHE PATH "read-only architecture-independent data root (share)") +endif() + +#----------------------------------------------------------------------------- +# Values whose defaults are relative to DATAROOTDIR.  Store empty values in +# the cache and store the defaults in local variables if the cache values are +# not set explicitly.  This auto-updates the defaults as DATAROOTDIR changes. + +if(NOT CMAKE_INSTALL_DATADIR) +  set(CMAKE_INSTALL_DATADIR "" CACHE PATH "read-only architecture-independent data (DATAROOTDIR)") +  set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATAROOTDIR}") +endif() + +if(NOT CMAKE_INSTALL_INFODIR) +  set(CMAKE_INSTALL_INFODIR "" CACHE PATH "info documentation (DATAROOTDIR/info)") +  set(CMAKE_INSTALL_INFODIR "${CMAKE_INSTALL_DATAROOTDIR}/info") +endif() + +if(NOT CMAKE_INSTALL_LOCALEDIR) +  set(CMAKE_INSTALL_LOCALEDIR "" CACHE PATH "locale-dependent data (DATAROOTDIR/locale)") +  set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale") +endif() + +if(NOT CMAKE_INSTALL_MANDIR) +  set(CMAKE_INSTALL_MANDIR "" CACHE PATH "man documentation (DATAROOTDIR/man)") +  set(CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man") +endif() + +if(NOT CMAKE_INSTALL_DOCDIR) +  set(CMAKE_INSTALL_DOCDIR "" CACHE PATH "documentation root (DATAROOTDIR/doc/PROJECT_NAME)") +  set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}") +endif() + +#----------------------------------------------------------------------------- + +mark_as_advanced( +  CMAKE_INSTALL_BINDIR +  CMAKE_INSTALL_SBINDIR +  CMAKE_INSTALL_LIBEXECDIR +  CMAKE_INSTALL_SYSCONFDIR +  CMAKE_INSTALL_SHAREDSTATEDIR +  CMAKE_INSTALL_LOCALSTATEDIR +  CMAKE_INSTALL_LIBDIR +  CMAKE_INSTALL_INCLUDEDIR +  CMAKE_INSTALL_OLDINCLUDEDIR +  CMAKE_INSTALL_DATAROOTDIR +  CMAKE_INSTALL_DATADIR +  CMAKE_INSTALL_INFODIR +  CMAKE_INSTALL_LOCALEDIR +  CMAKE_INSTALL_MANDIR +  CMAKE_INSTALL_DOCDIR +  ) + +# Result directories +# +foreach(dir +    BINDIR +    SBINDIR +    LIBEXECDIR +    SYSCONFDIR +    SHAREDSTATEDIR +    LOCALSTATEDIR +    LIBDIR +    INCLUDEDIR +    OLDINCLUDEDIR +    DATAROOTDIR +    DATADIR +    INFODIR +    LOCALEDIR +    MANDIR +    DOCDIR +    ) +  if(NOT IS_ABSOLUTE ${CMAKE_INSTALL_${dir}}) +    set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_${dir}}") +  else() +    set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_${dir}}") +  endif() +endforeach() diff --git a/cmake/Translations.cmake b/cmake/Translations.cmake new file mode 100644 index 00000000..476fb374 --- /dev/null +++ b/cmake/Translations.cmake @@ -0,0 +1,41 @@ +# Translations.cmake, CMake macros written for Marlin, feel free to re-use them + +macro(add_translations_directory NLS_PACKAGE) +    add_custom_target (i18n ALL COMMENT “Building i18n messages.”) +    find_program (MSGFMT_EXECUTABLE msgfmt) +    file (GLOB PO_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.po) +    foreach (PO_INPUT ${PO_FILES}) +        get_filename_component (PO_INPUT_BASE ${PO_INPUT} NAME_WE) +        set (MO_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PO_INPUT_BASE}.mo) +        add_custom_command (TARGET i18n COMMAND ${MSGFMT_EXECUTABLE} -o ${MO_OUTPUT} ${PO_INPUT}) + +        install (FILES ${MO_OUTPUT} DESTINATION +            share/locale/${PO_INPUT_BASE}/LC_MESSAGES +            RENAME ${NLS_PACKAGE}.mo) +    endforeach (PO_INPUT ${PO_FILES}) +endmacro(add_translations_directory) + + +macro(add_translations_catalog NLS_PACKAGE) +    add_custom_target (pot COMMENT “Building translation catalog.”) +    find_program (XGETTEXT_EXECUTABLE xgettext) + + +    set(C_SOURCE "") + +    foreach(FILES_INPUT ${ARGN}) +        file (GLOB_RECURSE SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/${FILES_INPUT}/*.c) +        foreach(C_FILE ${SOURCE_FILES}) +            set(C_SOURCE ${C_SOURCE} ${C_FILE}) +        endforeach() +        file (GLOB_RECURSE SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/${FILES_INPUT}/*.vala) +        foreach(C_FILE ${SOURCE_FILES}) +            set(C_SOURCE ${C_SOURCE} ${C_FILE}) +        endforeach() +    endforeach() + +    add_custom_command (TARGET pot COMMAND +        ${XGETTEXT_EXECUTABLE} -d ${NLS_PACKAGE} -o ${CMAKE_CURRENT_SOURCE_DIR}/${NLS_PACKAGE}.pot +        ${VALA_SOURCE} ${C_SOURCE} --keyword="_" --keyword="N_" --from-code=UTF-8 +        ) +endmacro() | 
