mirror of
https://github.com/libssh2/libssh2.git
synced 2025-07-29 13:01:14 +03:00
cmake: misc improvements, add LIBSSH2_USE_PKGCONFIG
option
- show platform flags (via curl). - add `LIBSSH2_USE_PKGCONFIG` option to control whether to use `pkg-config` to find dependencies. - set `.pc` names withing the Find modules. - add `mbedcrypto` to `libssh2.pc` only when detected via `pkg-config`. Workaround for older mbedtls versions and non-CMake mbedTLS builds (as of mbedTLS 3.6.2) that don't emit an `mbedcrypto.pc` file. - set header paths relative to the project root (tidy-up). - use `-isystem` for crypto backend and zlib header paths. To match autotools. - sync header path order with autotools. - rename local variables to underscore-lowercase. - minor tidy-ups. Cherry-picked from #1484 Closes #1525
This commit is contained in:
@ -15,20 +15,25 @@
|
||||
# - `MBEDTLS_INCLUDE_DIRS`: The mbedTLS include directories.
|
||||
# - `MBEDTLS_LIBRARIES`: The mbedTLS library names.
|
||||
# - `MBEDTLS_LIBRARY_DIRS`: The mbedTLS library directories.
|
||||
# - `MBEDTLS_PC_REQUIRES`: The mbedTLS pkg-config packages.
|
||||
# - `MBEDTLS_CFLAGS`: Required compiler flags.
|
||||
# - `MBEDTLS_VERSION`: Version of mbedTLS.
|
||||
|
||||
if((UNIX OR VCPKG_TOOLCHAIN OR (MINGW AND NOT CMAKE_CROSSCOMPILING)) AND
|
||||
set(MBEDTLS_PC_REQUIRES "mbedcrypto")
|
||||
|
||||
if(LIBSSH2_USE_PKGCONFIG AND
|
||||
NOT DEFINED MBEDTLS_INCLUDE_DIR AND
|
||||
NOT DEFINED MBEDCRYPTO_LIBRARY)
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_check_modules(MBEDTLS "mbedcrypto")
|
||||
pkg_check_modules(MBEDTLS ${MBEDTLS_PC_REQUIRES})
|
||||
endif()
|
||||
|
||||
if(MBEDTLS_FOUND)
|
||||
string(REPLACE ";" " " MBEDTLS_CFLAGS "${MBEDTLS_CFLAGS}")
|
||||
message(STATUS "Found MbedTLS (via pkg-config): ${MBEDTLS_INCLUDE_DIRS} (found version \"${MBEDTLS_VERSION}\")")
|
||||
else()
|
||||
set(MBEDTLS_PC_REQUIRES "")
|
||||
|
||||
find_path(MBEDTLS_INCLUDE_DIR NAMES "mbedtls/version.h")
|
||||
find_library(MBEDCRYPTO_LIBRARY NAMES "mbedcrypto" "libmbedcrypto")
|
||||
|
||||
|
Reference in New Issue
Block a user