Fix hunter messing with pkg-config

This commit is contained in:
Nicolas Werner 2021-11-18 02:56:32 +01:00
parent eb3ff097d5
commit 6f59f19003
No known key found for this signature in database
GPG Key ID: C8D75E610773F2D9
1 changed files with 56 additions and 8 deletions

View File

@ -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()