Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Directx 如何使用cmake编译.fx文件_Directx_Cmake_Directx 11 - Fatal编程技术网

Directx 如何使用cmake编译.fx文件

Directx 如何使用cmake编译.fx文件,directx,cmake,directx-11,Directx,Cmake,Directx 11,根据,建议在构建过程中使用fxc编译.fx效果文件。给定一个fx文件列表,我如何告诉cmake向我的项目文件(VS2010)中添加一些 用于查找fxc并生成: 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)

根据,建议在构建过程中使用fxc编译.fx效果文件。给定一个fx文件列表,我如何告诉cmake向我的项目文件(VS2010)中添加一些

用于查找
fxc
并生成:

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
的正确方法,但您可以修改它。还要注意,这不会将对象文件链接到它们需要去的任何地方。这可能会对您有所帮助。

它们根本不需要链接-它们稍后由可执行文件加载。如何将它们添加到目标中,以便在源代码更改时生成它们?@ltjax:Edited。注意
add_custom_target
add_dependencies
调用。fx编译器是否输出
.obj
文件?工作起来很有魅力。有没有办法将源文件添加到该目标,以便它们显示在VS解决方案资源管理器中?@ltjax:我从未使用过visual studio生成器,所以我不知道。很抱歉也许
source\u group
命令可以执行您想要的操作。