summaryrefslogtreecommitdiff
path: root/mesonbuild/modules/_qt.py
diff options
context:
space:
mode:
authorXavier Claessens <xclaessens@netflix.com>2025-10-11 18:03:31 -0400
committerXavier Claessens <xclaesse@gmail.com>2025-10-15 12:15:39 -0400
commit4795475595ef6b87074df9e38d09a3dff2690396 (patch)
tree795cc50e4baffd80dbd2673407c590a8c6af78a6 /mesonbuild/modules/_qt.py
parent76facd5f717e152d64bfeeadc6217686304c5000 (diff)
downloadmeson-4795475595ef6b87074df9e38d09a3dff2690396.tar.gz
Add support for LocalProgram to override_find_program()
Diffstat (limited to 'mesonbuild/modules/_qt.py')
-rw-r--r--mesonbuild/modules/_qt.py34
1 files changed, 26 insertions, 8 deletions
diff --git a/mesonbuild/modules/_qt.py b/mesonbuild/modules/_qt.py
index 675c174a7..85aab1829 100644
--- a/mesonbuild/modules/_qt.py
+++ b/mesonbuild/modules/_qt.py
@@ -208,7 +208,7 @@ class QtBaseModule(ExtensionModule):
self.qt_version = qt_version
# It is important that this list does not change order as the order of
# the returned ExternalPrograms will change as well
- self.tools: T.Dict[str, T.Union[ExternalProgram, build.Executable]] = {
+ self.tools: T.Dict[str, T.Union[ExternalProgram, build.Executable, build.LocalProgram]] = {
tool: NonExistingExternalProgram(tool) for tool in self._set_of_qt_tools
}
self.methods.update({
@@ -445,12 +445,17 @@ class QtBaseModule(ExtensionModule):
for s in sources:
qrc_deps.extend(self._parse_qrc_deps(state, s))
+ cmd: T.List[T.Union[ExternalProgram, build.Executable, build.LocalProgram, str]]
+ cmd = [self.tools['rcc'], '-name', name, '-o', '@OUTPUT@']
+ cmd.extend(extra_args)
+ cmd.append('@INPUT@')
+ cmd.extend(DEPFILE_ARGS)
res_target = build.CustomTarget(
name,
state.subdir,
state.subproject,
state.environment,
- self.tools['rcc'].get_command() + ['-name', name, '-o', '@OUTPUT@'] + extra_args + ['@INPUT@'] + DEPFILE_ARGS,
+ cmd,
sources,
[f'{name}.cpp'],
depend_files=qrc_deps,
@@ -466,12 +471,16 @@ class QtBaseModule(ExtensionModule):
else:
basename = os.path.basename(rcc_file.fname)
name = f'qt{self.qt_version}-{basename.replace(".", "_")}'
+ cmd = [self.tools['rcc'], '-name', '@BASENAME@', '-o', '@OUTPUT@']
+ cmd.extend(extra_args)
+ cmd.append('@INPUT@')
+ cmd.extend(DEPFILE_ARGS)
res_target = build.CustomTarget(
name,
state.subdir,
state.subproject,
state.environment,
- self.tools['rcc'].get_command() + ['-name', '@BASENAME@', '-o', '@OUTPUT@'] + extra_args + ['@INPUT@'] + DEPFILE_ARGS,
+ cmd,
[rcc_file],
[f'{name}.cpp'],
depend_files=qrc_deps,
@@ -724,7 +733,7 @@ class QtBaseModule(ExtensionModule):
ts = os.path.basename(ts)
else:
outdir = state.subdir
- cmd: T.List[T.Union[ExternalProgram, build.Executable, str]] = [self.tools['lrelease'], '@INPUT@', '-qm', '@OUTPUT@']
+ cmd: T.List[T.Union[ExternalProgram, build.Executable, build.LocalProgram, str]] = [self.tools['lrelease'], '@INPUT@', '-qm', '@OUTPUT@']
lrelease_target = build.CustomTarget(
f'qt{self.qt_version}-compile-{ts}',
outdir,
@@ -864,12 +873,15 @@ class QtBaseModule(ExtensionModule):
input_args.append(f'@INPUT{input_counter}@')
input_counter += 1
+ cmd: T.List[T.Union[ExternalProgram, build.Executable, build.LocalProgram, str]]
+ cmd = [self.tools['moc'], '--collect-json', '-o', '@OUTPUT@']
+ cmd.extend(input_args)
return build.CustomTarget(
f'moc_collect_json_{target_name}',
state.subdir,
state.subproject,
state.environment,
- self.tools['moc'].get_command() + ['--collect-json', '-o', '@OUTPUT@'] + input_args,
+ cmd,
moc_json,
[f'{target_name}_json_collect.json'],
description=f'Collecting json type information for {target_name}',
@@ -908,12 +920,17 @@ class QtBaseModule(ExtensionModule):
ressource_path = os.path.join('/', kwargs['module_prefix'], source_basename)
cachegen_inputs.append(ressource_path)
+ cmd: T.List[T.Union[ExternalProgram, build.Executable, build.LocalProgram, str]]
+ cmd = [self.tools['qmlcachegen'], '-o', '@OUTPUT@', '--resource-name', f'qmlcache_{target_name}']
+ cmd.extend(kwargs['extra_args'])
+ cmd.append('--resource=@INPUT@')
+ cmd.extend(cachegen_inputs)
cacheloader_target = build.CustomTarget(
f'cacheloader_{target_name}',
state.subdir,
state.subproject,
state.environment,
- self.tools['qmlcachegen'].get_command() + ['-o', '@OUTPUT@'] + ['--resource-name', f'qmlcache_{target_name}'] + kwargs['extra_args'] + ['--resource=@INPUT@'] + cachegen_inputs,
+ cmd,
[kwargs['qml_qrc']],
#output name format matters here
[f'{target_name}_qmlcache_loader.cpp'],
@@ -941,11 +958,12 @@ class QtBaseModule(ExtensionModule):
install_dir: T.List[T.Union[str, Literal[False]]] = [False]
install_tag: T.List[T.Union[str, None]] = [None]
- cmd = self.tools['qmltyperegistrar'].get_command() + [
+ cmd = [
+ self.tools['qmltyperegistrar'],
'--import-name', import_name,
'--major-version', major_version,
'--minor-version', minor_version,
- '-o', '@OUTPUT0@',
+ '-o', '@OUTPUT0@'
]
cmd.extend(kwargs['extra_args'])