我想補充一個CMake的目標其中,發時,將觸發以下內容:在cmake命令中使用子殼體或管道?
rm $(find "${CMAKE_SOURCE_DIR}" -name "*.rej" -or -name "*.orig")
我嘗試這樣做:
add_custom_target(pclean
COMMAND bash -c "rm $(find \"${CMAKE_SOURCE_DIR}\" -name \"*.rej\" -or -name \"*.orig\")")
這:
但既不工程。我應該如何做到這一點?我應該使用類似add_custom_command
?
注意:這裏的問題不是引號。因此,如果我使用:
add_custom_target(pclean
COMMAND bash -c "find "${CMAKE_SOURCE_DIR}" -name \"*.rej\" -or -name \"*.orig\"")
我得到的*.orig
和*.rej
文件列表。
@Florian:引號不是問題。 – einpoklum
你可以使用'ADDITIONAL_MAKE_CLEAN_FILES'屬性嗎? 例如'SET(addfiles foo bar) set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES「$ {addfiles}」)'要獲取要刪除的文件列表,可以使用'file(GLOB ...)'命令。 – vre
@vre:我不知道這件事...會考慮它。 ...哦,等等,這不會導致'make clean'去除這些文件嗎?我不希望這種情況發生。 – einpoklum