Pro*_*ala 5 c++ resources shader cmake
如何使用 CMake 将资源从源目录复制到构建目录的最简单方法是
file( COPY ${CMAKE_CURRENT_SOURCE_DIR}/resources DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
Run Code Online (Sandbox Code Playgroud)
但是,这仅在我调用cmake
. 我需要每次调用时 更新资源的东西make
。
例如,现在我开发了一些 GLSL 着色器。我需要同时更改 C++ 代码和 GLSL 代码,并且每次点击 compile
或run
在我的 IDE 中都需要同步所有内容(我使用 CodeBlocks 和 CMake 生成的项目文件)
简单的解决方案是制作从源目录到构建目录的软链接。但我不想手动完成(这将绕过 CMake 并使项目更加脆弱)。CMake 可以为我做吗?
只是为了完整,这就是我的整体的CMakeList.txt
样子
# ==== common header
cmake_minimum_required ( VERSION 2.8 )
project ( SimpleSimulationEngine )
if( UNIX )
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=gnu++0x" )
endif()
SET( AXULIARY_COMPILE_FLAGS "-w -O2")
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${AXULIARY_COMPILE_FLAGS}" )
SET( COMMON_SRCS "${CMAKE_SOURCE_DIR}/common" )
include_directories(
${COMMON_SRCS}
${COMMON_SRCS}/algorithms
${COMMON_SRCS}/math
${COMMON_SRCS}/SDL2OGL3
)
set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake_utils )
find_package( OpenGL REQUIRED )
find_package( GLEW REQUIRED )
find_package( GLU REQUIRED )
find_package( SDL2 REQUIRED )
# ==== Particular build target
add_executable ( test_SphereShader test_SphereShader.cpp )
target_link_libraries( test_SphereShader ${OpenGL_LIBRARY} ${GLU_LIBRARY} ${GLEW_LIBRARY} ${SDL2_LIBRARY} )
file( COPY ${CMAKE_CURRENT_SOURCE_DIR}/shaders DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
Run Code Online (Sandbox Code Playgroud)
您可以提供自定义目标,将其变成二进制文件的依赖项test_SphereShader
:
ADD_CUSTOM_TARGET(
copy_shader_files
${CMAKE_COMMAND}
-D SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
-D DESTINATION_DIR=${CMAKE_CURRENT_BINARY_DIR}
-P CopyFile.cmake
COMMENT "Copying Files for target: test_SphereShader" VERBATIM
)
ADD_DEPENDENCIES ( test_SphereShader copy_shader_files )
Run Code Online (Sandbox Code Playgroud)
使用自定义目标会使用CopyFile.cmake
包含复制命令的脚本文件调用新的 CMake 实例:
file( COPY ${CMAKE_CURRENT_SOURCE_DIR}/shaders DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
Run Code Online (Sandbox Code Playgroud)
这样每次make
或make test_SphereShader
调用时都会复制文件。您甚至可以手动复制正在通话的内容make copy_shader_files
。
归档时间: |
|
查看次数: |
3378 次 |
最近记录: |