• Jörg Krause's avatar
    src/lib/gcrypt/meson.build: use dependency() for quering linker flags · 7f87de78
    Jörg Krause authored
    Since version 0.49.0 the Meson build system has native support for
    finding and using the gcrypt library using the `dependency()` function.
    
    `dependency()` has the advantage over `find_library()` as it queries the
    required linker flags for proper linking with external libraries, e.g.
    libgpg-error.
    
    As the latest released version 1.8.4 of libgcrypt does not
    provide a .pc file, using `libgcrypt-config` is the only way to query
    the required linker flags.
    
    Unfortunately, there is an issue when cross compiling mpd and the user does not
    define `libgcrypt-config` in the cross file. If the user sets the qobuz feature
    to `auto` and the target does not have libgcrypt installed, the Meson
    build system will falsly assume libgcrypt is available for the target as
    it uses the native `libgcrypt-config` on the host and pretend is has
    found the library.
    
    Therefore, we still rely on `find_library()` to workaround this buggy
    behavior. This way, if qobuz feature detection is set to `auto`, the
    feature is disabled in case there is no target libgcrypt available.
    
    Fixes building mpd statically with the qobuz feature enabled. Otherwise
    the build fails with undefined references because of the missing libgpg-error
    dependency:
    
    ```
    /sysroot/usr/lib/libgcrypt.a(libgcrypt_la-visibility.o): In function `gcry_strerror':
    visibility.c:(.text+0x14): undefined reference to `gpg_strerror'
    ```
    7f87de78
meson.build 1013 Bytes