2011-08-11 3 views
5

현재 qake를 사용하여 빌드 된 프로젝트를 CMake로 전송하고 있습니다. qmake를 가진 버전에서 CMake + Qt : moc/ui 출력 디렉토리를 정의하십시오.

는 개의 .pri 파일에 깨끗한 소스를 유지, 특정 디렉토리에 MOC 임시 파일을 생성하도록 허용
MOC_DIR = .moc/$${PLATFORM_NAME} 

있었다. CMake와 같은 일을하는 방법?

참고 : CMake를 사용하면 FindQt4.cmake 패키지와 QT4_WRAP_CPP() 명령을 사용합니다.

+5

일반적으로 소스가 깨끗한 상태로 유지하기 위해 트리 외부 빌드를 사용합니다. http://www.vtk.org/Wiki/CMake_FAQ#Out-of-source_build_trees를 참조하십시오. – baysmith

답변

4

baysmith가 말하듯이 소스 디렉토리를 깨끗하게 유지하는 것이 목표라면 CMake의 "out-of-source" 빌드 기능을 사용하는 것이 좋습니다. Windows 사용자 인 경우 "바이너리를 빌드 할 위치"를 "소스 코드가있는 곳"과 다른 새 디렉토리로 설정하십시오. 유닉스에 있다면, 그것은 이런 식입니다 :

cd <source directory> 
mkdir build 
cd build 
cmake .. 
make 

을 다른 디렉토리에 CMake를 실행하여 빌드의 모든 파일이 해당 디렉토리로 이동합니다, 그리고 소스는 깨끗하게 유지됩니다. (참고 : 빌드 디렉토리는 소스 디렉토리 내에있을 필요는 없습니다. 자세한 내용은 CMake wiki을 참조하십시오.)

"소스 외부"가 작동하지 않으면 하나를 찾을 수있었습니다 다른 옵션. 내 CMake 2.8과 함께 설치된 Qt4Macros.cmake 파일에서 알 수 있듯이 config 매개 변수로 액세스 할 수 없습니다.

SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC}) 

해결 방법은 당신의 MOC의 모든 당신이 구축하고자하는 하위 폴더를 지정하는 지시어를 포함 변경하는 것입니다 : 여기에 해당 줄입니다.

#include "moc/mainwindow.moc" 

내 빌드 디렉토리 안에 moc 디렉토리를 생성 한 후, 아무런 문제 건물 없었다, 내 MOC 파일은 새 디렉토리에 있었다.

관련 문제