Alex Neundorf
81c43b4fb6
automoc: handle the case when the developer includes the wrong mocfile
...
There are multiple/many places in KDE where the developer includes
moc_foo.cpp, and expects moc to run on foo.cpp, instead of foo.h.
He should use foo.moc, but right now this is handled by automoc4,
so we must stay compatible. So support this too, but warn about
it.
Alex
2011-11-10 22:12:03 +01:00
Alex Neundorf
7242822897
automoc: rework the checking for the matching header, to give better warnings
...
Alex
2011-11-10 22:12:03 +01:00
Alex Neundorf
d08bc32bc2
automoc: stricter checking for what file is included
...
foo.cpp must include foo.moc to have itself processed by moc
Alex
2011-11-10 22:11:32 +01:00
Stephen Kelly
b8c8cab242
Merge remote-tracking branch 'origin/master' into automoc_qt5
2011-11-10 15:46:13 +01:00
Stephen Kelly
bafe5cc6e9
Fix style.
2011-11-10 00:57:21 +01:00
Stephen Kelly
74b9392eb9
Update comments and method names to not be Qt4 specific.
2011-11-09 23:26:09 +01:00
Stephen Kelly
812dab067e
Don't assume the existence of QT_MAJOR_VERSION.
...
Also handle Qt5SrcTools_MAJOR_VERSION.
2011-11-09 23:20:20 +01:00
David Cole
a5579b76f0
Merge topic 'FixAutomocFromCCMakeFromPATH'
...
83d02ee
make automoc work when using ccmake via PATH (#12551 )
2011-11-08 14:43:38 -05:00
David Cole
3452dadf89
Merge topic 'AddMocOptionsToAutomoc'
...
2c648ab
add documentation for the AUTOMOC_MOC_OPTIONS property
52719a1
automoc: fix #12541 , support moc options
2011-11-08 14:42:51 -05:00
David Cole
6c2f30822b
Merge topic 'DontCrashAutomocWithEmptyCompileDefs'
...
1ecc55a
Automoc: fix the fix, need to use std::string, not just char* pointer
8c8305f
don't crash in automoc with empty COMPILE_DEFINITIONS property
2011-11-08 14:42:46 -05:00
Alex Neundorf
83d02ee52b
make automoc work when using ccmake via PATH ( #12551 )
...
In ccmake, cmake::GetCMakeCommand() returns "/cmake" when ccmake
was started from the PATH, i.e. by simply running "ccmake"
Alex
2011-11-03 22:55:42 +01:00
Stephen Kelly
c208ab8d5c
Also run moc automatically with Qt5.
...
The method of running moc hasn't changed in Qt5.
2011-11-01 14:48:45 +01:00
Alex Neundorf
52719a1d66
automoc: fix #12541 , support moc options
...
This commit adds a new target property AUTOMOC_MOC_OPTIONS, which
can be set to add extra options for the moc invocations done via automoc.
This is equivalent to the OPTIONS parameter in the qt4_wrap_cpp() macro.
Alex
2011-11-01 14:33:11 +01:00
Alex Neundorf
1ecc55aa7b
Automoc: fix the fix, need to use std::string, not just char* pointer
...
We need to take a copy of the property values, since the returned
char* pointer is reused by the following GetProperty() calls
Alex
2011-11-01 13:59:14 +01:00
Alex Neundorf
8c8305f286
don't crash in automoc with empty COMPILE_DEFINITIONS property
...
Reported by Laszlo Papp:
http://www.cmake.org/pipermail/cmake/2011-October/047089.html
Alex
2011-10-31 22:07:12 +01:00
Alex Neundorf
5e8e9ad68c
automoc: always run moc on the cpp file if there is a foo.moc included
...
This makes automoc behaves as the documentation says.
If there is a #include "foo.moc" in the source file, moc
will be executed on foo.cpp.
Before it was also executed on foo.cpp, but only if foo.cpp
contained a Q_OBJECT macro, otherwise moc was executed on
foo.h. This was confusing, and this change also shouldn't break
anything, since the headers are moc'ed anyway if they contain
a Q_OBJECT macro.
Alex
2011-10-22 21:16:39 +02:00
Alex Neundorf
ea8ac9f5dc
Add copyright notices
...
Alex
2011-10-22 19:43:34 +02:00
Alex Neundorf
56aa6ffae7
automoc:run moc on the header if the source file contains include "foo.moc"
...
This fixes #12533 .
Before automoc did not check the header if the source file contained a
statement, now it does.
Additionally, moc is now only run on explicitely listed headers which
contain a Q_OBJECT macro.
Alex
2011-10-22 19:38:39 +02:00
Stephen Kelly
7bf2c1aa3e
Create moc files in the current binary dir, not the top level.
2011-08-25 21:39:51 +02:00
David Cole
920a046015
QtAutomoc: Eliminate compiler warning
2011-08-19 14:18:11 -04:00
Alex Neundorf
71165e943e
Silence warning in automoc: use long instead of int
...
Alex
2011-08-18 19:34:49 +02:00
Alex Neundorf
1879bcc09c
Fix build: use std::ios::out|ios::trunc instead of std::ios_base::out
...
Alex
2011-08-18 18:53:14 +02:00
Alex Neundorf
afb3edc181
Fix warnings
...
Alex
2011-08-17 00:49:12 +02:00
Alex Neundorf
add30e9008
Fix build: non-void function must return a value
...
Alex
2011-08-17 00:39:21 +02:00
Alex Neundorf
d045fd4ec5
Nicer progress message for the automoc target
...
Alex
2011-08-16 02:00:36 +02:00
Alex Neundorf
c27607baf8
Refactor SetupAutomocTarget() so it can be run after creating the target
...
This makes it easier to move it from InitialPass() to some other
location, e.g. FinalPass() or something else.
Alex
2011-08-16 01:27:30 +02:00
Alex Neundorf
58b7fe6545
Use cout instead of printf()
...
Alex
2011-08-14 17:17:01 +02:00
Alex Neundorf
72caf4d178
Add the generated automoc.cpp file to the cleaned files
...
Alex
2011-08-14 17:06:34 +02:00
Alex Neundorf
ddb517d014
Color output when running moc
...
Alex
2011-08-14 16:43:04 +02:00
Alex Neundorf
93032953af
Initialize verbose based onb the env.var.
...
Alex
2011-08-14 15:58:09 +02:00
Alex Neundorf
ace121534d
Move code for parsing a cpp-file from the big loop to separate function
...
Alex
2011-08-14 15:58:09 +02:00
Alex Neundorf
735a5bb321
Fix line lengths
...
Alex
2011-08-14 15:58:09 +02:00
Alex Neundorf
126c6ead77
Add the cmake module required currently for automoc
...
Alex
2011-08-14 15:58:00 +02:00
Alex Neundorf
de91feb367
Remove the need to check for .h/.cxx during buildtime
...
Instead it now relies on cmake time to put that information
correctly into AutomocInfo.cmake
Alex
2011-08-14 15:53:50 +02:00
Alex Neundorf
d65689a3bd
Add actual automoc code from automoc
...
It already works :-)
Needs more refactoring, e.g. using the cmake facilities to turn a string
into a vector etc.
Also still missing is the part which creates the custom target.
Alex
2011-08-14 15:53:38 +02:00
Alex Neundorf
d1c0a5fce6
Start implementing skeleton for automoc in cmake
...
Alex
2011-08-14 15:45:13 +02:00
Alex Neundorf
a65011baf1
Start work on automoc: add empty cmQtAutomoc class
...
Alex
2011-08-07 12:02:46 +02:00