diff options
author | Elliott Sales de Andrade <quantum.analyst@gmail.com> | 2016-12-20 03:56:46 -0500 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2016-12-22 17:08:32 +0200 |
commit | 18c38df875ed99324c74dea2c6d9765f25c10ff8 (patch) | |
tree | 9e73de350c4939af86669b77711467b4856d439c | |
parent | 6f5a5622b94161ab851ec498f5a95a8ae181c785 (diff) | |
download | meson-18c38df875ed99324c74dea2c6d9765f25c10ff8.zip meson-18c38df875ed99324c74dea2c6d9765f25c10ff8.tar.gz meson-18c38df875ed99324c74dea2c6d9765f25c10ff8.tar.bz2 |
Add Generator.process_files to reduce code duplication.
-rw-r--r-- | mesonbuild/build.py | 9 | ||||
-rw-r--r-- | mesonbuild/interpreter.py | 7 | ||||
-rw-r--r-- | mesonbuild/modules/qt4.py | 9 | ||||
-rw-r--r-- | mesonbuild/modules/qt5.py | 9 | ||||
-rw-r--r-- | mesonbuild/modules/windows.py | 4 |
5 files changed, 19 insertions, 19 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py index afd8b0a..6e3325d 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -911,6 +911,15 @@ class Generator(): def get_arglist(self): return self.arglist + def process_files(self, name, files, state, extra_args=[]): + output = GeneratedList(self, extra_args=extra_args) + for f in files: + if not isinstance(f, str): + raise InvalidArguments('{} arguments must be strings.'.format(name)) + output.add_file(os.path.join(state.subdir, f)) + return output + + class GeneratedList(): def __init__(self, generator, extra_args=[]): if hasattr(generator, 'held_object'): diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index e86f779..0f6ea1c 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -318,11 +318,10 @@ class GeneratorHolder(InterpreterObject): self.methods.update({'process' : self.process_method}) def process_method(self, args, kwargs): - check_stringlist(args) extras = mesonlib.stringlistify(kwargs.get('extra_args', [])) - gl = GeneratedListHolder(self, extras) - [gl.add_file(os.path.join(self.interpreter.subdir, a)) for a in args] - return gl + gl = self.held_object.process_files('Generator', args, self.interpreter, extra_args=extras) + return GeneratedListHolder(gl) + class GeneratedListHolder(InterpreterObject): def __init__(self, arg1, extra_args=[]): diff --git a/mesonbuild/modules/qt4.py b/mesonbuild/modules/qt4.py index 2d89792..8df4f3e 100644 --- a/mesonbuild/modules/qt4.py +++ b/mesonbuild/modules/qt4.py @@ -140,22 +140,19 @@ class Qt4Module(): ui_kwargs = {'output' : 'ui_@BASENAME@.h', 'arguments' : ['-o', '@OUTPUT@', '@INPUT@']} ui_gen = build.Generator([self.uic], ui_kwargs) - ui_output = build.GeneratedList(ui_gen) - [ui_output.add_file(os.path.join(state.subdir, a)) for a in ui_files] + ui_output = ui_gen.process_files('Qt4 ui', ui_files, state) sources.append(ui_output) if len(moc_headers) > 0: moc_kwargs = {'output' : 'moc_@BASENAME@.cpp', 'arguments' : ['@INPUT@', '-o', '@OUTPUT@']} moc_gen = build.Generator([self.moc], moc_kwargs) - moc_output = build.GeneratedList(moc_gen) - [moc_output.add_file(os.path.join(state.subdir, a)) for a in moc_headers] + moc_output = moc_gen.process_files('Qt4 moc header', moc_headers, state) sources.append(moc_output) if len(moc_sources) > 0: moc_kwargs = {'output' : '@BASENAME@.moc', 'arguments' : ['@INPUT@', '-o', '@OUTPUT@']} moc_gen = build.Generator([self.moc], moc_kwargs) - moc_output = build.GeneratedList(moc_gen) - [moc_output.add_file(os.path.join(state.subdir, a)) for a in moc_sources] + moc_output = moc_gen.process_files('Qt4 moc source', moc_sources, state) sources.append(moc_output) return sources diff --git a/mesonbuild/modules/qt5.py b/mesonbuild/modules/qt5.py index 35a475a..d4cd261 100644 --- a/mesonbuild/modules/qt5.py +++ b/mesonbuild/modules/qt5.py @@ -146,22 +146,19 @@ class Qt5Module(): ui_kwargs = {'output' : 'ui_@BASENAME@.h', 'arguments' : ['-o', '@OUTPUT@', '@INPUT@']} ui_gen = build.Generator([self.uic], ui_kwargs) - ui_output = build.GeneratedList(ui_gen) - [ui_output.add_file(os.path.join(state.subdir, a)) for a in ui_files] + ui_output = ui_gen.process_files('Qt5 ui', ui_files, state) sources.append(ui_output) if len(moc_headers) > 0: moc_kwargs = {'output' : 'moc_@BASENAME@.cpp', 'arguments' : ['@INPUT@', '-o', '@OUTPUT@']} moc_gen = build.Generator([self.moc], moc_kwargs) - moc_output = build.GeneratedList(moc_gen) - [moc_output.add_file(os.path.join(state.subdir, a)) for a in moc_headers] + moc_output = moc_gen.process_files('Qt5 moc header', moc_headers, state) sources.append(moc_output) if len(moc_sources) > 0: moc_kwargs = {'output' : '@BASENAME@.moc', 'arguments' : ['@INPUT@', '-o', '@OUTPUT@']} moc_gen = build.Generator([self.moc], moc_kwargs) - moc_output = build.GeneratedList(moc_gen) - [moc_output.add_file(os.path.join(state.subdir, a)) for a in moc_sources] + moc_output = moc_gen.process_files('Qt5 moc source', moc_sources, state) sources.append(moc_output) return sources diff --git a/mesonbuild/modules/windows.py b/mesonbuild/modules/windows.py index ad882cb..012f4d0 100644 --- a/mesonbuild/modules/windows.py +++ b/mesonbuild/modules/windows.py @@ -40,12 +40,10 @@ class WindowsModule: suffix = 'o' if not rescomp.found(): raise MesonException('Could not find Windows resource compiler %s.' % ' '.join(rescomp.get_command())) - res_files = mesonlib.stringlistify(args) res_kwargs = {'output' : '@BASENAME@.' + suffix, 'arguments': res_args} res_gen = build.Generator([rescomp], res_kwargs) - res_output = build.GeneratedList(res_gen) - [res_output.add_file(os.path.join(state.subdir, a)) for a in res_files] + res_output = res_gen.process_files('Windows resource', args, state) return res_output def initialize(): |