From 89e1d639b90554ce4e5ab8f632b138cefd15b7a7 Mon Sep 17 00:00:00 2001 From: Alf Gaida Date: Sun, 30 Oct 2016 16:13:37 +0100 Subject: [PATCH] Cherry-picking upstream release 0.2.0 * Added build dependency qtbase5-dev * Added dependency cmake (>= 3.0.2) * Switch Architecture to any again --- CHANGELOG | 12 +++- CMakeLists.txt | 96 +++++++++++++++++++++++++++---- README.md | 3 +- cmake/FindInstallConfigPath.cmake | 26 +++++++++ cmake/LXQtConfigVars.cmake.in | 40 +++++++++++++ debian/.gitignore | 4 +- debian/changelog | 9 +++ debian/control | 4 +- 8 files changed, 176 insertions(+), 18 deletions(-) create mode 100644 cmake/FindInstallConfigPath.cmake create mode 100644 cmake/LXQtConfigVars.cmake.in diff --git a/CHANGELOG b/CHANGELOG index b126ac1..e02d385 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,7 +1,17 @@ -lxqt-build-tools-0.1.0 / 2016-10-14 +lxqt-build-tools-0.2.0 / 2016-10-30 =================================== + * Bump minor to 2 (#7) + * Added Qt5Core to README.md (#6) + * Adds an LXQtConfigVars module + * Adds superbuild support + * README.md: Update dependencies + +0.1.0 / 2016-10-14 +================== + + * Release 0.1.0: Update changelog * Adds LXQtCreatePortableHeaders module * Authors and license (#2) * Add README.md diff --git a/CMakeLists.txt b/CMakeLists.txt index abb848d..4b1fa0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,14 +2,85 @@ cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR) project(lxqt-build-tools) +option(WITH_XDG_DIRS_FALLBACK "Use our XDG_CONFIG_DIRS fallback" ON) + set(LXQT_BUILD_TOOLS_MAJOR_VERSION 0) -set(LXQT_BUILD_TOOLS_MINOR_VERSION 1) +set(LXQT_BUILD_TOOLS_MINOR_VERSION 2) set(LXQT_BUILD_TOOLS_PATCH_VERSION 0) set(LXQT_BUILD_TOOLS_VERSION ${LXQT_BUILD_TOOLS_MAJOR_VERSION}.${LXQT_BUILD_TOOLS_MINOR_VERSION}${LXQT_BUILD_TOOLS_PATCH_VERSION}) +set(LXQT_MAJOR_VERSION 0) +set(LXQT_MINOR_VERSION 11) +set(LXQT_PATCH_VERSION 0) +set(LXQT_VERSION ${LXQT_MAJOR_VERSION}.${LXQT_MINOR_VERSION}.${LXQT_PATCH_VERSION}) + include(CMakePackageConfigHelpers) include(GNUInstallDirs) # Standard directories for installation +include(cmake/FindInstallConfigPath.cmake) # sets LXQT_ETC_XDG_DIR, if unset + +#----------------------------------------------------------------------------- +# LXQT_DATA_DIR defaults to CMAKE_INSTALL_FULL_DATADIR. It's added to +# XDG_DATA_DIRS by the startlxqt script +# Warning: Setting LXQT_DATA_DIR must be done after including GNUInstallDirs +#----------------------------------------------------------------------------- +if (NOT DEFINED LXQT_DATA_DIR) + set(LXQT_DATA_DIR "${CMAKE_INSTALL_FULL_DATADIR}" CACHE PATH + "LXQt base directory relative to which data files should be searched" + ) +endif() + +set(LXQT_LIBRARY_NAME "lxqt" CACHE STRING "lxqt") +set(LXQT_RELATIVE_SHARE_DIR "${LXQT_LIBRARY_NAME}") +set(LXQT_SHARE_DIR "${CMAKE_INSTALL_FULL_DATAROOTDIR}/${LXQT_RELATIVE_SHARE_DIR}") +set(LXQT_RELATIVE_TRANSLATIONS_DIR "${LXQT_LIBRARY_NAME}/translations") +set(LXQT_TRANSLATIONS_DIR "${LXQT_SHARE_DIR}/translations") +set(LXQT_GRAPHICS_DIR "${LXQT_SHARE_DIR}/graphics") + +file(GLOB toInstallFindModules + "${PROJECT_SOURCE_DIR}/cmake/find-modules/*.cmake" +) + +file(GLOB toInstallModules + "${PROJECT_SOURCE_DIR}/cmake/modules/*.cmake" + "${PROJECT_SOURCE_DIR}/cmake/modules/*.in" +) + +#----------------------------------------------------------------------------- +# Superbuild mode +#----------------------------------------------------------------------------- +set(FIND_MODULES_INSTALL_DIR "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/lxqt-build-tools/cmake/find-modules/") +set(MODULES_INSTALL_DIR "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/lxqt-build-tools/cmake/modules/") + +file(COPY + ${toInstallFindModules} + DESTINATION "${FIND_MODULES_INSTALL_DIR}" +) + +file(COPY + ${toInstallModules} + DESTINATION "${MODULES_INSTALL_DIR}" +) + +configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/lxqt-build-tools-config.cmake.in" + "${CMAKE_BINARY_DIR}/lxqt-build-tools.cmake" + INSTALL_DESTINATION "neverland" # required, altough we don't install it + PATH_VARS + MODULES_INSTALL_DIR + FIND_MODULES_INSTALL_DIR +) + +configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/LXQtConfigVars.cmake.in" + "${MODULES_INSTALL_DIR}/LXQtConfigVars.cmake" + @ONLY +) + + +#----------------------------------------------------------------------------- +# Installable mode +#----------------------------------------------------------------------------- set(CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_DATAROOTDIR}/cmake/lxqt-build-tools/") set(FIND_MODULES_INSTALL_DIR "${CMAKE_INSTALL_DATAROOTDIR}/cmake/lxqt-build-tools/find-modules/") set(MODULES_INSTALL_DIR "${CMAKE_INSTALL_DATAROOTDIR}/cmake/lxqt-build-tools/modules/") @@ -23,6 +94,13 @@ configure_package_config_file( FIND_MODULES_INSTALL_DIR ) +configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/LXQtConfigVars.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/install/LXQtConfigVars.cmake" + @ONLY +) + +# The package version file is common to superbuild and installable mode write_basic_package_version_file( "${CMAKE_BINARY_DIR}/lxqt-build-tools-config-version.cmake" VERSION ${LXQT_BUILD_TOOLS_VERSION} @@ -35,21 +113,15 @@ install(FILES DESTINATION "${CMAKECONFIG_INSTALL_DIR}" ) -file(GLOB toInstallFindModules - "${PROJECT_SOURCE_DIR}/cmake/find-modules/*.cmake" -) - install( FILES ${toInstallFindModules} DESTINATION "${FIND_MODULES_INSTALL_DIR}" ) -file(GLOB toInstallModules - "${PROJECT_SOURCE_DIR}/cmake/modules/*.cmake" - "${PROJECT_SOURCE_DIR}/cmake/modules/*.in" -) - install( - FILES ${toInstallModules} - DESTINATION "${MODULES_INSTALL_DIR}" + FILES + ${toInstallModules} + "${CMAKE_CURRENT_BINARY_DIR}/install/LXQtConfigVars.cmake" + DESTINATION + "${MODULES_INSTALL_DIR}" ) diff --git a/README.md b/README.md index 599a54f..3b4a5b0 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,10 @@ These tools used to be spread over the repositories of various other components ### Compiling sources -The repository's build dependencies are CMake, Qt Base / Tools / X11 Extras, [libqtxdg](https://github.com/lxde/libqtxdg) and KWindowSystem. In order to pull VCS checkouts Git is needed as well. Runtime dependencies do not exist. +To build only CMake and Qt5Core are needed, optionally Git to pull VCS checkouts. Runtime dependencies do not exist. Code configuration is handled by CMake. CMake variable `CMAKE_INSTALL_PREFIX` has to be set to `/usr` on most operating systems. + To build run `make`, to install `make install` which accepts variable `DESTDIR` as usual. (Strictly speaking `make` isn't even needed right now. On the other hand it doesn't hurt so packagers may just include it in case it'll be needed one day.) ### Binary packages diff --git a/cmake/FindInstallConfigPath.cmake b/cmake/FindInstallConfigPath.cmake new file mode 100644 index 0000000..e995c7a --- /dev/null +++ b/cmake/FindInstallConfigPath.cmake @@ -0,0 +1,26 @@ +# XDG standards expects system-wide configuration files in the /etc/xdg/lxqt location. +# Unfortunately QSettings we are using internally can be overriden in the Qt compilation +# time to use different path for system-wide configs. (for example configure ... -sysconfdir /etc/settings ...) +# This path can be found calling Qt4's qmake: +# qmake -query QT_INSTALL_CONFIGURATION +# + +find_package(Qt5Core REQUIRED) + +if(NOT DEFINED LXQT_ETC_XDG_DIR) + get_target_property(QT_QMAKE_EXECUTABLE ${Qt5Core_QMAKE_EXECUTABLE} IMPORTED_LOCATION) + message(STATUS "${QT_QMAKE_EXECUTABLE}") + + if(NOT QT_QMAKE_EXECUTABLE) + message(FATAL_ERROR "LXQT_ETC_XDG_DIR: qmake executable not found (included before qt was configured?)") + endif() + + execute_process(COMMAND ${QT_QMAKE_EXECUTABLE} -query QT_INSTALL_CONFIGURATION + OUTPUT_VARIABLE LXQT_ETC_XDG_DIR + OUTPUT_STRIP_TRAILING_WHITESPACE) + + message(STATUS "LXQT_ETC_XDG_DIR autodetected as '${LXQT_ETC_XDG_DIR}'") + message(STATUS "You can set it manually with -DLXQT_ETC_XDG_DIR=") + message(STATUS "") +endif () + diff --git a/cmake/LXQtConfigVars.cmake.in b/cmake/LXQtConfigVars.cmake.in new file mode 100644 index 0000000..fd8870f --- /dev/null +++ b/cmake/LXQtConfigVars.cmake.in @@ -0,0 +1,40 @@ +# The module defines the following variables +# +# LXQT_SHARE_DIR - This allows to install and read the configs from non-standard locations +# +# LXQT_TRANSLATIONS_DIR - The default translations directory +# +# LXQT_ETC_XDG_DIR - XDG standards expects system-wide configuration files in the +# /etc/xdg/lxqt location. Unfortunately QSettings we are using internally +# can be overriden in the Qt compilation time to use different path for +# system-wide configs. (for example configure ... -sysconfdir /etc/settings ...) +# This path can be found calling Qt's qmake: +# qmake -query QT_INSTALL_CONFIGURATION +# +# LXQT_DATA_DIR - LXQt base directory relative to which data files should +# be searched.Defaults to CMAKE_INSTALL_FULL_DATADIR. It's +# added to XDG_DATA_DIRS by the startlxqt script. + + +set(LXQT_MAJOR_VERSION "@LXQT_MAJOR_VERSION@") +set(LXQT_MINOR_VERSION "@LXQT_MINOR_VERSION@") +set(LXQT_PATCH_VERSION "@LXQT_PATCH_VERSION@") +set(LXQT_VERSION "@LXQT_VERSION@") + +set(LXQT_LIBRARY_NAME "@LXQT_LIBRARY_NAME@") +set(LXQT_RELATIVE_SHARE_DIR "@LXQT_RELATIVE_SHARE_DIR@") +set(LXQT_SHARE_DIR "@LXQT_SHARE_DIR@") +set(LXQT_RELATIVE_TRANSLATIONS_DIR "@LXQT_RELATIVE_TRANSLATIONS_DIR@") +set(LXQT_TRANSLATIONS_DIR "@LXQT_TRANSLATIONS_DIR@") +set(LXQT_GRAPHICS_DIR "@LXQT_GRAPHICS_DIR@") +set(LXQT_ETC_XDG_DIR "@LXQT_ETC_XDG_DIR@") +set(LXQT_DATA_DIR "@LXQT_DATA_DIR@") + +add_definitions("-DLXQT_RELATIVE_SHARE_DIR=\"${LXQT_RELATIVE_SHARE_DIR}\"") +add_definitions("-DLXQT_SHARE_DIR=\"${LXQT_SHARE_DIR}\"") +add_definitions("-DLXQT_RELATIVE_SHARE_TRANSLATIONS_DIR=\"${LXQT_RELATIVE_TRANSLATIONS_DIR}\"") +add_definitions("-DLXQT_SHARE_TRANSLATIONS_DIR=\"${LXQT_TRANSLATIONS_DIR}\"") +add_definitions("-DLXQT_GRAPHICS_DIR=\"${LXQT_GRAPHICS_DIR}\"") +add_definitions("-DLXQT_ETC_XDG_DIR=\"${LXQT_ETC_XDG_DIR}\"") +add_definitions("-DLXQT_DATA_DIR=\"${LXQT_DATA_DIR}\"") +add_definitions("-DLXQT_VERSION=\"${LXQT_VERSION}\"") diff --git a/debian/.gitignore b/debian/.gitignore index fd1da30..cc1cfc6 100644 --- a/debian/.gitignore +++ b/debian/.gitignore @@ -4,6 +4,4 @@ /debhelper-build-stamp /files -/liblxqt0/ -/liblxqt0-dev/ -/tmp +/lxqt-build-tools/ diff --git a/debian/changelog b/debian/changelog index 34f780e..88d873d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +lxqt-build-tools (0.2.0-1) unstable; urgency=medium + + * Cherry-picking upstream release 0.2.0 + * Added build dependency qtbase5-dev + * Added dependency cmake (>= 3.0.2) + * Switch Architecture to any again + + -- Alf Gaida Sun, 30 Oct 2016 15:39:40 +0100 + lxqt-build-tools (0.1.0-1) unstable; urgency=medium * Initial release (Closes: #839943) diff --git a/debian/control b/debian/control index 1e5a343..4a93925 100644 --- a/debian/control +++ b/debian/control @@ -6,15 +6,17 @@ Section: devel Priority: optional Build-Depends: debhelper (>= 10), cmake (>= 3.0.2), + qtbase5-dev Standards-Version: 3.9.8 Vcs-Browser: https://anonscm.debian.org/cgit/pkg-lxqt/lxqt-build-tools.git/?h=lxqt-snapshots/latest Vcs-Git: https://anonscm.debian.org/git/pkg-lxqt/lxqt-build-tools.git -b lxqt-snapshots/latest Homepage: https://github.com/lxde/lxqt-build-tools Package: lxqt-build-tools -Architecture: all +Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, + cmake (>= 3.0.2), pkg-config, qttools5-dev, qttools5-dev-tools