2016-07-26 20 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の問題がありました。私はDEPENDS external-source-generating-toolに置き換えました:

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

そして、すべて正常に動作します。