2012-08-12 135 views

回答

3

使用find_program找到fxcadd_custom_command建:

find_program(FXC fxc DOC "fx compiler") 
if(NOT FXC) 
message(SEND_ERROR "Cannot find fxc.") 
endif(NOT FXC) 

add_custom_target(fx ALL) 

foreach(FILE foo.fx bar.fx baz.fx) 
    get_filename_component(FILE_WE ${FILE} NAME_WE) 
    add_custom_command(OUTPUT ${FILE_WE}.obj 
        COMMAND ${FXC} /Fo ${FILE_WE}.obj ${FILE} 
        MAIN_DEPENDENCY ${FILE} 
        COMMENT "Effect-compile ${FILE}" 
        VERBATIM) 
    add_dependencies(fx ${FILE_WE}.obj) 
endforeach(FILE) 

不是作爲一個Windows用戶,我不知道如果這正是援引fxc正確的方式,但你可以用它修補。還要注意,這不會將目標文件鏈接到他們需要去的任何地方。這mailing list post可能會幫助你。

+0

它們根本不需要鏈接 - 它們稍後由可執行文件加載。我如何將它們添加到目標中,以便在它們的源更改時生成它們? – ltjax 2012-08-13 10:14:59

+0

@ltjax:編輯。請注意'add_custom_target'和'add_dependencies'調用。 fx編譯器是否輸出'.obj'文件? – 2012-08-13 11:05:47

+0

工程就像一個魅力。任何方式我可以將源文件添加到該目標,以便他們出現在VS解決方案資源管理器中? – ltjax 2012-08-15 13:30:06