Remove msys2_setup as it is not used, not tested, not documentated
authorThibault Saunier <tsaunier@igalia.com>
Sat, 3 Aug 2019 00:47:41 +0000 (17:47 -0700)
committerThibault Saunier <tsaunier@igalia.com>
Tue, 24 Sep 2019 11:23:07 +0000 (08:23 -0300)
msys2_setup.py [deleted file]

diff --git a/msys2_setup.py b/msys2_setup.py
deleted file mode 100644 (file)
index 0ea17e5..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-#!/usr/bin/env python3
-"""Setup meson based GStreamer uninstalled environment based on msys2."""
-
-import argparse
-import itertools
-import os
-import re
-import sys
-import shlex
-import shutil
-import subprocess
-import tempfile
-
-from scripts.common import git
-from setup import GstBuildConfigurer
-
-
-PROJECTNAME = "GStreamer build"
-
-ROOTDIR = os.path.abspath(os.path.dirname(__file__))
-
-
-class Msys2Configurer(GstBuildConfigurer):
-    MESON_GIT = 'https://github.com/mesonbuild/meson.git'
-    DEPENDENCIES = ['git',
-                    'bison',
-                    'mingw-w64-x86_64-pkg-config',
-                    'mingw-w64-x86_64-ninja',
-                    'mingw-w64-x86_64-libxml2',
-                    'mingw-w64-x86_64-ffmpeg',
-                    'mingw-w64-x86_64-python3',
-                    'mingw-w64-x86_64-json-glib']
-    LIBNAME_EXCEPTIONS = {
-        r'^zlib1.lib$': 'z.lib',
-        r'^nettle-.*': 'nettle.lib',
-        r'^hogweed-.*': 'hogweed.lib',
-        # Fancy, but it seems to be the correct way to do it
-        r'^eay32.lib$': 'crypto.lib',
-        r'^ssleay32.lib$': 'ssl.lib',
-    }
-
-    def get_libname(self, dll_name):
-        lib_name = re.sub(r'(?:lib)?(.*?)(?:-\d+)?\.dll', r'\1.lib', dll_name)
-
-        for exception_name, exception_libname in self.LIBNAME_EXCEPTIONS.items():
-            if re.findall(exception_name, lib_name):
-                return exception_libname
-        return lib_name
-
-    def make_lib(self, lib, dll, dll_name):
-        print('%s... ' % os.path.basename(lib), end='', flush=True)
-        try:
-            os.remove(lib)
-        except FileNotFoundError:
-            pass
-
-        dumpbin = subprocess.check_output(['dumpbin', '/exports', dll])
-        lines = dumpbin.decode().splitlines()
-        export_start = [i for i in enumerate(
-            lines) if i[1].find('ordinal hint') != -1][0][0] + 2
-        exports = itertools.takewhile(lambda x: x != '', lines[export_start:])
-        exports = [i.split() for i in exports]
-        def_file = tempfile.NamedTemporaryFile(
-            suffix='.def', delete=False, mode='w')
-        def_file.write('LIBRARY ' + dll_name + '\r\n')
-        def_file.write('EXPORTS\r\n')
-        for tmp in exports:
-            ordinal, name = tmp[0], tmp[3]
-            def_file.write(name + ' @' + ordinal + '\r\n')
-        def_file.close()
-        subprocess.check_output(['lib', '/def:' + def_file.name,
-                                 '/out:' + lib])
-        os.remove(def_file.name)
-
-    def make_lib_if_needed(self, dll):
-        if not dll.endswith('.dll'):
-            return
-
-        lib_dir, dll_name = os.path.split(dll)
-        if lib_dir.endswith('bin'):
-            lib_dir = lib_dir[:-3] + 'lib'
-
-        lib_name = self.get_libname(dll_name)
-        lib = os.path.join(lib_dir, lib_name)
-        if os.path.exists(lib) and os.stat(dll).st_mtime_ns < os.stat(lib).st_mtime_ns:
-            return
-
-        print('Generating .lib file for %s ...' % os.path.basename(dll), end='', flush=True)
-        self.make_lib(lib, dll, dll_name)
-        print('DONE', flush=True)
-
-    def make_libs(self):
-        base = os.path.join(self.options.msys2_path, 'mingw64', 'bin')
-        for f in os.listdir(base):
-            if f.endswith('.dll'):
-                self.make_lib_if_needed(os.path.join(base, f))
-
-    def get_configs(self):
-        return GstBuildConfigurer.get_configs(self) + [
-            '-D' + m + ':disable_introspection=true' for m in [
-                'gst-devtools', 'gstreamer', 'gst-plugins-base',
-                'gst-editing-services']]
-
-    def setup(self, args):
-        if not os.path.exists(self.options.msys2_path):
-            print("msys2 not found in %s. Please make sure to install"
-                  " (from http://msys2.github.io/) specify --msys2-path"
-                  " if you did not install in the default directory.", flush=True)
-            return False
-
-        for path in ['mingw64/bin', 'bin', 'usr/bin']:
-            os.environ['PATH'] = os.environ.get(
-                'PATH', '') + os.pathsep + os.path.normpath(os.path.join(self.options.msys2_path, path))
-        os.environ['PATH'] = os.environ['PATH'].replace(';;', ';')
-        os.environ['PKG_CONFIG_PATH'] = os.environ.get(
-            'PKG_CONFIG_PATH', '') + ':/mingw64/lib/pkgconfig:/mingw64/share/pkgconfig'
-
-        subprocess.check_call(['pacman', '-S', '--needed', '--noconfirm'] + self.DEPENDENCIES)
-        source_path = os.path.abspath(os.path.curdir)
-
-        print('Making sure meson is present in root folder... ', end='', flush=True)
-        if not os.path.isdir(os.path.join(source_path, 'meson')):
-            print('\nCloning meson', flush=True)
-            git('clone', self.MESON_GIT, repository_path=source_path)
-        else:
-            print('\nDONE', flush=True)
-
-        print("Making libs", flush=True)
-        self.make_libs()
-        print("Done making .lib files.", flush=True)
-        if not os.path.exists(os.path.join(source_path, 'build', 'build.ninja')) or \
-                self.options.reconfigure:
-            print("Running meson", flush=True)
-            if not self.configure_meson():
-                return False
-
-        try:
-            if not args:
-                print("Getting into msys2 environment", flush=True)
-                subprocess.check_call([sys.executable,
-                                os.path.join(source_path, 'gst-uninstalled.py'),
-                                '--builddir', os.path.join(source_path, 'build')])
-            else:
-                print("Running %s" ' '.join(args), flush=True)
-                res = subprocess.check_call(args)
-        except subprocess.CalledProcessError as e:
-            return False
-
-        return True
-
-
-if __name__ == "__main__":
-    parser = argparse.ArgumentParser(description='Process some integers.')
-    parser.add_argument("--no-error", action='store_true',
-                        default=False, help="Do not error out on warnings")
-    parser.add_argument("--reconfigure", action='store_true',
-                        default=False, help='Force a full reconfiguration'
-                        ' meaning the build/ folder is removed.'
-                        ' You can also use `ninja reconfigure` to just'
-                        ' make sure meson is rerun but the build folder'
-                        ' is kept.')
-    if os.name != 'nt':
-        print("Using this script outside windows does not make sense.", flush=True)
-        exit(1)
-
-    parser.add_argument("-m", "--msys2-path", dest="msys2_path",
-                        help="Where to find msys2 root directory."
-                        "(deactivates msys if unset)",
-                        default="C:\msys64")
-
-    parser.add_argument("-c", "--command", dest="command",
-                        help="Command to run instead of entering environment.",
-                        default="")
-    options, args = parser.parse_known_args()
-
-    if not shutil.which('cl'):
-        print("Can not find MSVC on windows,"
-                " make sure you are in a 'Visual Studio"
-                " Native Tools Command Prompt'", flush=True)
-        exit(1)
-
-    configurer = Msys2Configurer(options, args)
-
-    exit(not configurer.setup(shlex.split(options.command)))