From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
Date: Wed, 29 Oct 2025 01:26:59 +0100
Subject: [PATCH] build: Use python install_sources

Adds support for various python options, like `python.bytecompile`.
---
 bindings/python/meson.build | 44 ++++++++++---------------------------
 1 file changed, 11 insertions(+), 33 deletions(-)

diff --git a/bindings/python/meson.build b/bindings/python/meson.build
index b88dce2b5f65..61d92f43c198 100644
--- a/bindings/python/meson.build
+++ b/bindings/python/meson.build
@@ -1,38 +1,16 @@
+python3 = import('python').find_installation('python3')
+
 pygobject_override_dir = get_option('pygobject-override-dir')
-
-get_overridedir = '''
-import os
-import sysconfig
-
-libdir = sysconfig.get_config_var('SCRIPTDIR')
-
-if not libdir:
-  libdir = '/usr/lib'
-
-try:
-  import gi
-  overridedir = gi._overridesdir
-except ImportError:
-  purelibdir = sysconfig.get_path('purelib')
-  overridedir = os.path.join(purelibdir, 'gi', 'overrides')
-
-if overridedir.startswith(libdir): # Should always be True..
-  overridedir = overridedir[len(libdir) + 1:]
-
-print(overridedir)
-'''
+pygobject_override_files = files('gi/overrides/Gom.py')
 
 if pygobject_override_dir == ''
-    python3 = import('python').find_installation('python3')
-
-    ret = run_command([python3, '-c', get_overridedir])
-
-    if ret.returncode() != 0
-        error('Failed to determine pygobject override directory')
-    else
-        pygobject_override_dir = join_paths(get_option('libdir'), ret.stdout().strip())
-    endif
-
+  pygobject_override_dir = 'gi/overrides'
+else
+  # Emulate install_data behavior for backwards compatibility
+  pygobject_override_dir = join_paths(get_option('prefix'), pygobject_override_dir)
 endif
 
-install_data('gi/overrides/Gom.py', install_dir: pygobject_override_dir)
+python3.install_sources(
+  pygobject_override_files,
+  pure: true,
+  subdir: pygobject_override_dir)
