aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2023-03-19 01:48:29 +0100
committerLinus Jahn <lnj@kaidan.im>2023-04-07 15:58:12 +0200
commit7d1e74b5147f411d30f2d76420ba62737ec93ab9 (patch)
tree047c3770ffa30e539811fa13094117d0781a47dd /src
parent894299926df1c2bf20a1493e92295925a35eaf6b (diff)
downloadqxmpp-7d1e74b5147f411d30f2d76420ba62737ec93ab9.tar.gz
Support installing QXmpp with Qt 5 and Qt 6 in parallel
Closes #540.
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt35
-rw-r--r--src/omemo/CMakeLists.txt28
-rw-r--r--src/omemo/QXmppOmemoConfig.cmake.in4
3 files changed, 34 insertions, 33 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 54120b8a..e4b35429 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -271,28 +271,28 @@ set(SOURCE_FILES
)
if(BUILD_SHARED)
- add_library(qxmpp SHARED ${SOURCE_FILES})
+ add_library(${QXMPP_TARGET} SHARED ${SOURCE_FILES})
else()
- add_library(qxmpp STATIC ${SOURCE_FILES})
+ add_library(${QXMPP_TARGET} STATIC ${SOURCE_FILES})
endif()
-set_target_properties(qxmpp PROPERTIES
+set_target_properties(${QXMPP_TARGET} PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION ${SO_VERSION}
EXPORT_NAME QXmpp
)
-target_include_directories(qxmpp
+target_include_directories(${QXMPP_TARGET}
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/base>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/client>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/server>
- $<INSTALL_INTERFACE:include/qxmpp>
+ $<INSTALL_INTERFACE:include/${QXMPP_TARGET}>
PRIVATE
${CMAKE_CURRENT_BINARY_DIR}
)
-target_link_libraries(qxmpp
+target_link_libraries(${QXMPP_TARGET}
PUBLIC
Qt${QT_VERSION_MAJOR}::Core
Qt${QT_VERSION_MAJOR}::Network
@@ -311,21 +311,21 @@ if(WITH_GSTREAMER)
client/QXmppCallStream.h
)
- target_sources(qxmpp
+ target_sources(${QXMPP_TARGET}
PRIVATE
client/QXmppCall.cpp
client/QXmppCallManager.cpp
client/QXmppCallStream.cpp
)
- target_link_libraries(qxmpp
+ target_link_libraries(${QXMPP_TARGET}
PRIVATE
${GLIB2_LIBRARIES}
${GOBJECT_LIBRARIES}
${GSTREAMER_LIBRARY}
)
- target_include_directories(qxmpp
+ target_include_directories(${QXMPP_TARGET}
PRIVATE
${GLIB2_INCLUDE_DIR}
${GOBJECT_INCLUDE_DIR}
@@ -335,13 +335,13 @@ endif()
if(BUILD_OMEMO)
# required to be used in QXmppMessage
- target_sources(qxmpp PRIVATE base/QXmppOmemoDataBase.cpp)
+ target_sources(${QXMPP_TARGET} PRIVATE base/QXmppOmemoDataBase.cpp)
endif()
if(WITH_QCA)
- target_sources(qxmpp PRIVATE client/QXmppEncryptedFileSharingProvider.cpp client/QXmppFileEncryption.cpp client/QcaInitializer.cpp)
+ target_sources(${QXMPP_TARGET} PRIVATE client/QXmppEncryptedFileSharingProvider.cpp client/QXmppFileEncryption.cpp client/QcaInitializer.cpp)
set(INSTALL_HEADER_FILES ${INSTALL_HEADER_FILES} client/QXmppEncryptedFileSharingProvider.h)
- target_link_libraries(qxmpp PRIVATE qca-qt${QT_VERSION_MAJOR})
+ target_link_libraries(${QXMPP_TARGET} PRIVATE qca-qt${QT_VERSION_MAJOR})
endif()
# qxmpp_export.h generation
@@ -358,12 +358,13 @@ set(QXMPP_CUSTOM_EXPORT_CONTENT "
#define QXMPP_VERSION_PATCH ${PROJECT_VERSION_PATCH}
")
-generate_export_header(qxmpp
+generate_export_header(${QXMPP_TARGET}
+ BASE_NAME qxmpp
CUSTOM_CONTENT_FROM_VARIABLE QXMPP_CUSTOM_EXPORT_CONTENT
)
install(
- TARGETS qxmpp
+ TARGETS ${QXMPP_TARGET}
EXPORT QXmppTarget
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
@@ -372,20 +373,20 @@ install(
install(
EXPORT QXmppTarget
- DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/qxmpp"
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${QXMPP_TARGET}"
FILE QXmpp.cmake
NAMESPACE QXmpp::
COMPONENT Devel
)
export(
- TARGETS qxmpp
+ TARGETS ${QXMPP_TARGET}
FILE QXmpp.cmake
)
install(
FILES ${INSTALL_HEADER_FILES} ${CMAKE_CURRENT_BINARY_DIR}/qxmpp_export.h
- DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/qxmpp"
+ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${QXMPP_TARGET}"
)
# submodules
diff --git a/src/omemo/CMakeLists.txt b/src/omemo/CMakeLists.txt
index 89e1f06c..ce6ccafb 100644
--- a/src/omemo/CMakeLists.txt
+++ b/src/omemo/CMakeLists.txt
@@ -4,8 +4,8 @@
include(CMakePackageConfigHelpers)
-set(OMEMO_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/QXmppOmemo")
-set(OMEMO_HEADER_DIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}/qxmpp/omemo")
+set(OMEMO_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${QXMPPOMEMO_TARGET}")
+set(OMEMO_HEADER_DIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}/${QXMPP_TARGET}/Omemo")
set(OMEMO_INSTALL_HEADER_FILES
QXmppOmemoManager.h
QXmppOmemoMemoryStorage.h
@@ -20,17 +20,17 @@ set(OMEMO_SOURCE_FILES
QXmppOmemoStorage.cpp
)
-add_library(QXmppOmemo SHARED ${OMEMO_SOURCE_FILES})
+add_library(${QXMPPOMEMO_TARGET} SHARED ${OMEMO_SOURCE_FILES})
-target_link_libraries(QXmppOmemo
+target_link_libraries(${QXMPPOMEMO_TARGET}
PUBLIC
- qxmpp
+ ${QXMPP_TARGET}
Qt${QT_VERSION_MAJOR}::Core
PRIVATE
PkgConfig::OmemoC
qca-qt${QT_VERSION_MAJOR}
)
-target_include_directories(QXmppOmemo
+target_include_directories(${QXMPPOMEMO_TARGET}
PUBLIC
${OMEMO_HEADER_DIR}
PRIVATE
@@ -39,21 +39,21 @@ target_include_directories(QXmppOmemo
${PROJECT_BINARY_DIR}/src
)
-generate_export_header(QXmppOmemo)
+generate_export_header(${QXMPPOMEMO_TARGET} BASE_NAME qxmppomemo)
install(
FILES ${OMEMO_INSTALL_HEADER_FILES} ${CMAKE_CURRENT_BINARY_DIR}/qxmppomemo_export.h
DESTINATION ${OMEMO_HEADER_DIR}
)
-set_target_properties(QXmppOmemo PROPERTIES
+set_target_properties(${QXMPPOMEMO_TARGET} PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION ${SO_VERSION}
EXPORT_NAME Omemo
)
install(
- TARGETS QXmppOmemo
+ TARGETS ${QXMPPOMEMO_TARGET}
EXPORT QXmppOmemoTargets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
@@ -69,25 +69,25 @@ install(
)
export(
- TARGETS QXmppOmemo
+ TARGETS ${QXMPPOMEMO_TARGET}
FILE QXmppOmemo.cmake
)
configure_package_config_file(
QXmppOmemoConfig.cmake.in
- ${CMAKE_CURRENT_BINARY_DIR}/QXmppOmemoConfig.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/${QXMPPOMEMO_TARGET}Config.cmake
INSTALL_DESTINATION ${OMEMO_CMAKE_DIR}
)
write_basic_package_version_file(
- ${CMAKE_CURRENT_BINARY_DIR}/QXmppOmemoConfigVersion.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/${QXMPPOMEMO_TARGET}ConfigVersion.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)
install(
- FILES ${CMAKE_CURRENT_BINARY_DIR}/QXmppOmemoConfig.cmake
- ${CMAKE_CURRENT_BINARY_DIR}/QXmppOmemoConfigVersion.cmake
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/${QXMPPOMEMO_TARGET}Config.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/${QXMPPOMEMO_TARGET}ConfigVersion.cmake
DESTINATION ${OMEMO_CMAKE_DIR}
COMPONENT Devel
)
diff --git a/src/omemo/QXmppOmemoConfig.cmake.in b/src/omemo/QXmppOmemoConfig.cmake.in
index 5363c0f5..68596637 100644
--- a/src/omemo/QXmppOmemoConfig.cmake.in
+++ b/src/omemo/QXmppOmemoConfig.cmake.in
@@ -5,8 +5,8 @@
@PACKAGE_INIT@
include(CMakeFindDependencyMacro)
-find_dependency(QXmpp)
+find_dependency(QXmppQt@QT_VERSION_MAJOR@)
include("${CMAKE_CURRENT_LIST_DIR}/QXmppOmemo.cmake")
-check_required_components(QXmppOmemo)
+check_required_components(QXmppOmemoQt@QT_VERSION_MAJOR@)