Jak mówi baysmith, jeśli Twoim celem jest utrzymanie katalogu źródłowego w czystości, prawdziwym rozwiązaniem jest użycie funkcji kompilacji CMake'a o nazwie "out-of-source". Jeśli jesteś w systemie Windows, ustaw "Gdzie kompilować pliki binarne" w nowym katalogu, innym niż katalog "Gdzie jest kod źródłowy". Jeśli jesteś na systemie Unix, to idzie tak:
cd <source directory>
mkdir build
cd build
cmake ..
make
Uruchamiając CMake na innym katalogu, wszystkie pliki kompilacji wejdzie do tego katalogu, a źródła pozostaną czyste. (Uwaga: katalog kompilacji nie musi znajdować się w katalogu źródłowym.) Aby uzyskać więcej informacji, zobacz CMake wiki.)
Jeśli "poza źródłem" nie działa, to udało mi się znaleźć inna opcja. Na podstawie tego, co mogę powiedzieć z pliku Qt4Macros.cmake
zainstalowanego z moim CMake 2.8, nie jest on dostępny jako parametr konfiguracyjny. Poniżej znajduje się odpowiednia linia:
SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC})
Rozwiązaniem jest zmiana wszystkich swoich MOC obejmują dyrektyw określających podfolder, który chcesz zbudować do.
#include "moc/mainwindow.moc"
Po utworzeniu katalogu moc
w moim katalogu budowy, nie było problemów z budynku, a mój plik MOC była w nowym katalogu.
Generalnie używa się kompilacji poza drzewem, aby zachować czyste źródła. Zobacz http://www.vtk.org/Wiki/CMake_FAQ#Out-of-source_build_trees – baysmith