[vlc-devel] [PATCH v3] package/win32: use VLC_EXTRA_CFLAGS environment variable to pass CFLAGS

Steve Lhomme robux4 at ycbcr.xyz
Tue Dec 17 08:36:20 CET 2019


So that Meson doesn't try to pick them.

When cross-compiling Meson uses the environment variables to test the native
compiler (even if it will never be used). Passing clang options meant to
produce PDB files will be rejected by the host gcc compiler and Meson will
refuse to compile (with the cross compiler).

Similar to 5c76f3478cb038a550de21f6267d57c55c963391 on macos.
---
 extras/package/win32/build.sh | 37 ++++++++++++++++++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

diff --git a/extras/package/win32/build.sh b/extras/package/win32/build.sh
index 9607fcfe058..6b19f0b629e 100755
--- a/extras/package/win32/build.sh
+++ b/extras/package/win32/build.sh
@@ -106,6 +106,34 @@ else
     COMPILING_WITH_CLANG=0
 fi
 
+# Write config.mak for contribs
+# Globals:
+#   VLC_EXTRA_CFLAGS
+#   VLC_EXTRA_CXXFLAGS
+#   VLC_EXTRA_LDFLAGS
+write_config_mak()
+{
+    # Flags to be used for C-like compilers (C, C++, Obj-C)
+    local clike_flags="$VLC_EXTRA_CFLAGS"
+
+    # local vlc_cppflags="-arch $ARCH"
+    local vlc_cflags="$clike_flags"
+    local vlc_cxxflags="$VLC_EXTRA_CXXFLAGS $clike_flags"
+    local vlc_objcflags="$clike_flags"
+
+    local vlc_ldflags="$VLC_EXTRA_LDFLAGS"
+
+    echo "Creating makefile..."
+    test -e config.mak && unlink config.mak
+    exec 3>config.mak || return $?
+
+    printf '# This file was automatically generated!\n\n' >&3
+    printf '%s := %s\n' "CFLAGS" "${vlc_cflags}" >&3
+    printf '%s := %s\n' "CXXFLAGS" "${vlc_cxxflags}" >&3
+    printf '%s := %s\n' "OBJCFLAGS" "${vlc_objcflags}" >&3
+    printf '%s := %s\n' "LDFLAGS" "${vlc_ldflags}" >&3
+}
+
 info "Building extra tools"
 mkdir -p extras/tools
 cd extras/tools
@@ -147,6 +175,11 @@ fi
 if [ "$RELEASE" != "yes" ]; then
      CONTRIBFLAGS="$CONTRIBFLAGS --disable-optim"
 fi
+
+# Write config.mak with flags for the build and compiler overrides
+# Set flag to error on partial availability
+write_config_mak
+
 ${SCRIPT_PATH}/../../../contrib/bootstrap --host=$TRIPLET $CONTRIBFLAGS
 
 # Rebuild the contribs or use the prebuilt ones
@@ -190,7 +223,9 @@ if [ ! -z "$WITH_PDB" ]; then
     CONFIGFLAGS="$CONFIGFLAGS --enable-pdb"
 fi
 
-${SCRIPT_PATH}/configure.sh --host=$TRIPLET --with-contrib=../contrib/$TRIPLET $CONFIGFLAGS
+${SCRIPT_PATH}/configure.sh --host=$TRIPLET --with-contrib=../contrib/$TRIPLET $CONFIGFLAGS \
+    CFLAGS="$VLC_EXTRA_CFLAGS  -Werror=incompatible-pointer-types -Werror=missing-field-initializers" \
+    CXXFLAGS="$VLC_EXTRA_CXXFLAGS  -Werror=incompatible-pointer-types -Werror=missing-field-initializers"
 
 info "Compiling"
 make -j$JOBS
-- 
2.17.1



More information about the vlc-devel mailing list