2016-07-26 2 views
0

내 프로젝트 구조 :CMake의 다른 디렉토리에서 실행 파일을 참조하는 방법?

/external-source-generating-tool 
/external-source-generating-tool/CMakeLists.txt 
/external-source-generating-tool/*.cpp 
/src 
/src/CMakeLists.txt 
/src/*.cpp 
/CMakeLists.txt 

CMakeLists.txt :

add_subdirectory(external-source-generating-tool) 
add_subdirectory(src) 

/src/CMakeLists.txt :

add_custom_command(OUTPUT generated-source.cpp 
    COMMAND external-source-generating-tool -o generated-source.cpp 
    MAIN_DEPENDENCY external-source-generating-tool 
    COMMENT "Generating...") 

add_executable(my-app source1.cpp generated-source.cpp) 

문제는 /src/CMakeLists.txtexternal-source-generating-tool을 찾을 수 있습니다 :

Error:Cannot find source file:
external-source-generating-tool
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx

external-source-generating-tool/src/CMakeLists.txt에서 올바르게 호출 하시겠습니까?

+1

오류 메시지에 따르면'외부 소스 생성 도구 '를'add_executable()'의 ** 소스 파일 **로 추가하려고합니다. 실행을위한'외부 소스 생성 도구'실행 가능 *을 찾을 수 없다는 것은 흔한 일이 아닙니다. – Tsyvarev

+0

정말 보였습니다. 문제는'MAIN_DEPENDENCY external-source-generating-tool' 매개 변수에있었습니다. 나는 그것을 제거하고 지금은 모두 잘 작동합니다. –

답변

0

MAIN_DEPENDENCY external-source-generating-tool 매개 변수가 add_custom_command 인 문제가있었습니다.

add_custom_command(OUTPUT generated-source.cpp 
    COMMAND external-source-generating-tool -o generated-source.cpp 
    DEPENDS external-source-generating-tool 
    COMMENT "Generating...") 

을 그리고 지금은 모두 잘 작동 : 나는 DEPENDS external-source-generating-tool하여 대체했다.

관련 문제