aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt85
1 files changed, 49 insertions, 36 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 89eb996a..15726240 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -88,39 +88,29 @@ get_filename_component(Qt_Prefix "${${Qt}_DIR}/../../../.." ABSOLUTE)
message(STATUS "Using Qt ${${Qt}_VERSION} at ${Qt_Prefix}")
if (${PROJECT_NAME}_ENABLE_E2EE)
- if ((NOT DEFINED USE_INTREE_LIBQOLM OR USE_INTREE_LIBQOLM)
- AND EXISTS ${PROJECT_SOURCE_DIR}/3rdparty/libQtOlm/lib/utils.h)
- add_subdirectory(3rdparty/libQtOlm)
- include_directories(3rdparty/libQtOlm)
- if (NOT DEFINED USE_INTREE_LIBQOLM)
- set (USE_INTREE_LIBQOLM 1)
- endif ()
- endif ()
- if (USE_INTREE_LIBQOLM)
- message( STATUS "Using in-tree libQtOlm")
- find_package(Git QUIET)
- if (GIT_FOUND)
- execute_process(COMMAND
- "${GIT_EXECUTABLE}" rev-parse -q HEAD
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/3rdparty/libQtOlm
- OUTPUT_VARIABLE QTOLM_GIT_SHA1
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- message( STATUS " Library git SHA1: ${QTOLM_GIT_SHA1}")
- endif (GIT_FOUND)
- else ()
- set(SAVED_CMAKE_INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR})
- set(CMAKE_INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR})
- find_package(QtOlm 3.0.1 REQUIRED)
- set_package_properties(QtOlm PROPERTIES
- DESCRIPTION "QtOlm is a Qt wrapper around libOlm"
- PURPOSE "libQtOlm is required to support end-to-end encryption. See also BUILDING.md"
- URL "https://gitlab.com/b0/libqtolm"
- )
- if (QtOlm_FOUND)
- message(STATUS "Using libQtOlm ${QtOlm_VERSION} at ${QtOlm_DIR}")
- endif()
- endif ()
-endif ()
+ find_package(${Qt} ${QtMinVersion} REQUIRED Sql)
+ find_package(Olm 3.1.3 REQUIRED)
+ set_package_properties(Olm PROPERTIES
+ DESCRIPTION "Implementation of the Olm and Megolm cryptographic ratchets"
+ URL "https://gitlab.matrix.org/matrix-org/olm"
+ TYPE REQUIRED
+ )
+ if (Olm_FOUND)
+ message(STATUS "Using libOlm ${Olm_VERSION} at ${Olm_DIR}")
+ endif()
+
+ find_package(OpenSSL 1.1.0 REQUIRED)
+ set_package_properties(OpenSSL PROPERTIES
+ DESCRIPTION "Open source SSL and TLS implementation and cryptographic library"
+ URL "https://www.openssl.org/"
+ TYPE REQUIRED
+ )
+ if (OpenSSL_FOUND)
+ message(STATUS "Using OpenSSL ${OpenSSL_VERSION} at ${OpenSSL_DIR}")
+ endif()
+ find_package(${Qt}Keychain REQUIRED)
+endif()
+
# Set up source files
list(APPEND lib_SRCS
@@ -145,7 +135,6 @@ list(APPEND lib_SRCS
lib/networksettings.h lib/networksettings.cpp
lib/converters.h lib/converters.cpp
lib/util.h lib/util.cpp
- lib/encryptionmanager.h lib/encryptionmanager.cpp
lib/eventitem.h lib/eventitem.cpp
lib/accountregistry.h lib/accountregistry.cpp
lib/mxcreply.h lib/mxcreply.cpp
@@ -175,12 +164,28 @@ list(APPEND lib_SRCS
lib/events/encryptedevent.h lib/events/encryptedevent.cpp
lib/events/roomkeyevent.h lib/events/roomkeyevent.cpp
lib/events/stickerevent.h lib/events/stickerevent.cpp
+ lib/events/keyverificationevent.h lib/events/keyverificationevent.cpp
+ lib/events/encryptedfile.h lib/events/encryptedfile.cpp
lib/jobs/requestdata.h lib/jobs/requestdata.cpp
lib/jobs/basejob.h lib/jobs/basejob.cpp
lib/jobs/syncjob.h lib/jobs/syncjob.cpp
lib/jobs/mediathumbnailjob.h lib/jobs/mediathumbnailjob.cpp
lib/jobs/downloadfilejob.h lib/jobs/downloadfilejob.cpp
)
+if (${PROJECT_NAME}_ENABLE_E2EE)
+ list(APPEND lib_SRCS
+ lib/database.h lib/database.cpp
+ lib/e2ee/qolmaccount.h lib/e2ee/qolmaccount.cpp
+ lib/e2ee/qolmsession.h lib/e2ee/qolmsession.cpp
+ lib/e2ee/qolminboundsession.h lib/e2ee/qolminboundsession.cpp
+ lib/e2ee/qolmoutboundsession.h lib/e2ee/qolmoutboundsession.cpp
+ lib/e2ee/qolmutils.h lib/e2ee/qolmutils.cpp
+ lib/e2ee/qolmutility.h lib/e2ee/qolmutility.cpp
+ lib/e2ee/qolmerrors.h lib/e2ee/qolmerrors.cpp
+ lib/e2ee/qolmsession.h lib/e2ee/qolmsession.cpp
+ lib/e2ee/qolmmessage.h lib/e2ee/qolmmessage.cpp
+ )
+endif()
# Configure API files generation
@@ -298,10 +303,18 @@ target_include_directories(${PROJECT_NAME} PUBLIC
$<INSTALL_INTERFACE:${${PROJECT_NAME}_INSTALL_INCLUDEDIR}>
)
if (${PROJECT_NAME}_ENABLE_E2EE)
- target_link_libraries(${PROJECT_NAME} QtOlm)
- set(FIND_DEPS "find_dependency(QtOlm)") # For QuotientConfig.cmake.in
+ target_link_libraries(${PROJECT_NAME} Olm::Olm
+ OpenSSL::Crypto
+ OpenSSL::SSL
+ ${Qt}::Sql
+ ${QTKEYCHAIN_LIBRARIES})
+ set(FIND_DEPS "find_dependency(Olm)
+ find_dependency(OpenSSL)
+ find_dependency(${Qt}Sql)") # For QuotientConfig.cmake.in
endif()
+
target_link_libraries(${PROJECT_NAME} ${Qt}::Core ${Qt}::Network ${Qt}::Gui)
+
if (Qt STREQUAL Qt5) # See #483
target_link_libraries(${PROJECT_NAME} ${Qt}::Multimedia)
endif()