diff options
author | Matthias Kretz <kretz@kde.org> | 2007-07-09 15:27:27 +0000 |
---|---|---|
committer | Matthias Kretz <kretz@kde.org> | 2007-07-09 15:27:27 +0000 |
commit | c0980c740022e025fb6c089092f03992ac8a90ba (patch) | |
tree | e3cf833e605e44f9dd8324185f63c975e05d8dbf /CMakeLists.txt | |
parent | 789a43a8e400806a43b043860ca65d2ff538f8ac (diff) | |
download | extra-cmake-modules-c0980c740022e025fb6c089092f03992ac8a90ba.tar.gz extra-cmake-modules-c0980c740022e025fb6c089092f03992ac8a90ba.tar.bz2 |
As posted to kde-buildsystem:
I replaced kde4automoc.cmake with a C++/QtCore based program that can run more
efficient.
Instead of creating a <targetname>.automoc file that is added to the target I
create a <targetname>_automoc.cpp file now that is compiled and linked into
the target. This file #includes all moc files that are not included by other
source files. This way the automoc can, at make-time, decide what mocs need
to be compiled explicitly and linked into the target.
E.g. the following is possible now:
foo.h:
class A : public QObject
{
Q_OBJECT
...
};
foo.cpp does not #include "foo.moc"
run make - everything compiles and links fine (without mentioning the header
in KDE4_MOC_HEADERS either since the new automoc looks at all corresponding
header files from the .cpp files by itself)
now change foo.cpp to #include "foo.moc"
running make now will just work, even with the /fast target.
Next change I did was to create a <targetname>_automoc.cpp.files file to pass
the moc includes and the source files that belong to the target to the
automoc. I could have kept it on the command line but I got a report that the
command line was already too long for Windows' cmd.exe.
Implementation details:
- The messages of the automoc are written using cmake -E cmake_echo_color, so
the automoc correctly colorizes its messages now.
- The moc QProcesses are started in parallel (up to 10).
svn path=/trunk/KDE/kdelibs/; revision=685719
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 38a9971a..0a44a796 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,3 +1,4 @@ +add_subdirectory(automoc) add_subdirectory(modules) |