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:
$ 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:
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 (closed)
Edited by Brad King