diff options
author | Martin Robinson <mrobinson@igalia.com> | 2024-01-17 10:11:04 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-17 09:11:04 +0000 |
commit | d43adb1a92c419680be86e7335f3de84b75fb2ef (patch) | |
tree | 67c573216efc3471827c45e3f0ab88b8b9105e87 /python/servo/platform | |
parent | 6a7b450478f69d9d83b0936a0ab28ac2d94761d4 (diff) | |
download | servo-d43adb1a92c419680be86e7335f3de84b75fb2ef.tar.gz servo-d43adb1a92c419680be86e7335f3de84b75fb2ef.zip |
build: Only set PATH for GStreamer (#31078)
The documentation claims that this is the only environment variable that
needs to be set before build.
Diffstat (limited to 'python/servo/platform')
-rw-r--r-- | python/servo/platform/base.py | 51 | ||||
-rw-r--r-- | python/servo/platform/macos.py | 18 |
2 files changed, 18 insertions, 51 deletions
diff --git a/python/servo/platform/base.py b/python/servo/platform/base.py index a3909d08c11..7cb1a9b0996 100644 --- a/python/servo/platform/base.py +++ b/python/servo/platform/base.py @@ -23,30 +23,6 @@ class Base: self.is_linux = False self.is_macos = False - def set_gstreamer_environment_variables_if_necessary( - self, env: Dict[str, str], cross_compilation_target: Optional[str], check_installation=True - ): - # We may not need to update environment variables if GStreamer is installed - # for the system on Linux. - gstreamer_root = self.gstreamer_root(cross_compilation_target) - if gstreamer_root: - util.prepend_paths_to_env(env, "PATH", os.path.join(gstreamer_root, "bin")) - util.prepend_paths_to_env( - env, "PKG_CONFIG_PATH", os.path.join(gstreamer_root, "lib", "pkgconfig") - ) - util.prepend_paths_to_env( - env, - self.library_path_variable_name(), - os.path.join(gstreamer_root, "lib"), - ) - env["GST_PLUGIN_SCANNER"] = os.path.join( - gstreamer_root, - "libexec", - "gstreamer-1.0", - f"gst-plugin-scanner{self.executable_suffix()}", - ) - env["GST_PLUGIN_SYSTEM_PATH"] = os.path.join(gstreamer_root, "lib", "gstreamer-1.0") - def gstreamer_root(self, _cross_compilation_target: Optional[str]) -> Optional[str]: raise NotImplementedError("Do not know how to get GStreamer path for platform.") @@ -65,18 +41,23 @@ class Base: ) def is_gstreamer_installed(self, cross_compilation_target: Optional[str]) -> bool: - env = os.environ.copy() - self.set_gstreamer_environment_variables_if_necessary( - env, cross_compilation_target, check_installation=False) - return ( - subprocess.call( - ["pkg-config", "--atleast-version=1.18", "gstreamer-1.0"], - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - env=env, + gstreamer_root = self.gstreamer_root(cross_compilation_target) + if gstreamer_root: + pkg_config = os.path.join(gstreamer_root, "bin", "pkg-config") + else: + pkg_config = "pkg-config" + + try: + return ( + subprocess.call( + [pkg_config, "--atleast-version=1.18", "gstreamer-1.0"], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + ) + == 0 ) - == 0 - ) + except FileNotFoundError: + return False def bootstrap(self, force: bool): installed_something = self._platform_bootstrap(force) diff --git a/python/servo/platform/macos.py b/python/servo/platform/macos.py index 34f936a3f21..73708af6446 100644 --- a/python/servo/platform/macos.py +++ b/python/servo/platform/macos.py @@ -36,23 +36,9 @@ class MacOS(Base): return GSTREAMER_ROOT def is_gstreamer_installed(self, cross_compilation_target: Optional[str]) -> bool: - if not super().is_gstreamer_installed(cross_compilation_target): - return False - # Servo only supports the official GStreamer distribution on MacOS. - env = os.environ.copy() - self.set_gstreamer_environment_variables_if_necessary( - env, cross_compilation_target, check_installation=False - ) - gst_lib_dir = subprocess.check_output( - ["pkg-config", "--variable=libdir", "gstreamer-1.0"], env=env - ) - if not gst_lib_dir.startswith(bytes(GSTREAMER_ROOT, "utf-8")): - print("GStreamer is installed, but not the official packages.\n" - "Run `./mach bootstrap-gtstreamer` or install packages from " - "https://gstreamer.freedesktop.org/") - return False - return True + # Make sure we use the right `pkg-config`. + return not cross_compilation_target and os.path.exists(GSTREAMER_ROOT) def _platform_bootstrap(self, _force: bool) -> bool: installed_something = False |