aboutsummaryrefslogtreecommitdiff
path: root/src/omemo/CMakeLists.txt
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-05-31 12:22:48 +0200
committerLinus Jahn <lnj@kaidan.im>2022-08-13 15:55:03 +0200
commitf0e0e1cd227c08ffd97aa42813a479b8c3ca6d23 (patch)
tree12ca6aefdef9195ee8937406db86e73cf1a5f820 /src/omemo/CMakeLists.txt
parent87df8a8dda385558d39639ce09e2717974264ab6 (diff)
downloadqxmpp-f0e0e1cd227c08ffd97aa42813a479b8c3ca6d23.tar.gz
Split up OMEMO into extra module
Diffstat (limited to 'src/omemo/CMakeLists.txt')
-rw-r--r--src/omemo/CMakeLists.txt91
1 files changed, 91 insertions, 0 deletions
diff --git a/src/omemo/CMakeLists.txt b/src/omemo/CMakeLists.txt
new file mode 100644
index 00000000..3c6e403e
--- /dev/null
+++ b/src/omemo/CMakeLists.txt
@@ -0,0 +1,91 @@
+# SPDX-FileCopyrightText: 2022 Linus Jahn <lnj@kaidan.im>
+#
+# SPDX-License-Identifier: CC0-1.0
+
+include(CMakePackageConfigHelpers)
+include(GenerateExportHeader)
+
+set(OMEMO_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/QXmppOmemo")
+set(OMEMO_HEADER_DIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}/qxmpp/omemo")
+set(OMEMO_INSTALL_HEADER_FILES
+ QXmppOmemoManager.h
+ QXmppOmemoMemoryStorage.h
+ QXmppOmemoStorage.h
+)
+set(OMEMO_SOURCE_FILES
+ OmemoCryptoProvider.cpp
+ QXmppOmemoData.cpp
+ QXmppOmemoManager.cpp
+ QXmppOmemoManager_p.cpp
+ QXmppOmemoMemoryStorage.cpp
+ QXmppOmemoStorage.cpp
+)
+
+add_library(QXmppOmemo SHARED ${OMEMO_SOURCE_FILES})
+
+target_link_libraries(QXmppOmemo
+ PUBLIC
+ qxmpp
+ Qt${QT_VERSION_MAJOR}::Core
+ PRIVATE
+ PkgConfig::OmemoC
+ qca-qt${QT_VERSION_MAJOR}
+)
+target_include_directories(QXmppOmemo
+ PUBLIC
+ ${OMEMO_HEADER_DIR}
+ PRIVATE
+ ${CMAKE_CURRENT_LIST_DIR}
+ ${CMAKE_CURRENT_BINARY_DIR}
+)
+
+generate_export_header(QXmppOmemo)
+
+install(
+ FILES ${OMEMO_INSTALL_HEADER_FILES} ${CMAKE_CURRENT_BINARY_DIR}/qxmppomemo_export.h
+ DESTINATION ${OMEMO_HEADER_DIR}
+)
+
+set_target_properties(QXmppOmemo PROPERTIES
+ VERSION ${PROJECT_VERSION}
+ SOVERSION ${SO_VERSION}
+ EXPORT_NAME Omemo
+)
+
+install(
+ TARGETS QXmppOmemo
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ EXPORT QXmppOmemoTargets
+)
+
+install(
+ EXPORT QXmppOmemoTargets
+ DESTINATION ${OMEMO_CMAKE_DIR}
+ FILE QXmppOmemo.cmake
+ NAMESPACE QXmpp::
+ COMPONENT Devel
+)
+
+export(
+ TARGETS QXmppOmemo
+ FILE QXmppOmemo.cmake
+)
+
+configure_package_config_file(
+ QXmppOmemoConfig.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/QXmppOmemoConfig.cmake
+ INSTALL_DESTINATION ${OMEMO_CMAKE_DIR}
+)
+
+write_basic_package_version_file(
+ ${CMAKE_CURRENT_BINARY_DIR}/QXmppOmemoConfigVersion.cmake
+ VERSION ${PROJECT_VERSION}
+ COMPATIBILITY SameMajorVersion
+)
+
+install(
+ FILES ${CMAKE_CURRENT_BINARY_DIR}/QXmppOmemoConfig.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/QXmppOmemoConfigVersion.cmake
+ DESTINATION ${OMEMO_CMAKE_DIR}
+ COMPONENT Devel
+)