如何使用cmake编译.fx文件

时间:2012-08-12 18:47:44

标签: directx cmake directx-11

根据this MSDN blog entry,建议使用fxc编译.fx效果文件,作为构建过程的一部分。给定一个fx文件列表,如何告诉cmake将一些添加到我的项目文件(VS2010)?

1 个答案:

答案 0 :(得分: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可能会对您有所帮助。