Почему CMAKE не всегда копирует ресурсы при запросе? - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть проект с некоторыми файлами активов (шейдеров), которые также часто обновляются и должны быть скопированы в папку назначения сборки каждые каждый раз, когда мой проект создается.

Прямо сейчасфайлы копируются в первый раз, но затем, когда проект перестраивается (изнутри Clion), файлы не копируются непрерывно.Например, если я удаляю их из каталога, в который они скопированы, они больше не отображаются.

Вот мой файл Cmake:

# Name for this project
set(PROJECT_NAME "3d_model")

# Choose the library for the final build
set(PROJECT_BUILD_DIR ${CMAKE_SOURCE_DIR}/bin/${PROJECT_NAME})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BUILD_DIR}/$<CONFIG>)

# Set sources
set(PROJECTS_SOURCE_DIR ${CMAKE_SOURCE_DIR}/src/projects)
set(SOURCES
  src/main.cpp
  ${INCLUDE_DIR}/glad/src/glad.c)

add_executable(${PROJECT_NAME} ${SOURCES})
target_link_libraries(${PROJECT_NAME} ${CMAKE_DL_LIBS} glfw ${GLFW_LIBRARIES})

# Copy resources
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/assets DESTINATION ${PROJECT_BUILD_DIR}/)

Вы можете увидеть в последней строкемоя попытка заставить активы проекта копировать каждый раз, когда проект создается.

Есть ли способ обеспечить это?

1 Ответ

0 голосов
/ 17 декабря 2018

add_custom_command может быть тем, что вы хотите

add_custom_command(TARGET ${ProjectName} PRE_BUILD
  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/assets ${PROJECT_BUILD_DIR}/
 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...