258 lines
7.8 KiB
Diff
258 lines
7.8 KiB
Diff
From 56669bd4e5ed21cfd2b0f5b94983792396695e5e Mon Sep 17 00:00:00 2001
|
|
From: Andreas Sturmlechner <andreas.sturmlechner@gmail.com>
|
|
Date: Sun, 17 Feb 2019 19:10:55 +0100
|
|
Subject: [PATCH] Use more GNUInstallDirs, fix pkgconfig libdir path, general
|
|
cleanup
|
|
|
|
---
|
|
CMakeLists.txt | 45 ++++++++++++-----------------------
|
|
cmake/modules/FindQJSON.cmake | 2 +-
|
|
dbusmenu-qt-config.cmake.in | 2 +-
|
|
dbusmenu-qt.pc.in | 6 ++---
|
|
src/CMakeLists.txt | 16 ++++++-------
|
|
tests/CMakeLists.txt | 10 ++++----
|
|
tools/testapp/CMakeLists.txt | 2 +-
|
|
7 files changed, 34 insertions(+), 49 deletions(-)
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index 72cbc45..2d757ec 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 2.8.11)
|
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules")
|
|
|
|
# Build options
|
|
-option(WITH_DOC "Build documentation (requires Doxygen)" ON)
|
|
+option(WITH_DOC "Build documentation (requires Doxygen)" OFF)
|
|
|
|
# Versions
|
|
## Package version
|
|
@@ -24,28 +24,8 @@ set(dbusmenu_qt_lib_PATCH_VERSION 0)
|
|
|
|
set(dbusmenu_qt_lib_VERSION ${dbusmenu_qt_lib_SOVERSION}.${dbusmenu_qt_lib_API_VERSION}.${dbusmenu_qt_lib_PATCH_VERSION})
|
|
|
|
-# Check if we want to explicitly select the Qt version to be used or autodetect
|
|
-if (NOT USE_QT4 AND NOT USE_QT5)
|
|
- # Autodetect, prefering Qt5
|
|
- message(STATUS "Autodetecting Qt version to use")
|
|
- find_package(Qt5Widgets QUIET)
|
|
- if (Qt5Widgets_FOUND)
|
|
- set(USE_QT5 TRUE)
|
|
- endif()
|
|
-endif()
|
|
-
|
|
# Detect for which Qt version we're building
|
|
-if (USE_QT5)
|
|
- find_package(Qt5Widgets REQUIRED)
|
|
- find_package(Qt5DBus REQUIRED)
|
|
- include_directories(${Qt5Widgets_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS})
|
|
- find_package(Qt5Core REQUIRED)
|
|
- set(CMAKE_AUTOMOC ON)
|
|
- set(CMAKE_AUTOMOC_RELAXED_MODE ON)
|
|
- set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
-
|
|
- set(QT_SUFFIX "qt5")
|
|
-else()
|
|
+if (USE_QT4)
|
|
find_package(Qt4 REQUIRED)
|
|
include_directories(
|
|
${QT_INCLUDE_DIR}
|
|
@@ -55,6 +35,14 @@ else()
|
|
)
|
|
|
|
set(QT_SUFFIX "qt")
|
|
+else()
|
|
+ find_package(Qt5 CONFIG REQUIRED Core DBus Widgets)
|
|
+ include_directories(${Qt5Widgets_INCLUDE_DIRS} ${Qt5DBus_INCLUDE_DIRS})
|
|
+ set(CMAKE_AUTOMOC ON)
|
|
+ set(CMAKE_AUTOMOC_RELAXED_MODE ON)
|
|
+ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
+
|
|
+ set(QT_SUFFIX "qt5")
|
|
endif()
|
|
|
|
include (CheckCXXCompilerFlag)
|
|
@@ -76,9 +64,7 @@ endif (__DBUSMENU_HAVE_CXX11)
|
|
|
|
include(CMakePackageConfigHelpers)
|
|
include(GNUInstallDirs)
|
|
-set(LIB_DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
|
-set(CMAKECONFIG_INSTALL_DIR "${LIB_DESTINATION}/cmake/dbusmenu-${QT_SUFFIX}")
|
|
-set(INCLUDE_INSTALL_DIR "include/dbusmenu-${QT_SUFFIX}")
|
|
+set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/dbusmenu-${QT_SUFFIX}")
|
|
|
|
# dist targets
|
|
set(ARCHIVE_NAME libdbusmenu-${QT_SUFFIX}-${dbusmenu_qt_VERSION})
|
|
@@ -103,7 +89,7 @@ add_dependencies(distcheck dist)
|
|
configure_file(dbusmenu-qt.pc.in ${CMAKE_BINARY_DIR}/dbusmenu-${QT_SUFFIX}.pc @ONLY)
|
|
|
|
install(FILES ${CMAKE_BINARY_DIR}/dbusmenu-${QT_SUFFIX}.pc
|
|
- DESTINATION ${LIB_DESTINATION}/pkgconfig
|
|
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
|
)
|
|
|
|
add_subdirectory(src)
|
|
@@ -118,7 +104,7 @@ if(WITH_DOC)
|
|
)
|
|
|
|
install(DIRECTORY ${CMAKE_BINARY_DIR}/html/
|
|
- DESTINATION share/doc/libdbusmenu-${QT_SUFFIX}-doc
|
|
+ DESTINATION ${CMAKE_INSTALL_DOCDIR}
|
|
)
|
|
endif(WITH_DOC)
|
|
|
|
@@ -126,8 +112,8 @@ endif(WITH_DOC)
|
|
configure_package_config_file(
|
|
dbusmenu-qt-config.cmake.in
|
|
${CMAKE_BINARY_DIR}/dbusmenu-${QT_SUFFIX}-config.cmake
|
|
- INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
|
|
+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/dbusmenu-${QT_SUFFIX}
|
|
PATH_VARS INCLUDE_INSTALL_DIR
|
|
)
|
|
|
|
write_basic_package_version_file(
|
|
@@ -140,6 +126,6 @@ write_basic_package_version_file(
|
|
install(FILES
|
|
${CMAKE_BINARY_DIR}/dbusmenu-${QT_SUFFIX}-config.cmake
|
|
${CMAKE_BINARY_DIR}/dbusmenu-${QT_SUFFIX}-config-version.cmake
|
|
- DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
|
|
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/dbusmenu-${QT_SUFFIX}"
|
|
COMPONENT Devel
|
|
)
|
|
--- a/cmake/modules/FindQJSON.cmake
|
|
+++ b/cmake/modules/FindQJSON.cmake
|
|
@@ -34,7 +34,7 @@ else (QJSON_INCLUDE_DIR AND QJSON_LIBRARIES)
|
|
qjson/parser.h
|
|
PATHS
|
|
${PC_QJSON_INCLUDE_DIRS}
|
|
- ${INCLUDE_INSTALL_DIR}
|
|
+ ${CMAKE_INSTALL_INCLUDEDIR}
|
|
${KDE4_INCLUDE_DIR}
|
|
)
|
|
|
|
--- a/dbusmenu-qt.pc.in
|
|
+++ b/dbusmenu-qt.pc.in
|
|
@@ -1,7 +1,7 @@
|
|
prefix=@CMAKE_INSTALL_PREFIX@
|
|
-exec_prefix=@CMAKE_INSTALL_PREFIX@
|
|
-libdir=@CMAKE_INSTALL_PREFIX@/lib
|
|
-includedir=@CMAKE_INSTALL_PREFIX@/include/dbusmenu-@QT_SUFFIX@
|
|
+exec_prefix=${prefix}
|
|
+libdir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@
|
|
+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@/dbusmenu-@QT_SUFFIX@
|
|
|
|
Name: libdbusmenu-@QT_SUFFIX@
|
|
Description: Qt implementation of dbusmenu spec
|
|
--- a/src/CMakeLists.txt
|
|
+++ b/src/CMakeLists.txt
|
|
@@ -29,7 +29,7 @@ endif (__DBUSMENU_HAVE_CXX11)
|
|
# Check whether QIcon::name() exists. It was added in late Qt 4.7 cycle, and is
|
|
# not present in betas.
|
|
|
|
-if (NOT USE_QT5)
|
|
+if (USE_QT4)
|
|
set(CMAKE_REQUIRED_INCLUDES "${QT_INCLUDE_DIR}")
|
|
set(CMAKE_REQUIRED_LIBRARIES "${QT_QTGUI_LIBRARIES};${QT_QTCORE_LIBRARIES}")
|
|
else()
|
|
@@ -64,7 +64,7 @@ include_directories(
|
|
${CMAKE_BINARY_DIR}/src
|
|
)
|
|
|
|
-if (NOT USE_QT5)
|
|
+if (USE_QT4)
|
|
qt4_automoc(${dbusmenu_qt_SRCS})
|
|
qt4_add_dbus_adaptor(dbusmenu_qt_SRCS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/com.canonical.dbusmenu.xml
|
|
@@ -88,7 +88,7 @@ set_target_properties(dbusmenu-${QT_SUFFIX} PROPERTIES
|
|
)
|
|
|
|
|
|
-if (NOT USE_QT5)
|
|
+if (USE_QT4)
|
|
target_link_libraries(dbusmenu-${QT_SUFFIX}
|
|
${QT_QTGUI_LIBRARIES}
|
|
${QT_QTDBUS_LIBRARIES}
|
|
@@ -105,23 +105,23 @@ endif()
|
|
|
|
# Make sure linking to the target adds dbusmenu-qt install directory
|
|
target_include_directories(dbusmenu-${QT_SUFFIX}
|
|
- INTERFACE "$<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}>")
|
|
+ INTERFACE "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/dbusmenu-${QT_SUFFIX}>")
|
|
|
|
install(TARGETS dbusmenu-${QT_SUFFIX}
|
|
EXPORT dbusmenu-${QT_SUFFIX}-targets
|
|
- LIBRARY DESTINATION ${LIB_DESTINATION}
|
|
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
RUNTIME DESTINATION bin
|
|
)
|
|
|
|
install(EXPORT dbusmenu-${QT_SUFFIX}-targets
|
|
- DESTINATION ${CMAKECONFIG_INSTALL_DIR})
|
|
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/dbusmenu-${QT_SUFFIX})
|
|
|
|
install(DIRECTORY .
|
|
- DESTINATION ${INCLUDE_INSTALL_DIR}
|
|
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dbusmenu-${QT_SUFFIX}
|
|
FILES_MATCHING PATTERN "*.h"
|
|
PATTERN "*_p.h" EXCLUDE
|
|
)
|
|
|
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dbusmenu_version.h
|
|
- DESTINATION ${INCLUDE_INSTALL_DIR}
|
|
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dbusmenu-${QT_SUFFIX}
|
|
)
|
|
--- a/tests/CMakeLists.txt
|
|
+++ b/tests/CMakeLists.txt
|
|
@@ -1,9 +1,9 @@
|
|
-if (NOT USE_QT5)
|
|
+if (USE_QT4)
|
|
qt4_automoc(slowmenu.cpp)
|
|
endif()
|
|
add_executable(slowmenu slowmenu.cpp)
|
|
|
|
-if (NOT USE_QT5)
|
|
+if (USE_QT4)
|
|
target_link_libraries(slowmenu
|
|
${QT_QTGUI_LIBRARIES}
|
|
${QT_QTDBUS_LIBRARIES}
|
|
@@ -77,7 +77,7 @@ set(dbusmenuexportertest_SRCS
|
|
testutils.cpp
|
|
)
|
|
|
|
-if (NOT USE_QT5)
|
|
+if (USE_QT4)
|
|
qt4_automoc(${dbusmenuexportertest_SRCS})
|
|
endif()
|
|
|
|
@@ -94,7 +94,7 @@ set(dbusmenuimportertest_SRCS
|
|
testutils.cpp
|
|
)
|
|
|
|
-if (NOT USE_QT5)
|
|
+if (USE_QT4)
|
|
qt4_automoc(${dbusmenuimportertest_SRCS})
|
|
endif()
|
|
|
|
@@ -110,7 +110,7 @@ set(dbusmenushortcuttest_SRCS
|
|
dbusmenushortcuttest.cpp
|
|
)
|
|
|
|
-if (NOT USE_QT5)
|
|
+if (USE_QT4)
|
|
qt4_automoc(${dbusmenushortcuttest_SRCS})
|
|
endif()
|
|
|
|
--- a/tools/testapp/CMakeLists.txt
|
|
+++ b/tools/testapp/CMakeLists.txt
|
|
@@ -4,7 +4,7 @@ set(qtapp_SRCS
|
|
|
|
add_executable(dbusmenubench-qtapp ${qtapp_SRCS})
|
|
|
|
-if (NOT USE_QT5)
|
|
+if (USE_QT4)
|
|
# Qt4
|
|
include_directories(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../../src
|
|
--
|
|
2.20.1
|
|
|