我在構建過程中需要一個文件處理鏈。工作流程能夠容易地確定並且由一個文件名,只有擴展變化,比如file.a - > file.b - > file.c。所以,Make的聲明式語法顯然是一個例子。但是,當我看到,對於這個的CMake會看起來像一個明確的add_custom_command對每個文件進行處理的每個步驟。CMake是否有類似Make的%替換支持?
所以,問題是,如果CMake的支持換人就像%以上製作,以便只處理的每個步驟一般規則是必需的。
我想這就像:
add_custom_command(OUTPUT %.b
COMMAND convert %.a > %.b
DEPENDS %.a)
add_custom_command(OUTPUT %.c
COMMAND convert %.b > %.c
DEPENDS %.b)
是的,我可以。但它是完全相同的*顯式*方式。這樣我需要在使用前聲明*文件。 MACRO(MY_MACRO) ... ENDMACRO(MY_MACRO) MY_MACRO( 「文件1」) MY_MACRO( 「文件2」) MY_MACRO( 「文件3」) add_custom_command(OUTPUT program.x COMMAND CXX -o program.x file1.cc file2.cc file3.cc DEPENDS file1.cc file2.cc file3.cc) 和語法表現更糟糕的是,因爲宏調用一些字符串參數,它定義文件名不帶擴展名,而在add_custom_command我們使用文件的全名。 – seas 2010-07-21 08:20:02
您可以在宏添加文件擴展名: MACRO(轉換文件DEPS) ADD_CUSTOM_COMMAND(OUTPUT $ {}文件.X COMMAND CXX -o $ {}文件.X $ {} DEPS $ DEPENDS {} DEPS) ENDMACRO(兌換 ) – 2010-07-21 10:16:39