aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorAlexey Andreyev <aa13q@ya.ru>2021-01-28 23:51:56 +0300
committerTobias Fella <fella@posteo.de>2021-12-01 21:34:52 +0100
commitd72f220e3e3a3b243fdafd93d1405f8207dc516a (patch)
treef4306b6397e39d6842a29f9a31fe5c858be8a4af /CMakeLists.txt
parent9f71b2a79fba7c5d5ce09ebfdd482c8c470203d9 (diff)
downloadlibquotient-d72f220e3e3a3b243fdafd93d1405f8207dc516a.tar.gz
libquotient-d72f220e3e3a3b243fdafd93d1405f8207dc516a.zip
E2EE: initial port to internal olm wrapper
Remove qtolm git module. Update CMakeLists.txt. Rename olm to crypto subdir to prevent disambiguation. Rename internal files accordingly. Comment out not ported E2EE API usage.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt69
1 files changed, 23 insertions, 46 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 40767573..8f62af68 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -88,46 +88,26 @@ get_filename_component(Qt_Prefix "${${Qt}_DIR}/../../../.." ABSOLUTE)
message(STATUS "Using Qt ${${Qt}_VERSION} at ${Qt_Prefix}")
if (${PROJECT_NAME}_ENABLE_E2EE)
+ find_package(Olm 3.2.1 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 ((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 ()
+ if (OpenSSL_FOUND)
+ message(STATUS "Using OpenSSL ${OpenSSL_VERSION} at ${OpenSSL_DIR}")
+ endif()
+endif()
# Set up source files
list(APPEND lib_SRCS
@@ -182,10 +162,10 @@ list(APPEND lib_SRCS
lib/crypto/qolmsession.cpp
lib/crypto/qolminboundsession.cpp
lib/crypto/qolmoutboundsession.cpp
- lib/crypto/utils.cpp
- lib/crypto/errors.cpp
- lib/crypto/session.cpp
- lib/crypto/message.cpp
+ lib/crypto/qolmutils.cpp
+ lib/crypto/qolmerrors.cpp
+ lib/crypto/qolmsession.cpp
+ lib/crypto/qolmmessage.cpp
)
# Configure API files generation
@@ -332,16 +312,13 @@ target_include_directories(${PROJECT_NAME} PUBLIC
$<INSTALL_INTERFACE:${${PROJECT_NAME}_INSTALL_INCLUDEDIR}>
)
if (${PROJECT_NAME}_ENABLE_E2EE)
- target_link_libraries(${PROJECT_NAME} Olm::Olm QtOlm)
- set(FIND_DEPS "find_dependency(QtOlm)") # For QuotientConfig.cmake.in
+ target_link_libraries(${PROJECT_NAME} Olm::Olm
+ OpenSSL::Crypto
+ OpenSSL::SSL)
+ set(FIND_DEPS "find_dependency(Olm OpenSSL)") # For QuotientConfig.cmake.in
endif()
-target_link_libraries(${PROJECT_NAME}
- ${Qt}::Core
- ${Qt}::Network
- ${Qt}::Gui
- OpenSSL::Crypto
- OpenSSL::SSL)
+target_link_libraries(${PROJECT_NAME} ${Qt}::Core ${Qt}::Network ${Qt}::Gui)
if (Qt STREQUAL Qt5) # See #483
target_link_libraries(${PROJECT_NAME} ${Qt}::Multimedia)