Move dependencies above mtxclient in CMake
1 files changed, 41 insertions, 31 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9444a661..07d0c775 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -179,6 +179,32 @@ if(USE_BUNDLED_SPDLOG)
endif()
find_package(spdlog 1.0.0 CONFIG REQUIRED)
+if(USE_BUNDLED_COEURL)
+ include(FetchContent)
+ FetchContent_Declare(
+ coeurl
+ GIT_REPOSITORY https://nheko.im/Nheko-Reborn/coeurl.git
+ GIT_TAG v0.1.2
+ )
+ FetchContent_MakeAvailable(coeurl)
+ set(COEURL_TARGET_NAME coeurl::coeurl)
+else()
+ # FindPkgConfig sets this as a cache variable, which breaks find_package
+ if(DEFINED coeurl_FOUND)
+ unset(coeurl_FOUND CACHE)
+ endif()
+ find_package(coeurl 0.1.1 CONFIG)
+ if (coeurl_FOUND)
+ set(COEURL_TARGET_NAME coeurl::coeurl)
+ endif()
+endif()
+
+if(NOT COEURL_TARGET_NAME)
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(coeurl REQUIRED IMPORTED_TARGET coeurl>=0.1.1)
+ set(COEURL_TARGET_NAME PkgConfig::coeurl)
+endif()
+
#
# LMDB
#
@@ -398,19 +424,6 @@ if(USE_BUNDLED_OPENSSL)
hunter_add_package_safe(OpenSSL)
endif()
find_package(OpenSSL 1.1.0 REQUIRED)
-if(USE_BUNDLED_MTXCLIENT)
- include(FetchContent)
- FetchContent_Declare(
- MatrixClient
- GIT_REPOSITORY https://github.com/Nheko-Reborn/mtxclient.git
- GIT_TAG 754800d226f71864d8b6925e47542d509333e998
- )
- set(BUILD_LIB_EXAMPLES OFF CACHE INTERNAL "")
- set(BUILD_LIB_TESTS OFF CACHE INTERNAL "")
- FetchContent_MakeAvailable(MatrixClient)
-else()
- find_package(MatrixClient 0.6.2 REQUIRED)
-endif()
if(USE_BUNDLED_OLM)
include(FetchContent)
FetchContent_Declare(
@@ -489,6 +502,20 @@ else()
add_library(lmdbxx::lmdbxx ALIAS lmdbxx)
endif()
+if(USE_BUNDLED_MTXCLIENT)
+ include(FetchContent)
+ FetchContent_Declare(
+ MatrixClient
+ GIT_REPOSITORY https://github.com/Nheko-Reborn/mtxclient.git
+ GIT_TAG 754800d226f71864d8b6925e47542d509333e998
+ )
+ set(BUILD_LIB_EXAMPLES OFF CACHE INTERNAL "")
+ set(BUILD_LIB_TESTS OFF CACHE INTERNAL "")
+ FetchContent_MakeAvailable(MatrixClient)
+else()
+ find_package(MatrixClient 0.6.2 REQUIRED)
+endif()
+
if (VOIP)
include(FindPkgConfig)
pkg_check_modules(GSTREAMER REQUIRED IMPORTED_TARGET gstreamer-sdp-1.0>=1.18 gstreamer-webrtc-1.0>=1.18)
@@ -663,6 +690,7 @@ if (USE_BUNDLED_QTKEYCHAIN)
endif()
target_link_libraries(nheko PRIVATE
+ ${COEURL_TARGET_NAME}
MatrixClient::MatrixClient
cmark::cmark
spdlog::spdlog
@@ -696,24 +724,6 @@ if (TARGET PkgConfig::GSTREAMER)
endif()
endif()
-if(USE_BUNDLED_COEURL)
- include(FetchContent)
- FetchContent_Declare(
- coeurl
- GIT_REPOSITORY https://nheko.im/Nheko-Reborn/coeurl.git
- GIT_TAG v0.1.2
- )
- FetchContent_MakeAvailable(coeurl)
- target_link_libraries(nheko PUBLIC coeurl::coeurl)
-elseif(coeurl_DIR)
- find_package(coeurl CONFIG REQUIRED)
- target_link_libraries(nheko PUBLIC coeurl::coeurl)
-else()
- find_package(PkgConfig REQUIRED)
- pkg_check_modules(coeurl REQUIRED IMPORTED_TARGET coeurl>=0.1.1)
- target_link_libraries(nheko PUBLIC PkgConfig::coeurl)
-endif()
-
if(MSVC)
target_link_libraries(nheko PRIVATE ntdll)
endif()
|