From 24d52daf49e8da92bf21eeb9f3687c84993ba2b6 Mon Sep 17 00:00:00 2001 From: Denis Thulin Date: Thu, 7 Nov 2019 15:39:52 +0100 Subject: FindOpenSSL: Lookup all pkg-config directories When using a custom sysroot to build things using pkg-config, some of the output variables feature the sysroot while others do not: ```console $ export PKG_CONFIG_SYSROOT_DIR=/path/to/sysroot $ export PKG_CONFIG_LIBDIR=/path/to/sysroot/usr/lib/pkgconfig $ pkg-config --cflags-only-I openssl -I/path/to/sysroot/usr/include/ $ pkg-config --variable=includedir openssl /usr/include $ pkg-config --libs-only-L openssl -L/path/to/sysroot/usr/lib $ pkg-config --variable=libdir openssl /usr/lib ``` When using `pkg_check_modules`, it's pretty much the same: ```cmake pkg_check_modules(_OPENSSL QUIET openssl) _OPENSSL_INCLUDE_DIRS == /path/to/sysroot/usr/include/ _OPENSSL_INCLUDEDIR == /usr/include _OPENSSL_LIBRARY_DIRS == -L/path/to/sysroot/usr/lib _OPENSSL_LIBDIR == /usr/lib ``` However, FindOpenSSL only searches for headers in `INCLUDEDIR` and libraries in `LIBDIR` instead of searching `INCLUDE_DIRS` and `LIBRARY_DIRS` as well. This fixes that behaviour. Fixes: #16885 Signed-off-by: Denis Thulin --- Modules/FindOpenSSL.cmake | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Modules/FindOpenSSL.cmake b/Modules/FindOpenSSL.cmake index 33ceab7..3688ae9 100644 --- a/Modules/FindOpenSSL.cmake +++ b/Modules/FindOpenSSL.cmake @@ -131,6 +131,7 @@ find_path(OPENSSL_INCLUDE_DIR ${_OPENSSL_ROOT_HINTS_AND_PATHS} HINTS ${_OPENSSL_INCLUDEDIR} + ${_OPENSSL_INCLUDE_DIRS} PATH_SUFFIXES include ) @@ -319,6 +320,7 @@ else() ${_OPENSSL_ROOT_HINTS_AND_PATHS} HINTS ${_OPENSSL_LIBDIR} + ${_OPENSSL_LIBRARY_DIRS} PATH_SUFFIXES lib ) @@ -330,6 +332,7 @@ else() ${_OPENSSL_ROOT_HINTS_AND_PATHS} HINTS ${_OPENSSL_LIBDIR} + ${_OPENSSL_LIBRARY_DIRS} PATH_SUFFIXES lib ) -- cgit v0.12