vlc/vlc-3.0 | branch: master | Marvin Scholz <[email protected]> | Tue Apr 21 16:12:47 2020 +0200| [2b3bfa4041ce768de26683b77e6691ac702e6cf2] | committer: Marvin Scholz
contrib: various meson fixes Manual backport of roughly: - a9938752fb1a1b4a6573c7bcd8cc20cbe40f678e - 3426d7bcf98fee15c239ea2b3d815c613df82efe - bef7c8d601b2ced95eac7db50380de4f8ba10ddb > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=2b3bfa4041ce768de26683b77e6691ac702e6cf2 --- contrib/src/main.mak | 71 ++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 50 insertions(+), 21 deletions(-) diff --git a/contrib/src/main.mak b/contrib/src/main.mak index a16c8cb838..b07bea91d6 100644 --- a/contrib/src/main.mak +++ b/contrib/src/main.mak @@ -292,30 +292,37 @@ endif HOSTTOOLS := \ CC="$(CC)" CXX="$(CXX)" LD="$(LD)" \ AR="$(AR)" CCAS="$(CCAS)" RANLIB="$(RANLIB)" STRIP="$(STRIP)" \ - PATH="$(PREFIX)/bin:$(PATH)" -HOSTVARS := \ + PATH="$(PREFIX)/bin:$(PATH)" \ + PKG_CONFIG="$(PKG_CONFIG)" + +HOSTVARS_MESON := $(HOSTTOOLS) \ CPPFLAGS="$(CPPFLAGS)" \ - CFLAGS="$(CFLAGS) $(DBGOPTIMFLAGS)" \ - CXXFLAGS="$(CXXFLAGS) $(DBGOPTIMFLAGS)" \ - LDFLAGS="$(LDFLAGS)" -HOSTVARS_PIC := $(HOSTTOOLS) \ - CPPFLAGS="$(CPPFLAGS) $(PIC)" \ - CFLAGS="$(CFLAGS) $(DBGOPTIMFLAGS) $(PIC)" \ - CXXFLAGS="$(CXXFLAGS) $(DBGOPTIMFLAGS) $(PIC)" \ + CFLAGS="$(CFLAGS)" \ + CXXFLAGS="$(CXXFLAGS)" \ LDFLAGS="$(LDFLAGS)" -# Keep a version of HOSTVARS without the tools, since meson requires the -# tools variables to point to the native ones -ifdef HAVE_CROSS_COMPILE -HOSTVARS_MESON := PATH="$(PREFIX)/bin:$(PATH)" +# Add these flags after Meson consumed the CFLAGS/CXXFLAGS +# as when setting those for Meson, it would apply to tests +# and cause the check if symbols have underscore prefix to +# incorrectly report they have not, even if they have. +ifndef WITH_OPTIMIZATION +CFLAGS := $(CFLAGS) -g -O0 +CXXFLAGS := $(CXXFLAGS) -g -O0 else -HOSTVARS_MESON := $(HOSTTOOLS) \ +CFLAGS := $(CFLAGS) -g -O2 +CXXFLAGS := $(CXXFLAGS) -g -O2 +endif + +HOSTVARS := $(HOSTTOOLS) \ CPPFLAGS="$(CPPFLAGS)" \ CFLAGS="$(CFLAGS)" \ CXXFLAGS="$(CXXFLAGS)" \ LDFLAGS="$(LDFLAGS)" -endif -HOSTVARS := $(HOSTTOOLS) $(HOSTVARS) +HOSTVARS_PIC := $(HOSTTOOLS) \ + CPPFLAGS="$(CPPFLAGS) $(PIC)" \ + CFLAGS="$(CFLAGS) $(PIC)" \ + CXXFLAGS="$(CXXFLAGS) $(PIC)" \ + LDFLAGS="$(LDFLAGS)" download_git = \ rm -Rf -- "$(@:.tar.xz=)" && \ @@ -371,16 +378,30 @@ RECONF = mkdir -p -- $(PREFIX)/share/aclocal && \ CMAKE = cmake . -DCMAKE_TOOLCHAIN_FILE=$(abspath toolchain.cmake) \ -DCMAKE_INSTALL_PREFIX=$(PREFIX) $(CMAKE_GENERATOR) -MESON = meson --default-library static --prefix "$(PREFIX)" --backend ninja \ +MESONFLAGS = --default-library static --prefix "$(PREFIX)" --backend ninja \ -Dlibdir=lib ifndef WITH_OPTIMIZATION -MESON += --buildtype debug +MESONFLAGS += --buildtype debug else -MESON += --buildtype release +MESONFLAGS += --buildtype release endif ifdef HAVE_CROSS_COMPILE -MESON += --cross-file $(abspath crossfile.meson) +# When cross-compiling meson uses the env vars like +# CC, CXX, etc. and CFLAGS, CXXFLAGS, etc. for the +# build machine compiler and not like most other +# buildsystems for the host compilation. Therefore +# we clear the enviornment variables using the env +# command, except PATH, which is needed. +# The values of the mentioned relevant env variables +# are passed for the host compilation using the +# generated crossfile, so everything should work as +# expected. +MESONFLAGS += --cross-file $(abspath crossfile.meson) +MESON = env -i PATH="$(PREFIX)/bin:$(PATH)" PKG_CONFIG_LIBDIR="$(PKG_CONFIG_LIBDIR)" \ + PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" meson $(MESONFLAGS) +else +MESON = meson $(MESONFLAGS) endif ifdef GPL @@ -546,21 +567,29 @@ else ifdef HAVE_DARWIN_OS MESON_SYSTEM_NAME = darwin else +ifdef HAVE_ANDROID + MESON_SYSTEM_NAME = android +else ifdef HAVE_LINUX # android has also system = linux and defines HAVE_LINUX MESON_SYSTEM_NAME = linux +else + $(error "No meson system name known for this target") endif endif endif +endif + crossfile.meson: $(SRC)/gen-meson-crossfile.py - $(HOSTVARS) \ + $(HOSTVARS_MESON) \ WINDRES="$(WINDRES)" \ PKG_CONFIG="$(PKG_CONFIG)" \ HOST_SYSTEM="$(MESON_SYSTEM_NAME)" \ HOST_ARCH="$(subst i386,x86,$(ARCH))" \ HOST="$(HOST)" \ $(SRC)/gen-meson-crossfile.py $@ + cat $@ # Default pattern rules .sum-%: $(SRC)/%/SHA512SUMS _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
