更改资源文件后如何在 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_target
和 ALL
选项,这将强制 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)
在一个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_target
和 ALL
选项,这将强制 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)