ltjax
ltjax

Reputation: 16007

How can I use cmake to compile .fx files

According to this MSDN blog entry it is recommended to compile .fx effect files with fxc as part of your build process. Given a list of fx files, how do I tell cmake to add some to my project files (VS2010)?

Upvotes: 4

Views: 1748

Answers (1)

Jack Kelly
Jack Kelly

Reputation: 18667

Use find_program to find fxc and add_custom_command to build:

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)

Not being a Windows user, I'm not sure if that's exactly the right way to invoke fxc, but you can tinker with it. Note also that this doesn't link the object files into wherever they need to go. This mailing list post might help you.

Upvotes: 4

Related Questions