Follow Qt standards w.r.t. moc file including.

This commit is contained in:
Jussi Pakkanen 2014-04-11 23:23:05 +03:00
parent 44361baff1
commit 55dba78889
5 changed files with 13 additions and 31 deletions

View File

@ -817,16 +817,7 @@ class NinjaBackend(backends.Backend):
elem.add_item('rcc_flags', ['--name', basename])
elem.write(outfile)
if self.is_compilable_file(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)
src_deps.append(outfilename)
else:
other_deps.append(outfilename)
if rule.name == 'moc_src_compile': #HACK

View File

@ -1,7 +1,8 @@
#include<QCoreApplication>
#include"manualinclude.h"
#include"moc_manualinclude.cpp"
ManualInclude::ManualInclude() {
}
int main(int argc, char **argv) {
ManualInclude mi;

View File

@ -1,11 +1,16 @@
#ifndef MANUALINCLUDE_H_
#define MANUALINCLUDE_H_
#include<QObject>
class ManualInclude : public QObject {
Q_OBJECT
public:
ManualInclude();
signals:
int mysignal();
};
#endif

View File

@ -19,19 +19,13 @@ deps : qt5core)
test('qt5test', qt5coreapp)
# Tests for source file compilation with moc.
q5moc = executable('q5moc',
sources : 'moctest.cpp',
moc_sources : 'mocinclude.cpp',
deps : qt5core)
test('q5moc', q5moc)
# The build system needs to include the cpp files from
# headers but the user must manually include moc
# files from sources.
q5maninclude = executable('q5maninclude',
sources : 'manualinclude.cpp',
moc_sources : 'mocinclude.cpp',
moc_headers : 'manualinclude.h',
include_moc_files : false,
deps : qt5core)
test('q5maninclude', q5maninclude)

View File

@ -1,9 +0,0 @@
#include<QCoreApplication>
int mocfunc();
int main(int argc, char **argv) {
QCoreApplication app(argc, argv);
return mocfunc();
}