[vlc-devel] [PATCH v2 3/5] contrib: detect the pkg-config variant to use when cross-compiling

Steve Lhomme robux4 at ycbcr.xyz
Wed Mar 18 09:49:15 CET 2020


On 2020-03-18 9:46, Steve Lhomme wrote:
> And use it for all contribs detection and building.
> 
> on Debian, the x86_64-w64-mingw32-pkg-config may exist and run but give an
> error when actually trying to find a package because the package architecture
> doesn't exist for that target. So we have to test it thoroughly.
> 
> If we revert to pkg-config when cross-compiling we also force the
> PKG_CONFIG_LIBDIR, otherwise we leave it untouched as the system/environment may
> provide more that we know.
> 
> Both /usr/$(HOST)/lib/pkgconfig and /usr/lib/$(HOST)/pkgconfig variants exist,
> at least on Debian.
> ---
>   contrib/src/main.mak | 20 +++++++++++++++++---
>   1 file changed, 17 insertions(+), 3 deletions(-)
> 
> diff --git a/contrib/src/main.mak b/contrib/src/main.mak
> index 555d96a4b42..bff9cd82413 100644
> --- a/contrib/src/main.mak
> +++ b/contrib/src/main.mak
> @@ -82,6 +82,7 @@ RANLIB ?= ranlib
>   STRIP ?= strip
>   WIDL ?= widl
>   WINDRES ?= windres
> +PKG_CONFIG ?= pkg-config
>   else
>   ifneq ($(findstring $(origin CC),undefined default),)
>   CC := $(HOST)-gcc
> @@ -99,6 +100,22 @@ RANLIB ?= $(HOST)-ranlib
>   STRIP ?= $(HOST)-strip
>   WIDL ?= $(HOST)-widl
>   WINDRES ?= $(HOST)-windres
> +
> +# On Debian x86_64-w64-mingw32-pkg-config exists, runs but returns an error when checking packages
> +ifeq ($(shell unset PKG_CONFIG_LIBDIR; $(HOST)-pkg-config --version 1>/dev/null 2>/dev/null || echo FAIL),)
> +PKG_CONFIG ?= $(HOST)-pkg-config
> +else
> +# Use the regular pkg-config and set some PKG_CONFIG_LIBDIR ourselves
> +PKG_CONFIG = pkg-config
> +ifeq ($(findstring $(origin PKG_CONFIG_LIBDIR),undefined),)

This one is still kept as we don't want to use a bogus path.

> +# an extra PKG_CONFIG_LIBDIR was provided, use it prioritarily
> +PKG_CONFIG_LIBDIR := $(PKG_CONFIG_LIBDIR):/usr/$(HOST)/lib/pkgconfig:/usr/lib/$(HOST)/pkgconfig
> +else
> +PKG_CONFIG_LIBDIR := /usr/$(HOST)/lib/pkgconfig:/usr/lib/$(HOST)/pkgconfig
> +endif
> +export PKG_CONFIG_LIBDIR
> +endif
> +
>   endif
>   
>   ifdef HAVE_ANDROID
> @@ -208,13 +225,10 @@ export ACLOCAL_AMFLAGS
>   # Tools #
>   #########
>   
> -PKG_CONFIG ?= pkg-config
>   ifdef HAVE_CROSS_COMPILE
>   # This inhibits .pc file from within the cross-compilation toolchain sysroot.
>   # Hopefully, nobody ever needs that.
>   PKG_CONFIG_PATH := /usr/share/pkgconfig
> -PKG_CONFIG_LIBDIR := /usr/$(HOST)/lib/pkgconfig:/usr/lib/$(HOST)/pkgconfig
> -export PKG_CONFIG_LIBDIR
>   endif
>   PKG_CONFIG_PATH := $(PREFIX)/lib/pkgconfig:$(PKG_CONFIG_PATH)
>   ifeq ($(findstring mingw32,$(BUILD)),mingw32)
> -- 
> 2.17.1
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
> 


More information about the vlc-devel mailing list