diff --git a/CMakeLists.txt b/CMakeLists.txt
index 42c04cdd..6340fc3c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -23,6 +23,23 @@ HunterGate(
LOCAL
)
+macro(hunter_add_package_safe)
+ set(pkg_temp_backup_libdir "$ENV{PKG_CONFIG_LIBDIR}")
+ set(pkg_temp_backup_path "$ENV{PKG_CONFIG_PATH}")
+ hunter_add_package(${ARGV})
+ if("${pkg_temp_backup_path}" STREQUAL "")
+ unset(ENV{PKG_CONFIG_PATH})
+ else()
+ set(ENV{PKG_CONFIG_PATH} "${pkg_temp_backup_path}")
+ endif()
+ if("${pkg_temp_backup_libdir}" STREQUAL "")
+ unset(ENV{PKG_CONFIG_LIBDIR})
+ else()
+ set(ENV{PKG_CONFIG_LIBDIR} "${pkg_temp_backup_libdir}")
+ endif()
+ message("pkg_conf_path: '$ENV{PKG_CONFIG_PATH}', pkg_conf_libdir: '$ENV{PKG_CONFIG_LIBDIR}'")
+endmacro()
+
option(USE_BUNDLED_SPDLOG "Use the bundled version of spdlog." ${HUNTER_ENABLED})
option(USE_BUNDLED_OLM "Use the bundled version of libolm." ${HUNTER_ENABLED})
option(USE_BUNDLED_GTEST "Use the bundled version of Google Test." ${HUNTER_ENABLED})
@@ -120,10 +137,16 @@ endif()
#
## Need to repeat all libevent deps?!?
if (USE_BUNDLED_LIBEVENT)
- hunter_add_package(Libevent)
+ hunter_add_package_safe(Libevent)
find_package(Libevent CONFIG REQUIRED)
else()
find_package(PkgConfig REQUIRED)
+if (HUNTER_ENABLED)
+ message("pkg_conf_path: '$ENV{PKG_CONFIG_PATH}', pkg_conf_libdir: '$ENV{PKG_CONFIG_LIBDIR}'")
+ set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_LIBDIR}")
+ set(ENV{PKG_CONFIG_LIBDIR} "${pkg_temp_backup}")
+ message("pkg_conf_path: '$ENV{PKG_CONFIG_PATH}', pkg_conf_libdir: '$ENV{PKG_CONFIG_LIBDIR}'")
+endif()
pkg_check_modules(libevent_core REQUIRED IMPORTED_TARGET libevent_core)
if (WIN32)
pkg_check_modules(libevent_windows REQUIRED IMPORTED_TARGET libevent_windows)
@@ -135,16 +158,22 @@ endif()
# curl
if (USE_BUNDLED_LIBCURL)
- hunter_add_package(CURL)
+ hunter_add_package_safe(CURL)
find_package(CURL CONFIG REQUIRED)
else()
find_package(PkgConfig REQUIRED)
+if (HUNTER_ENABLED)
+ message("pkg_conf_path: '$ENV{PKG_CONFIG_PATH}', pkg_conf_libdir: '$ENV{PKG_CONFIG_LIBDIR}'")
+ set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_LIBDIR}")
+ set(ENV{PKG_CONFIG_LIBDIR} "${pkg_temp_backup}")
+ message("pkg_conf_path: '$ENV{PKG_CONFIG_PATH}', pkg_conf_libdir: '$ENV{PKG_CONFIG_LIBDIR}'")
+endif()
pkg_check_modules(libcurl REQUIRED IMPORTED_TARGET libcurl)
endif()
# spdlog
if(USE_BUNDLED_SPDLOG)
- hunter_add_package(spdlog)
+ hunter_add_package_safe(spdlog)
endif()
find_package(spdlog 1.0.0 CONFIG REQUIRED)
@@ -153,7 +182,7 @@ find_package(spdlog 1.0.0 CONFIG REQUIRED)
#
#include(LMDB)
if(USE_BUNDLED_LMDB)
- hunter_add_package(lmdb)
+ hunter_add_package_safe(lmdb)
find_package(liblmdb CONFIG REQUIRED)
target_include_directories(liblmdb::lmdb INTERFACE
@@ -170,6 +199,12 @@ find_package(Qt5QuickCompiler)
find_package(Qt5DBus)
if (USE_BUNDLED_QTKEYCHAIN)
+if (HUNTER_ENABLED)
+ message("pkg_conf_path: '$ENV{PKG_CONFIG_PATH}', pkg_conf_libdir: '$ENV{PKG_CONFIG_LIBDIR}'")
+ set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_LIBDIR}")
+ set(ENV{PKG_CONFIG_LIBDIR} "${pkg_temp_backup}")
+ message("pkg_conf_path: '$ENV{PKG_CONFIG_PATH}', pkg_conf_libdir: '$ENV{PKG_CONFIG_LIBDIR}'")
+endif()
include(FetchContent)
FetchContent_Declare(
qt5keychain
@@ -380,7 +415,7 @@ include(FeatureSummary)
if(USE_BUNDLED_OPENSSL)
- hunter_add_package(OpenSSL)
+ hunter_add_package_safe(OpenSSL)
endif()
find_package(OpenSSL 1.1.0 REQUIRED)
if(USE_BUNDLED_MTXCLIENT)
@@ -414,7 +449,7 @@ else()
)
endif()
if(USE_BUNDLED_SPDLOG)
- hunter_add_package(spdlog)
+ hunter_add_package_safe(spdlog)
endif()
find_package(spdlog 1.0.0 CONFIG REQUIRED)
@@ -437,7 +472,7 @@ else()
endif()
if(USE_BUNDLED_JSON)
- hunter_add_package(nlohmann_json)
+ hunter_add_package_safe(nlohmann_json)
endif()
find_package(nlohmann_json 3.2.0)
set_package_properties(nlohmann_json PROPERTIES
@@ -474,8 +509,15 @@ else()
add_library(lmdbxx::lmdbxx ALIAS lmdbxx)
endif()
+if (HUNTER_ENABLED)
+ message("pkg_conf_path: '$ENV{PKG_CONFIG_PATH}', pkg_conf_libdir: '$ENV{PKG_CONFIG_LIBDIR}'")
+ set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_LIBDIR}")
+ set(ENV{PKG_CONFIG_LIBDIR} "${pkg_temp_backup}")
+ unset(ENV{PKG_CONFIG_LIBDIR})
+ message("pkg_conf_path: '$ENV{PKG_CONFIG_PATH}', pkg_conf_libdir: '$ENV{PKG_CONFIG_LIBDIR}'")
+endif()
include(FindPkgConfig)
-pkg_check_modules(GSTREAMER IMPORTED_TARGET gstreamer-sdp-1.0>=1.18 gstreamer-webrtc-1.0>=1.18)
+pkg_check_modules(GSTREAMER NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH IMPORTED_TARGET gstreamer-sdp-1.0>=1.18 gstreamer-webrtc-1.0>=1.18)
if (TARGET PkgConfig::GSTREAMER)
add_feature_info(voip ON "GStreamer found. Call support is enabled automatically.")
pkg_check_modules(XCB IMPORTED_TARGET xcb xcb-ewmh)
@@ -700,6 +742,12 @@ elseif(coeurl_DIR)
target_link_libraries(nheko PUBLIC coeurl::coeurl)
else()
find_package(PkgConfig REQUIRED)
+if (HUNTER_ENABLED)
+ message("pkg_conf_path: '$ENV{PKG_CONFIG_PATH}', pkg_conf_libdir: '$ENV{PKG_CONFIG_LIBDIR}'")
+ set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_LIBDIR}")
+ set(ENV{PKG_CONFIG_LIBDIR} "${pkg_temp_backup}")
+ message("pkg_conf_path: '$ENV{PKG_CONFIG_PATH}', pkg_conf_libdir: '$ENV{PKG_CONFIG_LIBDIR}'")
+endif()
pkg_check_modules(coeurl REQUIRED IMPORTED_TARGET coeurl)
target_link_libraries(nheko PUBLIC PkgConfig::coeurl)
endif()
|