diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-11-26 17:12:47 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-26 17:12:47 +0200 |
commit | 2dab7c37df5d9074b4033c547b0c64e22fd4d74c (patch) | |
tree | 6e7fc7eeaa07fe5efad299a4ced5bff5b679cd80 /mesonbuild/modules | |
parent | 91a01265900c6ee6bf805a7d860f7cde86ccff08 (diff) | |
parent | 5462e65c44e94489ddfc1ffab82ab3f5ee6d7ea7 (diff) | |
download | meson-2dab7c37df5d9074b4033c547b0c64e22fd4d74c.zip meson-2dab7c37df5d9074b4033c547b0c64e22fd4d74c.tar.gz meson-2dab7c37df5d9074b4033c547b0c64e22fd4d74c.tar.bz2 |
Merge pull request #2676 from jeandet/add_qt_translations
Add qt translations
Diffstat (limited to 'mesonbuild/modules')
-rw-r--r-- | mesonbuild/modules/qt.py | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/mesonbuild/modules/qt.py b/mesonbuild/modules/qt.py index 285169b..463bf01 100644 --- a/mesonbuild/modules/qt.py +++ b/mesonbuild/modules/qt.py @@ -43,13 +43,13 @@ class QtBaseModule: kwargs = {'required': 'true', 'modules': 'Core', 'silent': 'true', 'method': method} qt = _QT_DEPS_LUT[self.qt_version](env, kwargs) # Get all tools and then make sure that they are the right version - self.moc, self.uic, self.rcc = qt.compilers_detect() + self.moc, self.uic, self.rcc, self.lrelease = qt.compilers_detect() # Moc, uic and rcc write their version strings to stderr. # Moc and rcc return a non-zero result when doing so. # What kind of an idiot thought that was a good idea? - for compiler, compiler_name in ((self.moc, "Moc"), (self.uic, "Uic"), (self.rcc, "Rcc")): + for compiler, compiler_name in ((self.moc, "Moc"), (self.uic, "Uic"), (self.rcc, "Rcc"), (self.lrelease, "lrelease")): if compiler.found(): - stdout, stderr = Popen_safe(compiler.get_command() + ['-v'])[1:3] + stdout, stderr = Popen_safe(compiler.get_command() + ['-version'])[1:3] stdout = stdout.strip() stderr = stderr.strip() if 'Qt {}'.format(self.qt_version) in stderr: @@ -62,7 +62,7 @@ class QtBaseModule: raise MesonException('{name} preprocessor is not for Qt {version}. Output:\n{stdo}\n{stderr}'.format( name=compiler_name, version=self.qt_version, stdo=stdout, stderr=stderr)) mlog.log(' {}:'.format(compiler_name.lower()), mlog.green('YES'), '({path}, {version})'.format( - path=self.moc.get_path(), version=compiler_ver.split()[-1])) + path=compiler.get_path(), version=compiler_ver.split()[-1])) else: mlog.log(' {}:'.format(compiler_name.lower()), mlog.red('NO')) self.tools_detected = True @@ -137,10 +137,28 @@ class QtBaseModule: moc_output = moc_gen.process_files('Qt{} moc header'.format(self.qt_version), moc_headers, state) sources.append(moc_output) if len(moc_sources) > 0: - arguments = moc_extra_arguments + ['@INPUT@', '-o', '@OUTPUT@'] + arguments = moc_extra_arguments + inc + ['@INPUT@', '-o', '@OUTPUT@'] moc_kwargs = {'output': '@BASENAME@.moc', 'arguments': arguments} moc_gen = build.Generator([self.moc], moc_kwargs) moc_output = moc_gen.process_files('Qt{} moc source'.format(self.qt_version), moc_sources, state) sources.append(moc_output) return ModuleReturnValue(sources, sources) + + @permittedKwargs({'ts_files', 'install', 'install_dir', 'build_by_default', 'method'}) + def compile_translations(self, state, args, kwargs): + ts_files, install_dir = extract_as_list(kwargs, 'ts_files', 'install_dir', pop=True) + self._detect_tools(state.environment, kwargs.get('method', 'auto')) + translations = [] + for ts in ts_files: + cmd = [self.lrelease, '@INPUT@', '-qm', '@OUTPUT@'] + lrelease_kwargs = {'output': '@BASENAME@.qm', + 'input': ts, + 'install': kwargs.get('install', False), + 'build_by_default': kwargs.get('build_by_default', False), + 'command': cmd} + if install_dir is not None: + lrelease_kwargs['install_dir'] = install_dir + lrelease_target = build.CustomTarget('qt{}-compile-{}'.format(self.qt_version, ts), state.subdir, state.subproject, lrelease_kwargs) + translations.append(lrelease_target) + return ModuleReturnValue(translations, translations) |