をコピーCMakeのでビルドディレクトリにソースディレクトリからリソースをコピーする方法が最も簡単な方法は、しかし、これはビルドディレクトリ内のリソースを更新しCMakeの:(などGLSLシェーダなど)ソフトリンクリソースまたは各complilation
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/resources DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
です私が電話するのはcmake
です。make
に電話する度に、リソースを更新するものが必要です。
など。今私はいくつかのGLSLシェーダーを開発しています。私は同時にC++コードとGLSLコードの両方を変更する必要がある、と私はすべては私が私のIDEでcompile
またはrun
を打つたびに同期されている必要
簡単な解決策だろう(私はCMakeのによって生成されたプロジェクトファイルでコードブロックを使用します) ソフトリンクをソースディレクトリからビルドディレクトリにする必要があります。しかし、私は手動で(CMakeをバイパスして、プロジェクトをより壊れやすくする)、そうしたくありません。 CMakeは私のためにそれをすることができますか?
だけcompletnessのために、これは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})
[この質問](http://stackoverflow.com/questions/28533760/cmake-only-copies-files-on-reload-not-build)にチェックを入れましたか?どちらの答えもあなたの目的に合っています。 – Tsyvarev