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

pull/15/head
Jussi Pakkanen 11 years ago
parent 44361baff1
commit 55dba78889
  1. 11
      ninjabackend.py
  2. 3
      test cases/frameworks/4 qt5/manualinclude.cpp
  3. 7
      test cases/frameworks/4 qt5/manualinclude.h
  4. 14
      test cases/frameworks/4 qt5/meson.build
  5. 9
      test cases/frameworks/4 qt5/moctest.cpp

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

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

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

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

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