windows: Detect Strawberry Perl and error out early
authorNirbheek Chauhan <nirbheek@centricular.com>
Thu, 1 Oct 2020 17:35:34 +0000 (23:05 +0530)
committerNirbheek Chauhan <nirbheek@centricular.com>
Thu, 1 Oct 2020 17:41:24 +0000 (23:11 +0530)
This is going to fail during the compile phase because Strawberry Perl
ships with its own pkg-config and pkgconfig files for zlib/libffi with
unusable values.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-build/-/issues/41

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/197>

meson.build

index d4cf73a..aec7d52 100644 (file)
@@ -24,6 +24,21 @@ if cmdres.returncode() != 0
   error('Do not run `ninja` or `meson` for gst-build inside the uninstalled environment, you will run into problems')
 endif
 
+# Ensure that the user does not have Strawberry Perl in PATH, since it ships
+# with a pkg-config.bat and broken pkgconfig files for libffi and zlib. Will
+# cause a build error, such as in
+# https://gitlab.freedesktop.org/gstreamer/gst-build/-/issues/41
+ensure_no_strawberry_perl = '''
+import os
+assert(r'Strawberry\perl\bin' not in os.environ['PATH'])
+'''
+if build_system == 'windows'
+  cmdres = run_command(python3, '-c', ensure_no_strawberry_perl)
+  if cmdres.returncode() != 0
+    error('You have Strawberry Perl in PATH which is known to cause build issues with gst-build. Please remove it from PATH or uninstall it.')
+  endif
+endif
+
 documented_projects = ''
 # Make it possible to use msys2 built zlib which fails
 # when not using the mingw toolchain as it uses unistd.h