2013-01-12 6 views
0

우리는 하위 디렉토리가있는 프로젝트가 있고 하위 디렉토리 중 하나에 .cpp 및 .h 파일을 생성해야한다고 가정합시다. 사실 : 해당 디렉토리에 명령 (< 및>없이)을 실행하면 유효한 파일이 생성됩니다.Cmake가 쉘 명령을 실행할 수 없습니다.

그래서 어떻게 cmake를 사용하여 동일하게합니까?

Cmake에는 add_custom_command가 있지만 아무 작업도 수행하지 않으므로 사용할 수 없습니다. execute_process는 무언가를 실행하지만 잘못된 방식으로 실행되기 때문에 더 좋습니다.

execute_process(COMMAND "protoc -I=\".\" --cpp_out=\".\" protocol.proto" 
       WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) 

불행히도 결과는 cmake 제대로 명령을 실행할 수 없기 때문에 아무것도 없기 때문에 "protoc"인쇄 "해당 파일 또는 디렉토리". protocol.proto 파일은 단순히이 명령을 실행할 수없는 이유

와 같은 디렉토리에있는이 execute_process 호출이 CMakeLists.txt에 있습니다

추가/편집?

답변

3

당신은 인용에 COMMAND 인수를 마무리 할 필요가 없습니다 :

execute_process(COMMAND protoc -I=. --cpp_out=. protocol.proto 
       WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) 
관련 문제