我在资源目录中有一些着色器文件' Shaders'。我希望我的应用程序在构建之前每次在其中的一个文件内部发生更改时将此文件夹复制到运行时目录。我怎样才能做到这一点?
现在我在这里使用它:
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 :(得分: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()