123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368 |
- From fd1bc29594c6dee8b65c294c1c8595349f5cfdb2 Mon Sep 17 00:00:00 2001
- From: Ahmad Samir <a.samirh78@gmail.com>
- Date: Sun, 5 Dec 2021 20:41:08 +0200
- Subject: [PATCH] Change CMake code to enable building against Qt 5 or 6
- - forward declaring QStringList doesn't work with Qt6, instead #include it
- (for Qt6 we could use 'using QStringList = QList<QString>' but that wouldn't
- work with Qt5, and it's not worth an #ifdef, QStringList is common in Qt
- and KDE code anyway)
- - Add a copy constructor to PolkitQt1::Details, required because of QMetaType
- and the QESDP d-pointer
- By default this builds with Qt5, to build with Qt6 pass -DQT_MAJOR_VERSION=6
- to cmake.
- ---
- CMakeLists.txt | 28 ++++++++++++++++------------
- agent/CMakeLists.txt | 4 ++--
- core/CMakeLists.txt | 4 ++--
- core/polkitqt1-authority.h | 2 +-
- core/polkitqt1-details.cpp | 2 ++
- core/polkitqt1-details.h | 5 +++++
- examples/CMakeLists.txt | 14 +++++++-------
- examples/agent/CMakeLists.txt | 4 ++--
- gui/CMakeLists.txt | 6 +++---
- polkit-qt5-agent-1.pc.cmake | 2 +-
- polkit-qt5-core-1.pc.cmake | 2 +-
- polkit-qt5-gui-1.pc.cmake | 2 +-
- polkit-qt6-1.pc.cmake | 11 +++++++++++
- polkit-qt6-agent-1.pc.cmake | 11 +++++++++++
- polkit-qt6-core-1.pc.cmake | 11 +++++++++++
- polkit-qt6-gui-1.pc.cmake | 11 +++++++++++
- test/CMakeLists.txt | 8 ++++----
- 17 files changed, 91 insertions(+), 36 deletions(-)
- create mode 100644 polkit-qt6-1.pc.cmake
- create mode 100644 polkit-qt6-agent-1.pc.cmake
- create mode 100644 polkit-qt6-core-1.pc.cmake
- create mode 100644 polkit-qt6-gui-1.pc.cmake
- diff --git a/CMakeLists.txt b/CMakeLists.txt
- index dd0977e..166c177 100644
- --- a/CMakeLists.txt
- +++ b/CMakeLists.txt
- @@ -24,19 +24,23 @@ include(FeatureSummary)
- set(REQUIRED_QT_VERSION 5.5.0)
- set(CMAKE_CXX_STANDARD 11)
-
- -find_package(Qt5 ${REQUIRED_QT_VERSION} REQUIRED COMPONENTS Core DBus Widgets)
- +if (NOT QT_MAJOR_VERSION)
- + set(QT_MAJOR_VERSION "5")
- +endif()
- +
- +find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} REQUIRED COMPONENTS Core DBus Widgets)
-
- find_package(PkgConfig REQUIRED)
-
- -set(POLKITQT-1_PCNAME "polkit-qt5-1")
- -set(POLKITQT-1_CORE_PCNAME "polkit-qt5-core-1")
- -set(POLKITQT-1_GUI_PCNAME "polkit-qt5-gui-1")
- -set(POLKITQT-1_AGENT_PCNAME "polkit-qt5-agent-1")
- -set(POLKITQT-1_CAMEL_NAME "PolkitQt5-1")
- -set(POLKITQT-1_EXAMPLE "polkit-example-qt5")
- -set(POLKITQT-1_EXAMPLE_HELPER "polkit-example-helper-qt5")
- -set(POLKITQT-1_AGENT_EXAMPLE "polkit-agent-example-qt5")
- -set(POLKITQT-1_INCLUDE_PATH "polkit-qt5-1")
- +set(POLKITQT-1_PCNAME "polkit-qt${QT_MAJOR_VERSION}-1")
- +set(POLKITQT-1_CORE_PCNAME "polkit-qt${QT_MAJOR_VERSION}-core-1")
- +set(POLKITQT-1_GUI_PCNAME "polkit-qt${QT_MAJOR_VERSION}-gui-1")
- +set(POLKITQT-1_AGENT_PCNAME "polkit-qt${QT_MAJOR_VERSION}-agent-1")
- +set(POLKITQT-1_CAMEL_NAME "PolkitQt${QT_MAJOR_VERSION}-1")
- +set(POLKITQT-1_EXAMPLE "polkit-example-qt${QT_MAJOR_VERSION}")
- +set(POLKITQT-1_EXAMPLE_HELPER "polkit-example-helper-qt${QT_MAJOR_VERSION}")
- +set(POLKITQT-1_AGENT_EXAMPLE "polkit-agent-example-qt${QT_MAJOR_VERSION}")
- +set(POLKITQT-1_INCLUDE_PATH "polkit-qt${QT_MAJOR_VERSION}-1")
-
- pkg_check_modules(POLKIT_GOBJECT polkit-gobject-1 REQUIRED IMPORTED_TARGET)
- pkg_check_modules(POLKIT_AGENT polkit-agent-1 REQUIRED IMPORTED_TARGET)
- @@ -168,13 +172,13 @@ install(EXPORT ${POLKITQT-1_CAMEL_NAME}Export FILE ${POLKITQT-1_CAMEL_NAME}Targe
-
- option(BUILD_EXAMPLES "Builds a set of examples for polkit-qt-1" OFF)
- if (BUILD_EXAMPLES)
- - find_package(Qt5Xml ${REQUIRED_QT_VERSION} REQUIRED)
- + find_package(Qt${QT_MAJOR_VERSION}Xml ${REQUIRED_QT_VERSION} REQUIRED)
- add_subdirectory(examples)
- endif (BUILD_EXAMPLES)
-
- option(BUILD_TEST "Builds unit tests for polkit-qt-1" OFF)
- if (BUILD_TEST)
- - find_package(Qt5Test ${REQUIRED_QT_VERSION} REQUIRED)
- + find_package(Qt${QT_MAJOR_VERSION}Test ${REQUIRED_QT_VERSION} REQUIRED)
- add_subdirectory(test)
- endif (BUILD_TEST)
-
- diff --git a/agent/CMakeLists.txt b/agent/CMakeLists.txt
- index 1a86cd8..ba95bfe 100644
- --- a/agent/CMakeLists.txt
- +++ b/agent/CMakeLists.txt
- @@ -14,10 +14,10 @@ generate_export_header(${POLKITQT-1_AGENT_PCNAME}
-
- target_link_libraries(${POLKITQT-1_AGENT_PCNAME}
- PUBLIC
- - Qt5::Core
- + Qt${QT_MAJOR_VERSION}::Core
- ${POLKITQT-1_CORE_PCNAME}
- PRIVATE
- - Qt5::Core
- + Qt${QT_MAJOR_VERSION}::Core
- PkgConfig::POLKIT_AGENT
- PkgConfig::GOBJECT
- )
- diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt
- index 8225871..29bccc7 100644
- --- a/core/CMakeLists.txt
- +++ b/core/CMakeLists.txt
- @@ -17,9 +17,9 @@ generate_export_header(${POLKITQT-1_CORE_PCNAME}
-
- target_link_libraries(${POLKITQT-1_CORE_PCNAME}
- PUBLIC
- - Qt5::Core
- + Qt${QT_MAJOR_VERSION}::Core
- PRIVATE
- - Qt5::DBus
- + Qt${QT_MAJOR_VERSION}::DBus
- PkgConfig::POLKIT_GOBJECT
- PkgConfig::GLIB2
- PkgConfig::GOBJECT
- diff --git a/core/polkitqt1-authority.h b/core/polkitqt1-authority.h
- index 43527b0..d2d66ba 100644
- --- a/core/polkitqt1-authority.h
- +++ b/core/polkitqt1-authority.h
- @@ -19,9 +19,9 @@
-
- #include <QObject>
- #include <QMetaType>
- +#include <QStringList>
-
- typedef struct _PolkitAuthority PolkitAuthority;
- -class QStringList;
-
- /**
- * \namespace PolkitQt1 PolkitQt
- diff --git a/core/polkitqt1-details.cpp b/core/polkitqt1-details.cpp
- index 50568ff..b5be7ee 100644
- --- a/core/polkitqt1-details.cpp
- +++ b/core/polkitqt1-details.cpp
- @@ -56,6 +56,8 @@ Details::~Details()
- {
- }
-
- +Details::Details(const Details &other) = default;
- +
- Details& Details::operator=(const PolkitQt1::Details& other)
- {
- d = other.d;
- diff --git a/core/polkitqt1-details.h b/core/polkitqt1-details.h
- index 7fb8448..59dfcb6 100644
- --- a/core/polkitqt1-details.h
- +++ b/core/polkitqt1-details.h
- @@ -48,6 +48,11 @@ public:
- */
- explicit Details(PolkitDetails *pkDetails);
-
- + /**
- + * Copy constructor.
- + */
- + Details(const Details &other);
- +
- ~Details();
-
- Details &operator=(const Details &other);
- diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
- index 229e97a..32577af 100644
- --- a/examples/CMakeLists.txt
- +++ b/examples/CMakeLists.txt
- @@ -11,9 +11,9 @@ target_sources(${POLKITQT-1_EXAMPLE} PRIVATE
- )
-
- target_link_libraries(${POLKITQT-1_EXAMPLE}
- - Qt5::Core
- - Qt5::DBus
- - Qt5::Widgets
- + Qt${QT_MAJOR_VERSION}::Core
- + Qt${QT_MAJOR_VERSION}::DBus
- + Qt${QT_MAJOR_VERSION}::Widgets
- ${POLKITQT-1_GUI_PCNAME}
- ${POLKITQT-1_CORE_PCNAME}
- )
- @@ -34,7 +34,7 @@ endmacro(dbus_add_activation_system_service _sources)
-
- add_executable(${POLKITQT-1_EXAMPLE_HELPER})
-
- -qt5_add_dbus_adaptor(polkit_example_helper_dbus_SRCS
- +qt_add_dbus_adaptor(polkit_example_helper_dbus_SRCS
- org.qt.policykit.examples.xml
- PkExampleHelper.h
- PkExampleHelper
- @@ -48,9 +48,9 @@ target_sources(${POLKITQT-1_EXAMPLE_HELPER} PRIVATE
-
- # see our helper is pretty small :D
- target_link_libraries(${POLKITQT-1_EXAMPLE_HELPER}
- - Qt5::Core
- - Qt5::Xml
- - Qt5::DBus
- + Qt${QT_MAJOR_VERSION}::Core
- + Qt${QT_MAJOR_VERSION}::Xml
- + Qt${QT_MAJOR_VERSION}::DBus
- ${POLKITQT-1_GUI_PCNAME}
- )
-
- diff --git a/examples/agent/CMakeLists.txt b/examples/agent/CMakeLists.txt
- index 020c686..130ac4e 100644
- --- a/examples/agent/CMakeLists.txt
- +++ b/examples/agent/CMakeLists.txt
- @@ -7,8 +7,8 @@ target_sources(${POLKITQT-1_AGENT_EXAMPLE} PRIVATE
- )
-
- target_link_libraries(${POLKITQT-1_AGENT_EXAMPLE}
- - Qt5::Core
- - Qt5::Widgets
- + Qt${QT_MAJOR_VERSION}::Core
- + Qt${QT_MAJOR_VERSION}::Widgets
- ${POLKITQT-1_AGENT_PCNAME}
- ${POLKITQT-1_CORE_PCNAME}
- PkgConfig::POLKIT_AGENT
- diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt
- index c22deba..69ec1f6 100644
- --- a/gui/CMakeLists.txt
- +++ b/gui/CMakeLists.txt
- @@ -15,10 +15,10 @@ generate_export_header(${POLKITQT-1_CORE_PCNAME}
- target_link_libraries(${POLKITQT-1_GUI_PCNAME}
- PUBLIC
- ${POLKITQT-1_CORE_PCNAME}
- - Qt5::Widgets
- + Qt${QT_MAJOR_VERSION}::Widgets
- PRIVATE
- - Qt5::Core
- - Qt5::DBus
- + Qt${QT_MAJOR_VERSION}::Core
- + Qt${QT_MAJOR_VERSION}::DBus
- )
-
- set_target_properties(${POLKITQT-1_GUI_PCNAME} PROPERTIES VERSION ${POLKITQT-1_LIBRARY_VERSION}
- diff --git a/polkit-qt5-agent-1.pc.cmake b/polkit-qt5-agent-1.pc.cmake
- index 709a24e..60b22d5 100644
- --- a/polkit-qt5-agent-1.pc.cmake
- +++ b/polkit-qt5-agent-1.pc.cmake
- @@ -6,6 +6,6 @@ includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@POLKITQT-1_INCLUDE_PATH@
- Name: @POLKITQT-1_AGENT_PCNAME@
- Description: Convenience library for using polkit Agent with a Qt-styled API
- Version: @POLKITQT-1_VERSION_STRING@
- -Requires: Qt5Core Qt5Gui
- +Requires: Qt@QT_MAJOR_VERSION@Core Qt@QT_MAJOR_VERSION@Gui
- Libs: -L${libdir} -l@POLKITQT-1_AGENT_PCNAME@
- Cflags: -I${includedir}
- diff --git a/polkit-qt5-core-1.pc.cmake b/polkit-qt5-core-1.pc.cmake
- index 588f267..2f5d562 100644
- --- a/polkit-qt5-core-1.pc.cmake
- +++ b/polkit-qt5-core-1.pc.cmake
- @@ -6,6 +6,6 @@ includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@POLKITQT-1_INCLUDE_PATH@
- Name: @POLKITQT-1_CORE_PCNAME@
- Description: Convenience library for using polkit with a Qt-styled API, non-GUI classes
- Version: @POLKITQT-1_VERSION_STRING@
- -Requires: Qt5Core
- +Requires: Qt@QT_MAJOR_VERSION@Core
- Libs: -L${libdir} -l@POLKITQT-1_CORE_PCNAME@
- Cflags: -I${includedir}
- diff --git a/polkit-qt5-gui-1.pc.cmake b/polkit-qt5-gui-1.pc.cmake
- index 1c012dd..1d208fb 100644
- --- a/polkit-qt5-gui-1.pc.cmake
- +++ b/polkit-qt5-gui-1.pc.cmake
- @@ -6,6 +6,6 @@ includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@POLKITQT-1_INCLUDE_PATH@
- Name: @POLKITQT-1_GUI_PCNAME@
- Description: Convenience library for using polkit with a Qt-styled API, GUI classes
- Version: @POLKITQT-1_VERSION_STRING@
- -Requires: Qt5Core Qt5Gui @POLKITQT-1_CORE_PCNAME@
- +Requires: Qt@QT_MAJOR_VERSION@Core Qt@QT_MAJOR_VERSION@Gui @POLKITQT-1_CORE_PCNAME@
- Libs: -L${libdir} -l@POLKITQT-1_GUI_PCNAME@
- Cflags: -I${includedir}
- diff --git a/polkit-qt6-1.pc.cmake b/polkit-qt6-1.pc.cmake
- new file mode 100644
- index 0000000..ba8e46e
- --- /dev/null
- +++ b/polkit-qt6-1.pc.cmake
- @@ -0,0 +1,11 @@
- +prefix=@CMAKE_INSTALL_PREFIX@
- +exec_prefix=@CMAKE_INSTALL_PREFIX@
- +libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
- +includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@POLKITQT-1_INCLUDE_PATH@
- +
- +Name: @POLKITQT-1_PCNAME@
- +Description: Convenience library for using polkit with a Qt-styled API
- +Version: @POLKITQT-1_VERSION_STRING@
- +Requires: @POLKITQT-1_CORE_PCNAME@ @POLKITQT-1_GUI_PCNAME@ @POLKITQT-1_AGENT_PCNAME@
- +Libs: -L${libdir} -l@POLKITQT-1_CORE_PCNAME@ -l@POLKITQT-1_GUI_PCNAME@ -l@POLKITQT-1_AGENT_PCNAME@
- +Cflags: -I${includedir}
- diff --git a/polkit-qt6-agent-1.pc.cmake b/polkit-qt6-agent-1.pc.cmake
- new file mode 100644
- index 0000000..60b22d5
- --- /dev/null
- +++ b/polkit-qt6-agent-1.pc.cmake
- @@ -0,0 +1,11 @@
- +prefix=@CMAKE_INSTALL_PREFIX@
- +exec_prefix=@CMAKE_INSTALL_PREFIX@
- +libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
- +includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@POLKITQT-1_INCLUDE_PATH@
- +
- +Name: @POLKITQT-1_AGENT_PCNAME@
- +Description: Convenience library for using polkit Agent with a Qt-styled API
- +Version: @POLKITQT-1_VERSION_STRING@
- +Requires: Qt@QT_MAJOR_VERSION@Core Qt@QT_MAJOR_VERSION@Gui
- +Libs: -L${libdir} -l@POLKITQT-1_AGENT_PCNAME@
- +Cflags: -I${includedir}
- diff --git a/polkit-qt6-core-1.pc.cmake b/polkit-qt6-core-1.pc.cmake
- new file mode 100644
- index 0000000..2f5d562
- --- /dev/null
- +++ b/polkit-qt6-core-1.pc.cmake
- @@ -0,0 +1,11 @@
- +prefix=@CMAKE_INSTALL_PREFIX@
- +exec_prefix=@CMAKE_INSTALL_PREFIX@
- +libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
- +includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@POLKITQT-1_INCLUDE_PATH@
- +
- +Name: @POLKITQT-1_CORE_PCNAME@
- +Description: Convenience library for using polkit with a Qt-styled API, non-GUI classes
- +Version: @POLKITQT-1_VERSION_STRING@
- +Requires: Qt@QT_MAJOR_VERSION@Core
- +Libs: -L${libdir} -l@POLKITQT-1_CORE_PCNAME@
- +Cflags: -I${includedir}
- diff --git a/polkit-qt6-gui-1.pc.cmake b/polkit-qt6-gui-1.pc.cmake
- new file mode 100644
- index 0000000..1d208fb
- --- /dev/null
- +++ b/polkit-qt6-gui-1.pc.cmake
- @@ -0,0 +1,11 @@
- +prefix=@CMAKE_INSTALL_PREFIX@
- +exec_prefix=@CMAKE_INSTALL_PREFIX@
- +libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
- +includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@/@POLKITQT-1_INCLUDE_PATH@
- +
- +Name: @POLKITQT-1_GUI_PCNAME@
- +Description: Convenience library for using polkit with a Qt-styled API, GUI classes
- +Version: @POLKITQT-1_VERSION_STRING@
- +Requires: Qt@QT_MAJOR_VERSION@Core Qt@QT_MAJOR_VERSION@Gui @POLKITQT-1_CORE_PCNAME@
- +Libs: -L${libdir} -l@POLKITQT-1_GUI_PCNAME@
- +Cflags: -I${includedir}
- diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
- index 8403d7b..d587034 100644
- --- a/test/CMakeLists.txt
- +++ b/test/CMakeLists.txt
- @@ -5,10 +5,10 @@ add_executable(polkit-qt-test
- )
-
- target_link_libraries(polkit-qt-test
- - Qt5::Core
- - Qt5::DBus
- - Qt5::Test
- - Qt5::Widgets
- + Qt${QT_MAJOR_VERSION}::Core
- + Qt${QT_MAJOR_VERSION}::DBus
- + Qt${QT_MAJOR_VERSION}::Test
- + Qt${QT_MAJOR_VERSION}::Widgets
- ${POLKITQT-1_CORE_PCNAME}
- ${POLKITQT-1_AGENT_PCNAME}
- )
- --
- GitLab
|