diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt deleted file mode 100644 index d82e09f9..00000000 --- a/deps/CMakeLists.txt +++ /dev/null @@ -1,125 +0,0 @@ -cmake_minimum_required(VERSION 3.11) -project(NHEKO_DEPS) - -# Point CMake at any custom modules we may ship -list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") - -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Release) -endif() - -set(DEPS_INSTALL_DIR "${CMAKE_BINARY_DIR}/usr" - CACHE PATH "Dependencies install directory.") -set(DEPS_BIN_DIR "${DEPS_INSTALL_DIR}/bin" - CACHE PATH "Dependencies binary install directory.") -set(DEPS_LIB_DIR "${DEPS_INSTALL_DIR}/lib" - CACHE PATH "Dependencies library install directory.") -set(DEPS_BUILD_DIR "${CMAKE_BINARY_DIR}/build" - CACHE PATH "Dependencies build directory.") -set(DEPS_DOWNLOAD_DIR "${DEPS_BUILD_DIR}/downloads" - CACHE PATH "Dependencies download directory.") - -option(USE_BUNDLED "Use bundled dependencies." ON) - -option(USE_BUNDLED_BOOST "Use the bundled version of Boost." ${USE_BUNDLED}) -option(USE_BUNDLED_CMARK "Use the bundled version of cmark." ${USE_BUNDLED}) -option(USE_BUNDLED_SPDLOG "Use the bundled version of spdlog." ${USE_BUNDLED}) -option(USE_BUNDLED_OLM "Use the bundled version of libolm." ${USE_BUNDLED}) -option(USE_BUNDLED_TWEENY "Use the bundled version of Tweeny." ${USE_BUNDLED}) -option(USE_BUNDLED_LMDBXX "Use the bundled version of lmdbxx." ${USE_BUNDLED}) -option(USE_BUNDLED_MATRIX_CLIENT "Use the bundled version of mtxclient." - ${USE_BUNDLED}) -option(USE_BUNDLED_JSON "Use the bundled version of nlohmann json." ${USE_BUNDLED}) -option(MTX_STATIC "Compile / link bundled mtx client statically" OFF) - -if(USE_BUNDLED_BOOST) - # bundled boost is 1.70, which requires CMake 3.15 or greater. - cmake_minimum_required(VERSION 3.15) -endif() - -include(ExternalProject) - -set(BOOST_URL - https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.bz2) -set(BOOST_SHA256 - 430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778) - -set( - MTXCLIENT_URL - https://github.com/Nheko-Reborn/mtxclient/archive/84c6778cc367bca79755e73e77b2cc69950375b2.zip - ) -set(MTXCLIENT_HASH - 009fc9628cbdb94694eff3bba3fe54415e432385200c886bb1c1182bcf290c0a) -set( - TWEENY_URL - https://github.com/mobius3/tweeny/archive/b94ce07cfb02a0eb8ac8aaf66137dabdaea857cf.tar.gz - ) -set(TWEENY_HASH - 9a632b9da84823fae002ad5d9ba02c8d77c0a3810479974c6b637c5504165475) -set( - LMDBXX_HEADER_URL - https://raw.githubusercontent.com/bendiken/lmdbxx/0b43ca87d8cfabba392dfe884eb1edb83874de02/lmdb%2B%2B.h - ) -set(LMDBXX_HASH - c57b501a4e8fa1187fa7fd348da415c7685a50a7cb25b17b3f257b9e9426f73d) - -set(OLM_URL https://gitlab.matrix.org/matrix-org/olm.git) -set(OLM_TAG 4065c8e11a33ba41133a086ed3de4da94dcb6bae) - -set(CMARK_URL https://github.com/commonmark/cmark/archive/0.29.0.tar.gz) -set(CMARK_HASH 2558ace3cbeff85610de3bda32858f722b359acdadf0c4691851865bb84924a6) - -set(SPDLOG_URL https://github.com/gabime/spdlog/archive/v1.1.0.tar.gz) -set(SPDLOG_HASH - 3dbcbfd8c07e25f5e0d662b194d3a7772ef214358c49ada23c044c4747ce8b19) - -set(JSON_URL - https://github.com/nlohmann/json.git) -set(JSON_TAG - v3.2.0) - -if(USE_BUNDLED_JSON) - include(Json) -endif() - -if(USE_BUNDLED_BOOST) - include(Boost) -endif() - -if(USE_BUNDLED_SPDLOG) - include(SpdLog) -endif() - -if(USE_BUNDLED_OLM) - include(Olm) -endif() - -if(USE_BUNDLED_CMARK) - include(cmark) -endif() - -if(USE_BUNDLED_TWEENY) - include(Tweeny) -endif() - -if(USE_BUNDLED_LMDBXX) - file(DOWNLOAD ${LMDBXX_HEADER_URL} ${DEPS_INSTALL_DIR}/include/lmdb++.h - EXPECTED_HASH SHA256=${LMDBXX_HASH}) -endif() - -if(WIN32) - if("${TARGET_ARCH}" STREQUAL "X86_64") - set(TARGET_ARCH x64) - elseif(TARGET_ARCH STREQUAL "X86") - set(TARGET_ARCH ia32) - endif() -endif() - -add_custom_target(third-party ALL - COMMAND ${CMAKE_COMMAND} -E touch .third-party - DEPENDS ${THIRD_PARTY_DEPS}) - -if(USE_BUNDLED_MATRIX_CLIENT) - include(MatrixClient) - add_dependencies(MatrixClient third-party) -endif() diff --git a/deps/cmake/Boost.cmake b/deps/cmake/Boost.cmake deleted file mode 100644 index 5d11fd93..00000000 --- a/deps/cmake/Boost.cmake +++ /dev/null @@ -1,28 +0,0 @@ -if(WIN32) - message(STATUS "Building Boost in Windows is not supported (skipping)") - return() -endif() - -include(BoostToolsetId) -set(BOOST_TOOLSET "gcc") -Boost_Get_ToolsetId(BOOST_TOOLSET) - -ExternalProject_Add( - Boost - - URL ${BOOST_URL} - URL_HASH SHA256=${BOOST_SHA256} - DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/boost - DOWNLOAD_NO_PROGRESS 0 - - BUILD_IN_SOURCE 1 - SOURCE_DIR ${DEPS_BUILD_DIR}/boost - CONFIGURE_COMMAND ${DEPS_BUILD_DIR}/boost/bootstrap.sh - --with-libraries=random,thread,system,iostreams,atomic,chrono,date_time,regex - --prefix=${DEPS_INSTALL_DIR} - --with-toolset=${BOOST_TOOLSET} - BUILD_COMMAND ${DEPS_BUILD_DIR}/boost/b2 -d0 cxxstd=14 variant=release link=shared runtime-link=shared threading=multi --layout=system - INSTALL_COMMAND ${DEPS_BUILD_DIR}/boost/b2 -d0 install -) - -list(APPEND THIRD_PARTY_DEPS Boost) diff --git a/deps/cmake/BoostToolsetId.cmake b/deps/cmake/BoostToolsetId.cmake deleted file mode 100644 index f6c231a5..00000000 --- a/deps/cmake/BoostToolsetId.cmake +++ /dev/null @@ -1,35 +0,0 @@ -# - Translate CMake compilers to the Boost.Build toolset equivalents -# To build Boost reliably when a non-system compiler may be used, we -# need to both specify the toolset when running bootstrap.sh *and* in -# the user-config.jam file. -# -# This module provides the following functions to help translate between -# the systems: -# -# function Boost_Get_ToolsetId() -# Set var equal to Boost's name for the CXX toolchain picked -# up by CMake. Only supports GNU and Clang families at present. -# Intel support is provisional -# -# downloaded from https://github.com/drbenmorgan/BoostBuilder/blob/master/BoostToolsetId.cmake - -function(Boost_Get_ToolsetId _var) - set(BOOST_TOOLSET) - - if(CMAKE_CXX_COMPILER_ID MATCHES "GNU") - if(APPLE) - set(BOOST_TOOLSET "darwin") - else() - set(BOOST_TOOLSET "gcc") - endif() - elseif(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang") - set(BOOST_TOOLSET "clang") - elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel") - set(BOOST_TOOLSET "intel") - elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") - set(BOOST_TOOLSET "msvc") - endif() - - set(${_var} ${BOOST_TOOLSET} PARENT_SCOPE) -endfunction() - diff --git a/deps/cmake/Json.cmake b/deps/cmake/Json.cmake deleted file mode 100644 index c5e66cea..00000000 --- a/deps/cmake/Json.cmake +++ /dev/null @@ -1,19 +0,0 @@ -ExternalProject_Add( - Json - - GIT_REPOSITORY ${JSON_URL} - GIT_TAG ${JSON_TAG} - - BUILD_IN_SOURCE 1 - SOURCE_DIR ${DEPS_BUILD_DIR}/json - - CONFIGURE_COMMAND ${CMAKE_COMMAND} - -DJSON_BuildTests=OFF - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} - - BUILD_COMMAND ${CMAKE_COMMAND} --build ${DEPS_BUILD_DIR}/json - INSTALL_COMMAND ${CMAKE_COMMAND} --build ${DEPS_BUILD_DIR}/json --target install -) - -list(APPEND THIRD_PARTY_DEPS Json) diff --git a/deps/cmake/MatrixClient.cmake b/deps/cmake/MatrixClient.cmake deleted file mode 100644 index 44992c0b..00000000 --- a/deps/cmake/MatrixClient.cmake +++ /dev/null @@ -1,43 +0,0 @@ -set(PLATFORM_FLAGS "") - -if(MSVC) - set(PLATFORM_FLAGS "-DCMAKE_GENERATOR_PLATFORM=x64") -endif() - -if(APPLE) - set(PLATFORM_FLAGS "-DOPENSSL_ROOT_DIR=/usr/local/opt/openssl") -endif() - -# Force to build with the bundled version of Boost. This is necessary because -# if an outdated version of Boost is installed, then CMake will grab that -# instead of the bundled version of Boost, like we wanted. -set(BOOST_BUNDLE_ROOT "-DBOOST_ROOT=${DEPS_BUILD_DIR}/boost") - -set (MTX_SHARED ON) - -if (MTX_STATIC) - set (MTX_SHARED OFF) -endif() - -ExternalProject_Add( - MatrixClient - - URL ${MTXCLIENT_URL} - URL_HASH SHA256=${MTXCLIENT_HASH} - - BUILD_IN_SOURCE 1 - SOURCE_DIR ${DEPS_BUILD_DIR}/mtxclient - CONFIGURE_COMMAND ${CMAKE_COMMAND} - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - -DCMAKE_BUILD_TYPE=Release - -DBUILD_LIB_TESTS=OFF - -DBUILD_LIB_EXAMPLES=OFF - -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} - ${BOOST_BUNDLE_ROOT} - -DBUILD_SHARED_LIBS=${MTX_SHARED} - ${PLATFORM_FLAGS} - ${DEPS_BUILD_DIR}/mtxclient - BUILD_COMMAND - ${CMAKE_COMMAND} --build ${DEPS_BUILD_DIR}/mtxclient --config Release) - -list(APPEND THIRD_PARTY_DEPS MatrixClient) diff --git a/deps/cmake/Olm.cmake b/deps/cmake/Olm.cmake deleted file mode 100644 index a5b8be76..00000000 --- a/deps/cmake/Olm.cmake +++ /dev/null @@ -1,34 +0,0 @@ -set(WINDOWS_FLAGS "") - -if(MSVC) - set(WINDOWS_FLAGS "-DCMAKE_GENERATOR_PLATFORM=x64") -endif() - -ExternalProject_Add( - Olm - - GIT_REPOSITORY ${OLM_URL} - GIT_TAG ${OLM_TAG} - - BUILD_IN_SOURCE 1 - SOURCE_DIR ${DEPS_BUILD_DIR}/olm - CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/OlmCMakeLists.txt - ${DEPS_BUILD_DIR}/olm/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/OlmConfig.cmake.in - ${DEPS_BUILD_DIR}/olm/cmake/OlmConfig.cmake.in - COMMAND ${CMAKE_COMMAND} - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - -DCMAKE_BUILD_TYPE=Release - ${DEPS_BUILD_DIR}/olm - ${WINDOWS_FLAGS} - BUILD_COMMAND ${CMAKE_COMMAND} - --build ${DEPS_BUILD_DIR}/olm - --config Release - INSTALL_COMMAND ${CMAKE_COMMAND} - --build ${DEPS_BUILD_DIR}/olm - --config Release - --target install) - -list(APPEND THIRD_PARTY_DEPS Olm) diff --git a/deps/cmake/OlmCMakeLists.txt b/deps/cmake/OlmCMakeLists.txt deleted file mode 100644 index 529cbb92..00000000 --- a/deps/cmake/OlmCMakeLists.txt +++ /dev/null @@ -1,107 +0,0 @@ -cmake_minimum_required(VERSION 3.1) - -project(olm VERSION 2.2.2 LANGUAGES CXX C) - -add_definitions(-DOLMLIB_VERSION_MAJOR=${PROJECT_VERSION_MAJOR}) -add_definitions(-DOLMLIB_VERSION_MINOR=${PROJECT_VERSION_MINOR}) -add_definitions(-DOLMLIB_VERSION_PATCH=${PROJECT_VERSION_PATCH}) - -set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_C_STANDARD 99) -set(CMAKE_C_STANDARD_REQUIRED ON) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Release) -endif() - -add_library(olm - src/account.cpp - src/base64.cpp - src/cipher.cpp - src/crypto.cpp - src/memory.cpp - src/message.cpp - src/pickle.cpp - src/ratchet.cpp - src/session.cpp - src/utility.cpp - - src/ed25519.c - src/error.c - src/inbound_group_session.c - src/megolm.c - src/olm.cpp - src/outbound_group_session.c - src/pickle_encoding.c - - lib/crypto-algorithms/aes.c - lib/crypto-algorithms/sha256.c - lib/curve25519-donna/curve25519-donna.c) -add_library(Olm::Olm ALIAS olm) - -target_include_directories(olm - PUBLIC - $ - $ - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/lib) - -set_target_properties(olm PROPERTIES - SOVERSION ${PROJECT_VERSION_MAJOR} - VERSION ${PROJECT_VERSION}) - -set_target_properties(olm PROPERTIES - ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR} - LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR} - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) - -# -# Installation -# -include(GNUInstallDirs) -set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/Olm) -install(TARGETS olm - EXPORT olm-targets - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - -# The exported target will be named Olm. -set_target_properties(olm PROPERTIES EXPORT_NAME Olm) -install(FILES - ${CMAKE_SOURCE_DIR}/include/olm/olm.h - ${CMAKE_SOURCE_DIR}/include/olm/outbound_group_session.h - ${CMAKE_SOURCE_DIR}/include/olm/inbound_group_session.h - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/olm) - -# Export the targets to a script. -install(EXPORT olm-targets - FILE OlmTargets.cmake - NAMESPACE Olm:: - DESTINATION ${INSTALL_CONFIGDIR}) - -# Create a ConfigVersion.cmake file. -include(CMakePackageConfigHelpers) -write_basic_package_version_file( - ${CMAKE_CURRENT_BINARY_DIR}/OlmConfigVersion.cmake - VERSION ${PROJECT_VERSION} - COMPATIBILITY SameMajorVersion) - -configure_package_config_file( - ${CMAKE_CURRENT_LIST_DIR}/cmake/OlmConfig.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/OlmConfig.cmake - INSTALL_DESTINATION ${INSTALL_CONFIGDIR}) - -#Install the config & configversion. -install(FILES - ${CMAKE_CURRENT_BINARY_DIR}/OlmConfig.cmake - ${CMAKE_CURRENT_BINARY_DIR}/OlmConfigVersion.cmake - DESTINATION ${INSTALL_CONFIGDIR}) - -# Register package in user's package registry -export(EXPORT olm-targets - FILE ${CMAKE_CURRENT_BINARY_DIR}/OlmTargets.cmake - NAMESPACE Olm::) -export(PACKAGE Olm) diff --git a/deps/cmake/OlmConfig.cmake.in b/deps/cmake/OlmConfig.cmake.in deleted file mode 100644 index b670fe85..00000000 --- a/deps/cmake/OlmConfig.cmake.in +++ /dev/null @@ -1,11 +0,0 @@ -get_filename_component(Olm_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) -include(CMakeFindDependencyMacro) - -list(APPEND CMAKE_MODULE_PATH ${Olm_CMAKE_DIR}) -list(REMOVE_AT CMAKE_MODULE_PATH -1) - -if(NOT TARGET Olm::Olm) - include("${Olm_CMAKE_DIR}/OlmTargets.cmake") -endif() - -set(Olm_LIBRARIES Olm::Olm) diff --git a/deps/cmake/SpdLog.cmake b/deps/cmake/SpdLog.cmake deleted file mode 100644 index 27109b66..00000000 --- a/deps/cmake/SpdLog.cmake +++ /dev/null @@ -1,23 +0,0 @@ -set(WINDOWS_FLAGS "") - -if(MSVC) - set(WINDOWS_FLAGS "-DCMAKE_GENERATOR_PLATFORM=x64") -endif() - -ExternalProject_Add( - SpdLog - - URL ${SPDLOG_URL} - URL_HASH SHA256=${SPDLOG_HASH} - - BUILD_IN_SOURCE 1 - SOURCE_DIR ${DEPS_BUILD_DIR}/spdlog - CONFIGURE_COMMAND ${CMAKE_COMMAND} - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - -DSPDLOG_BUILD_EXAMPLES=0 - -DSPDLOG_BUILD_BENCH=0 - -DSPDLOG_BUILD_TESTING=0 - ${DEPS_BUILD_DIR}/spdlog - ${WINDOWS_FLAGS}) - -list(APPEND THIRD_PARTY_DEPS SpdLog) diff --git a/deps/cmake/Tweeny.cmake b/deps/cmake/Tweeny.cmake deleted file mode 100644 index 5a4303f9..00000000 --- a/deps/cmake/Tweeny.cmake +++ /dev/null @@ -1,22 +0,0 @@ -set(WINDOWS_FLAGS "") - -if(MSVC) - set(WINDOWS_FLAGS "-DCMAKE_GENERATOR_PLATFORM=x64") -endif() - -ExternalProject_Add( - Tweeny - - URL ${TWEENY_URL} - URL_HASH SHA256=${TWEENY_HASH} - - BUILD_IN_SOURCE 1 - SOURCE_DIR ${DEPS_BUILD_DIR}/tweeny - CONFIGURE_COMMAND ${CMAKE_COMMAND} - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - -DTWEENY_BUILD_EXAMPLES=OFF - -DTWEENY_BUILD_DOCUMENTATION=OFF - ${DEPS_BUILD_DIR}/tweeny - ${WINDOWS_FLAGS}) - -list(APPEND THIRD_PARTY_DEPS Tweeny) diff --git a/deps/cmake/cmark.cmake b/deps/cmake/cmark.cmake deleted file mode 100644 index e0d45e88..00000000 --- a/deps/cmake/cmark.cmake +++ /dev/null @@ -1,21 +0,0 @@ -set(WINDOWS_FLAGS "") - -if(MSVC) - set(WINDOWS_FLAGS "-DCMAKE_GENERATOR_PLATFORM=x64") -endif() - -ExternalProject_Add( - cmark - - URL ${CMARK_URL} - URL_HASH SHA256=${CMARK_HASH} - - BUILD_IN_SOURCE 0 - SOURCE_DIR ${DEPS_BUILD_DIR}/cmark - CONFIGURE_COMMAND ${CMAKE_COMMAND} - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - -DCMARK_TESTS=OFF - ${DEPS_BUILD_DIR}/cmark - ${WINDOWS_FLAGS}) - -list(APPEND THIRD_PARTY_DEPS cmark)