diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2014-04-06 21:21:26 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2014-04-06 21:21:26 +0300 |
commit | e2e95c7bf2920a7a515e19926534f9b81338e736 (patch) | |
tree | 79841c173a6a6ec0d049699b57fee5c2cd8645c6 | |
parent | c55ceee0801de9e4ac5ed0106920e88e6f021528 (diff) | |
download | meson-e2e95c7bf2920a7a515e19926534f9b81338e736.zip meson-e2e95c7bf2920a7a515e19926534f9b81338e736.tar.gz meson-e2e95c7bf2920a7a515e19926534f9b81338e736.tar.bz2 |
Allow source files to include moc files manually.
-rw-r--r-- | ninjabackend.py | 11 | ||||
-rw-r--r-- | test cases/frameworks/4 qt5/manualinclude.cpp | 9 | ||||
-rw-r--r-- | test cases/frameworks/4 qt5/manualinclude.h | 11 | ||||
-rw-r--r-- | test cases/frameworks/4 qt5/meson.build | 7 |
4 files changed, 37 insertions, 1 deletions
diff --git a/ninjabackend.py b/ninjabackend.py index d29ddb4..eb4c579 100644 --- a/ninjabackend.py +++ b/ninjabackend.py @@ -811,7 +811,16 @@ class NinjaBackend(backends.Backend): elem = NinjaBuildElement(outfilename, rule.name, infilename) elem.write(outfile) if self.is_compilable_file(outfilename): - src_deps.append(outfilename) + if rule.name == 'moc_hdr_compile': + include_mocs = target.get_original_kwargs().get('include_moc_files', True) + if not isinstance(include_mocs, bool): + raise InvalidArguments('Include_moc_files kwarg must be boolean.') + if include_mocs: + src_deps.append(outfilename) + else: + other_deps.append(outfilename) + else: + src_deps.append(outfilename) else: other_deps.append(outfilename) if rule.name == 'moc_src_compile': #HACK diff --git a/test cases/frameworks/4 qt5/manualinclude.cpp b/test cases/frameworks/4 qt5/manualinclude.cpp new file mode 100644 index 0000000..b5f5674 --- /dev/null +++ b/test cases/frameworks/4 qt5/manualinclude.cpp @@ -0,0 +1,9 @@ +#include<QCoreApplication> +#include"manualinclude.h" + +#include"moc_manualinclude.cpp" + +int main(int argc, char **argv) { + ManualInclude mi; + return 0; +} diff --git a/test cases/frameworks/4 qt5/manualinclude.h b/test cases/frameworks/4 qt5/manualinclude.h new file mode 100644 index 0000000..c81c20e --- /dev/null +++ b/test cases/frameworks/4 qt5/manualinclude.h @@ -0,0 +1,11 @@ +#ifndef MANUALINCLUDE_H_ +#define MANUALINCLUDE_H_ + + +#include<QObject> + +class ManualInclude : public QObject { + Q_OBJECT +}; + +#endif diff --git a/test cases/frameworks/4 qt5/meson.build b/test cases/frameworks/4 qt5/meson.build index dc0a2d3..237db33 100644 --- a/test cases/frameworks/4 qt5/meson.build +++ b/test cases/frameworks/4 qt5/meson.build @@ -28,3 +28,10 @@ deps : qt5core) test('q5moc', q5moc) +q5maninclude = executable('q5maninclude', +sources : 'manualinclude.cpp', +moc_headers : 'manualinclude.h', +include_moc_files : false, +deps : qt5core) + +test('q5maninclude', q5maninclude) |