aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2023-04-07 16:21:10 +0200
committerLinus Jahn <lnj@kaidan.im>2023-04-07 16:21:10 +0200
commitab4bdf2da41a26f462fe3a333a34e32c999e2a6d (patch)
tree2501bde9b6da885056166c769befa7f7d4729e49 /CMakeLists.txt
parentc8e13f6fd3df8dcab0170dda6f54eaf5175d8437 (diff)
parentb44a7ee310bd2c9bc7c0d234ab7a96c501d20559 (diff)
downloadqxmpp-ab4bdf2da41a26f462fe3a333a34e32c999e2a6d.tar.gz
Merge branch '1.5'
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt52
1 files changed, 43 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1f9181f9..f3e3ad94 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,8 +12,12 @@ set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/modules")
+# Qt
if(NOT DEFINED QT_VERSION_MAJOR)
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network Xml)
endif()
@@ -26,9 +30,6 @@ if(${QT_VERSION_MAJOR} EQUAL 6)
find_package(Qt6Core5Compat)
endif()
-set(CMAKE_AUTOMOC ON)
-set(CMAKE_AUTORCC ON)
-
include(GNUInstallDirs)
option(BUILD_SHARED "Build shared library" ON)
@@ -40,6 +41,9 @@ option(BUILD_OMEMO "Build the OMEMO module" OFF)
option(WITH_GSTREAMER "Build with GStreamer support for Jingle" OFF)
option(WITH_QCA "Build with QCA for OMEMO or encrypted file sharing" ${Qca-qt${QT_VERSION_MAJOR}_FOUND})
+set(QXMPP_TARGET QXmppQt${QT_VERSION_MAJOR})
+set(QXMPPOMEMO_TARGET QXmppOmemoQt${QT_VERSION_MAJOR})
+
add_definitions(
-DQT_DISABLE_DEPRECATED_BEFORE=0x050F00
-DQURL_NO_CAST_FROM_STRING
@@ -82,30 +86,60 @@ endif()
include(CMakePackageConfigHelpers)
+# Normal QXmppQt5/6 package
configure_package_config_file(
QXmppConfig.cmake.in
- ${CMAKE_CURRENT_BINARY_DIR}/QXmppConfig.cmake
- INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/qxmpp"
+ ${CMAKE_CURRENT_BINARY_DIR}/${QXMPP_TARGET}Config.cmake
+ INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${QXMPP_TARGET}"
)
write_basic_package_version_file(
- ${CMAKE_CURRENT_BINARY_DIR}/QXmppConfigVersion.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/${QXMPP_TARGET}ConfigVersion.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)
install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/${QXMPP_TARGET}Config.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/${QXMPP_TARGET}ConfigVersion.cmake
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${QXMPP_TARGET}"
+ COMPONENT Devel
+)
+
+# QXmpp package with Qt version autodetect
+configure_package_config_file(
+ cmake/QXmppQtAutoConfig.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/QXmppConfig.cmake
+ INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/QXmpp"
+)
+
+install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/QXmppConfig.cmake
- ${CMAKE_CURRENT_BINARY_DIR}/QXmppConfigVersion.cmake
- DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/qxmpp"
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/QXmpp"
+ COMPONENT Devel
+)
+install(
+ FILES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/QXmppQtAutoConfigVersion.cmake
+ RENAME QXmppConfigVersion.cmake
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/QXmpp"
COMPONENT Devel
)
-# Generate qxmpp.pc
+# Generate QXmppQt5/6.pc
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/qxmpp.pc.in ${CMAKE_CURRENT_BINARY_DIR}/qxmpp.pc @ONLY)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/qxmpp.pc
+ RENAME QXmppQt${QT_VERSION_MAJOR}.pc
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
COMPONENT Devel
)
+# "qxmpp.pc" for backwards-compatibility
+if(QT_VERSION_MAJOR EQUAL 5)
+ install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/qxmpp.pc
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
+ COMPONENT Devel
+ )
+endif()
+