2016-05-15 11 views
0

私はリソースディレクトリ 'Shaders'の内部にいくつかのシェーダファイルを持っています。私はビルドする前に、その中に1つのファイルの内部に変更があるたびに、このフォルダをランタイムディレクトリにコピーするようにします。どうすればこれを達成できますか?cmakeでリソースファイルの変更を再構築する方法は?

今私はここにこれを使用する:

add_custom_command(TARGET my_app PRE_BUILD 
     COMMAND rm ARGS -rf ${CMAKE_CURRENT_BINARY_DIR}/Shaders 
     COMMAND cp ARGS -a ${CMAKE_CURRENT_SOURCE_DIR}/my_app/Viewer/Shaders ${CMAKE_CURRENT_BINARY_DIR} 
     ) 

しかし、私は構築されたシェーダがファイル自体ではなく、必要とされているので、別のファイルを変更したときに、これはのみ動作します。私に何ができる?私は仕事ができることを考え出し知って何

答えて

0

はここにこれです:

file(GLOB shaders "${CMAKE_CURRENT_SOURCE_DIR}/my_app/Viewer/Shaders/*") 
message(status Copy shaders) 
foreach(shader ${shaders}) 
    message(status "From ${shader}") 
    get_filename_component(outputFileName ${shader} NAME) 
    message(status "To ${CMAKE_CURRENT_BINARY_DIR}/Shaders/${outputFileName}") 
    configure_file(${shader} ${CMAKE_CURRENT_BINARY_DIR}/Shaders/${outputFileName} COPYONLY) 
endforeach() 
関連する問題