更改资源文件后如何在 CLion 中构建 CMake

How to make CMake build in CLion after changes in resource files

在一个CLion项目中,我需要将一些资源复制到二进制文件夹中。它们是 GLSL 着色器,所以当我编辑它们时,我希望能够看到结果。不幸的是,CLion 仅在源发生更改时重建项目,因此如果我编辑 GLSL 文件但保持源文件不变,CLion 将不会重建,因此新文件不会复制到二进制目录。我该如何解决这个问题?

这是我将文件移动到目标 OpenGL_Test 的二进制目录中的代码:

add_custom_command(TARGET OpenGL_Test PRE_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/res 
    $<TARGET_FILE_DIR:OpenGL_Test>/res
)

您可以使用 add_custom_targetALL 选项,这将强制 CMake 在每次构建时复制目录:

add_custom_target(copy_shaders ALL
    COMMAND ${CMAKE_COMMAND} -E copy_directory 
        "${CMAKE_SOURCE_DIR}/res" "$<TARGET_FILE_DIR:OpenGL_Test>/res"
    COMMENT "Copy shaders to build tree"
    VERBATIM)