Skip to content
  • Denis Thulin's avatar
    FindOpenSSL: Lookup all pkg-config directories · 24d52daf
    Denis Thulin authored
    
    
    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: default avatarDenis Thulin <denis.thulin@enyx.fr>
    24d52daf