3
我有如下所示構建腳本片段:CMake的:自定義命令後執行文件副本運行
foreach(...)
...
add_custom_command(OUTPUT ${fn_c} ${fn_s} ${fn_p_c} {fn_p_h}
COMMAND ${PROTOBUF_PROTOC_EXECUTABLE} --proto_path=${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${proto_var} --cpp_out=. --plugin=protoc-gen-RBLRPC=${CMAKE_BINARY_DIR}/tools/protoc-gen-RBLRPC --RBLRPC_out=.
DEPENDS ${proto_var}
)
if(${M_S_} OR ${M_C_})
set(MARSHALL_RPC_FILES ${MARSHALL_RPC_FILES} ${fn_p_c})
message(status "copy marshall -------------------")
file(COPY ${CMAKE_CURRENT_BINARY_DIR}/${fn_c}
${CMAKE_CURRENT_BINARY_DIR}/${fn_s}
${CMAKE_CURRENT_BINARY_DIR}/${fn_p_h} DESTINATION ${CMAKE_SOURCE_DIR}/include/rpc/marshall)
endif()
...
endforeach(...)
複製的文件也不會產生,直到執行自定義的COMAND,但CMake的嘗試在第一次通過腳本時複製文件。我歡迎任何建議來解決這個問題,而不會劇烈地改變我的腳本。
爲了保持src完全清潔,我必須從構建目錄中包含'#include'文件,這對我來說看起來並不高雅。我的系統的一部分 –
i s $ {CMAKE_COMMAND}一個常量標識符?如果是的話,你是否參考了它的文檔? –
我選擇了你的方法,KISS,謝謝你對我的感覺:D –