# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python from cerbero.utils import shell class Recipe(recipe.Recipe): name = 'gst-libav-1.0' version = '1.0' # TODO - check license - plugin is certainly LGPLv2+, but need to check # the linked libs licenses = [License.LGPLv2Plus] config_sh = 'sh ./autogen.sh --noconfigure && ./configure' configure_options = "--enable-lgpl --disable-examples " commit = 'upstream/1.0' deps = ['gstreamer-1.0', 'gst-plugins-base-1.0', 'bzip2', 'zlib' ] files_plugins_codecs_restricted = ['lib/gstreamer-1.0/libgstlibav%(mext)s'] def prepare(self): self.remotes['origin'] = ('%s/%s' % ('git://anongit.freedesktop.org/gstreamer', 'gst-libav')) self.remotes['upstream'] = self.remotes['origin'] if self.config.target_platform != Platform.LINUX: self.configure_options += ' --disable-gtk-doc' if self.config.target_platform == Platform.DARWIN: if self.config.target_arch == Architecture.X86_64: asflags = ' -arch x86_64 -m64' elif self.config.target_arch == Architecture.X86: asflags = ' -arch i386 -m32' elif self.config.target_arch == Architecture.PPC: asflags = ' -arch ppc' self.configure_options += ' ASFLAGS="%s"' % asflags def configure(self): super(recipe.Recipe, self).configure() libav_path = os.path.join(self.build_dir, 'gst-libs', 'ext', 'libav') if self.config.target_platform == Platform.WINDOWS: replacements = {'RANLIB=ranlib': 'RANLIB=%s' % os.environ['RANLIB']} shell.replace(os.path.join(libav_path, 'config.mak'), replacements) elif self.config.target_platform in [Platform.DARWIN, Platform.IOS]: if self.config.target_arch == Architecture.X86: replacements = {'HAVE_EBX_AVAILABLE=yes': 'HAVE_EBX_AVAILABLE=no', 'HAVE_EBX_AVAILABLE 1': 'HAVE_EBX_AVAILABLE 0',} shell.replace(os.path.join(libav_path, 'config.mak'), replacements) shell.replace(os.path.join(libav_path, 'config.h'), replacements) # log2 and log2f are not provided by bionic, but they are not checked # properly elif self.config.target_platform == Platform.ANDROID: replacements = {'HAVE_LOG2 1': 'HAVE_LOG2 0', 'HAVE_LOG2F 1': 'HAVE_LOG2F 0',} shell.replace(os.path.join(libav_path, 'config.h'), replacements)