aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jussi.pakkanen@mailbox.org>2025-08-19 01:13:10 +0300
committerJussi Pakkanen <jussi.pakkanen@mailbox.org>2025-08-20 00:55:38 +0300
commitce492509bd23b6a55dbfa644df183f6d95d5cfd9 (patch)
tree09660ba340ccd902dee5d6dd280c6634fc33e77d
parent64478322e13d6d817d71e27c52f4ef2fb9092b75 (diff)
downloadmeson-ce492509bd23b6a55dbfa644df183f6d95d5cfd9.zip
meson-ce492509bd23b6a55dbfa644df183f6d95d5cfd9.tar.gz
meson-ce492509bd23b6a55dbfa644df183f6d95d5cfd9.tar.bz2
Revert "gnome: support generate_gir on cross builds"
This reverts commit 5e627c9b421a4cebb0e112af6a432fec66640c28.
-rw-r--r--mesonbuild/modules/__init__.py18
-rw-r--r--mesonbuild/modules/gnome.py37
2 files changed, 14 insertions, 41 deletions
diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py
index 3938101..87892e6 100644
--- a/mesonbuild/modules/__init__.py
+++ b/mesonbuild/modules/__init__.py
@@ -82,21 +82,19 @@ class ModuleState:
wanted=wanted, silent=silent, for_machine=for_machine)
def find_tool(self, name: str, depname: str, varname: str, required: bool = True,
- wanted: T.Optional[str] = None, for_machine: MachineChoice = MachineChoice.HOST) -> T.Union[build.OverrideExecutable, ExternalProgram, 'OverrideProgram']:
- if for_machine is MachineChoice.HOST:
- # Look in overrides in case it's built as subproject
- progobj = self._interpreter.program_from_overrides([name], [])
- if progobj is not None:
- return progobj
+ wanted: T.Optional[str] = None) -> T.Union[build.OverrideExecutable, ExternalProgram, 'OverrideProgram']:
+ # Look in overrides in case it's built as subproject
+ progobj = self._interpreter.program_from_overrides([name], [])
+ if progobj is not None:
+ return progobj
# Look in machine file
- prog_list = self.environment.lookup_binary_entry(for_machine, name)
+ prog_list = self.environment.lookup_binary_entry(MachineChoice.HOST, name)
if prog_list is not None:
return ExternalProgram.from_entry(name, prog_list)
# Check if pkgconfig has a variable
- dep = self.dependency(depname, native=for_machine is MachineChoice.BUILD,
- required=False, wanted=wanted)
+ dep = self.dependency(depname, native=True, required=False, wanted=wanted)
if dep.found() and dep.type_name == 'pkgconfig':
value = dep.get_variable(pkgconfig=varname)
if value:
@@ -108,7 +106,7 @@ class ModuleState:
return progobj
# Normal program lookup
- return self.find_program(name, required=required, wanted=wanted, for_machine=for_machine)
+ return self.find_program(name, required=required, wanted=wanted)
def dependency(self, depname: str, native: bool = False, required: bool = True,
wanted: T.Optional[str] = None) -> 'Dependency':
diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
index 9a45bb4..469e027 100644
--- a/mesonbuild/modules/gnome.py
+++ b/mesonbuild/modules/gnome.py
@@ -22,7 +22,7 @@ from .. import build
from .. import interpreter
from .. import mesonlib
from .. import mlog
-from ..build import CustomTarget, CustomTargetIndex, Executable, GeneratedList, InvalidArguments, OverrideExecutable
+from ..build import CustomTarget, CustomTargetIndex, Executable, GeneratedList, InvalidArguments
from ..dependencies import Dependency, InternalDependency
from ..dependencies.pkgconfig import PkgConfigDependency, PkgConfigInterface
from ..interpreter.type_checking import DEPENDS_KW, DEPEND_FILES_KW, ENV_KW, INSTALL_DIR_KW, INSTALL_KW, NoneType, DEPENDENCY_SOURCES_KW, in_set_validator
@@ -33,7 +33,7 @@ from ..mesonlib import (
MachineChoice, MesonException, OrderedSet, Popen_safe, join_args, quote_arg
)
from ..options import OptionKey
-from ..programs import ExternalProgram, OverrideProgram
+from ..programs import OverrideProgram
from ..scripts.gettext import read_linguas
if T.TYPE_CHECKING:
@@ -45,6 +45,7 @@ if T.TYPE_CHECKING:
from ..interpreter import Interpreter
from ..interpreterbase import TYPE_var, TYPE_kwargs
from ..mesonlib import FileOrString
+ from ..programs import ExternalProgram
class PostInstall(TypedDict):
glib_compile_schemas: bool
@@ -197,7 +198,7 @@ if T.TYPE_CHECKING:
vtail: T.Optional[str]
depends: T.List[T.Union[BuildTarget, CustomTarget, CustomTargetIndex]]
- ToolType: TypeAlias = T.Union[OverrideExecutable, ExternalProgram, OverrideProgram]
+ ToolType: TypeAlias = T.Union[Executable, ExternalProgram, OverrideProgram]
# Differs from the CustomTarget version in that it straight defaults to True
@@ -308,7 +309,7 @@ class GnomeModule(ExtensionModule):
once=True, fatal=False)
@staticmethod
- def _find_tool(state: 'ModuleState', tool: str, for_machine: MachineChoice = MachineChoice.HOST) -> 'ToolType':
+ def _find_tool(state: 'ModuleState', tool: str) -> 'ToolType':
tool_map = {
'gio-querymodules': 'gio-2.0',
'glib-compile-schemas': 'gio-2.0',
@@ -321,7 +322,7 @@ class GnomeModule(ExtensionModule):
}
depname = tool_map[tool]
varname = tool.replace('-', '_')
- return state.find_tool(tool, depname, varname, for_machine=for_machine)
+ return state.find_tool(tool, depname, varname)
@typed_kwargs(
'gnome.post_install',
@@ -1195,32 +1196,6 @@ class GnomeModule(ExtensionModule):
scan_command: T.List[T.Union[str, Executable, 'ExternalProgram', 'OverrideProgram']] = [giscanner]
scan_command += ['--quiet']
-
- if state.environment.is_cross_build() and state.environment.need_exe_wrapper():
- if not state.environment.has_exe_wrapper():
- mlog.error('generate_gir requires exe_wrapper')
-
- binary_wrapper = state.environment.get_exe_wrapper().get_command()
- ldd = state.environment.lookup_binary_entry(MachineChoice.HOST, 'ldd')
- if ldd is None:
- ldd_wrapper = ['ldd']
- else:
- ldd_wrapper = ExternalProgram.from_bin_list(state.environment, MachineChoice.HOST, 'ldd').get_command()
-
- WRAPPER_ARGS_REQUIRED_VERSION = ">=1.85.0"
- if not self._giscanner_version_compare(state, WRAPPER_ARGS_REQUIRED_VERSION):
- msg = ('Use of gnome.generate_gir during cross compilation requires'
- f'g-ir-scanner {WRAPPER_ARGS_REQUIRED_VERSION}')
- raise MesonException(msg)
- else:
- scan_command += ['--use-binary-wrapper', binary_wrapper[0]]
- if len(binary_wrapper) > 1:
- scan_command += ['--binary-wrapper-args-begin', *binary_wrapper[1:], '--binary-wrapper-args-end']
-
- scan_command += ['--use-ldd-wrapper', ldd_wrapper[0]]
- if len(ldd_wrapper) > 1:
- scan_command += ['--ldd-wrapper-args-begin', *ldd_wrapper[1:], '--ldd-wrapper-args-end']
-
scan_command += ['--no-libtool']
scan_command += ['--namespace=' + ns, '--nsversion=' + nsversion]
scan_command += ['--warn-all']