summaryrefslogtreecommitdiff
path: root/recipes
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2019-02-22 02:08:26 +0530
committerNirbheek Chauhan <nirbheek@centricular.com>2019-02-22 02:34:27 +0530
commitc877545cc9eec20002afdad43f72e73a14df302f (patch)
treedd54c50b956f54db6b9ee5d65b570e6c5664f0a9 /recipes
parent2467f20bfe8143361da8d13f6fe120ed21dd7b5f (diff)
gst recipes: Disable plugins when building with MSVC
Some libraries have issues that cause us to be unable to include their headers or link to their libraries when building with MSVC. Disable them when we're building with MSVC on Windows. With this, you can produce a mostly-complete gstreamer-1.0 package that is built with MSVC on Windows. The status of these plugins is tracked at: https://gitlab.freedesktop.org/gstreamer/cerbero/issues/121
Diffstat (limited to 'recipes')
-rw-r--r--recipes/gst-plugins-bad-1.0.recipe11
-rw-r--r--recipes/gst-plugins-good-1.0.recipe6
2 files changed, 16 insertions, 1 deletions
diff --git a/recipes/gst-plugins-bad-1.0.recipe b/recipes/gst-plugins-bad-1.0.recipe
index a61d7729..2fa4c790 100644
--- a/recipes/gst-plugins-bad-1.0.recipe
+++ b/recipes/gst-plugins-bad-1.0.recipe
@@ -398,7 +398,16 @@ class Recipe(custom.GStreamer):
def prepare(self):
# webrtc-audio-processing headers require C++11, older GCCs require
# explicitly opting in (f.ex., mingw gcc and android)
- self.meson_options['cpp_std'] = 'gnu++11'
+ self.meson_options['cpp_std'] = 'c++11'
+ if self.using_msvc():
+ # plugin is C++, library is Autotools
+ self.disable_plugin('soundtouch', 'effects', dep='soundtouch')
+ # Plugin is C++ and hence webrtc-audio-processing must also be
+ # built with MSVC, it uses Meson but it doesn't build:
+ # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/issues/2
+ self.disable_plugin('webrtcdsp', 'effects', dep='webrtc-audio-processing')
+ # librsvg pulls in gdk-pixbuf, which must be built with MSVC
+ self.disable_plugin('rsvg', 'codecs', dep='librsvg')
# Enable hardware codecs if variants are enabled
self.enable_plugin('nvenc', 'codecs', 'nvcodec', option='nvenc')
diff --git a/recipes/gst-plugins-good-1.0.recipe b/recipes/gst-plugins-good-1.0.recipe
index 5a78f212..46e82642 100644
--- a/recipes/gst-plugins-good-1.0.recipe
+++ b/recipes/gst-plugins-good-1.0.recipe
@@ -222,6 +222,12 @@ class Recipe(custom.GStreamer):
self.append_env('CFLAGS', '-DGSTREAMER_GLIB_COCOA_NSAPPLICATION=1')
self.append_env('OBJCFLAGS', '-DGSTREAMER_GLIB_COCOA_NSAPPLICATION=1')
+ if self.using_msvc():
+ # plugin is C++, library is Autotools
+ self.disable_plugin('taglib', 'codecs')
+ # gdk-pixbuf and all deps must be ported to MSVC first to fix CRT interop issues
+ self.disable_plugin('gdkpixbuf', 'effects', option='gdk-pixbuf', dep='gdk-pixbuf')
+
if self.config.target_platform == Platform.LINUX:
self.use_system_libs = True