リリース予定のCMake 2.8.6には、「AUTOMOC」と呼ばれる新しいターゲットプロパティがあります。
(あなたがガイドまたは例として使用することができます)この機能のテストは、ここに発見された:
http://cmake.org/gitweb?p=cmake.git;a=tree;f=Tests/QtAutomoc;h=7dae3b16a54dc0b2f63bbfa5c218c48b9bbf34a9;hb=nightly-master
非常に単純なCMakeLists.txtファイルはここにある:
http://cmake.org/gitweb?p=cmake.git;a=blob;f=Tests/QtAutomoc/CMakeLists.txt;h=4a5ff1099ba5249a6f22eea745a031b76e6f440f;hb=nightly-master
この機能を使用すると、cmakeはヘッダーのQ_OBJECTをスキャンし、自動的にmocを実行します。
あなたはCMakeの2.8.6の最終リリース前にそれを試してみたい場合は、ここでのリリース候補の1をダウンロードすることができますが:
http://cmake.org/files/v2.8/?C=M;O=D
「-rc2」のファイルが含まれませんAUTOMOCプロパティ。ここで
は "cmakeの--help-プロパティAUTOMOC" を実行しているからヘルプテキストです:
cmake version 2.8.6-rc2
AUTOMOC
Should the target be processed with automoc (for Qt projects).
AUTOMOC is a boolean specifying whether CMake will handle the Qt moc
preprocessor automatically, i.e. without having to use the
QT4_WRAP_CPP() macro. Currently Qt4 is supported. When this property
is set to TRUE, CMake will scan the source files at build time and
invoke moc accordingly. If an #include statement like #include
"moc_foo.cpp" is found, the Q_OBJECT class declaration is expected in
the header, and moc is run on the header file. If an #include
statement like #include "foo.moc" is found, then a Q_OBJECT is
expected in the current source file and moc is run on the file itself.
Additionally, all header files are parsed for Q_OBJECT macros, and if
found, moc is also executed on those files. The resulting moc files,
which are not included as shown above in any of the source files are
included in a generated _automoc.cpp file, which is
compiled as part of the target.This property is initialized by the
value of the variable CMAKE_AUTOMOC if it is set when a target is
created.