CMake копирует файлы только при перезагрузке, а не при сборке

Я использую CMake в CLion IDE и в своем CMakeLists.txt использую следующую команду, чтобы скопировать некоторые файлы ресурсов в двоичный каталог:

file(COPY ${CMAKE_SOURCE_DIR}/res DESTINATION ${CMAKE_BINARY_DIR})

Это работает всякий раз, когда мой проект CMake перезагружается в CLion. Однако всякий раз, когда я просто пытаюсь построить, файлы больше не копируются. Как я могу это исправить? Я использую неправильную команду?


person user3487347    schedule 16.02.2015    source источник
comment
Это по дизайну. file(COPY ...) запускается, когда cmake регенерирует ваш проект, а не во время сборки.   -  person drescherjm    schedule 16.02.2015
comment
Итак, есть ли что-то, что делает то же самое, что и file(COPY ...), но работает при каждой сборке?   -  person user3487347    schedule 16.02.2015


Ответы (2)


Используйте 1_:

add_custom_target(copy_res_directory ALL
    COMMAND ${CMAKE_COMMAND} -E copy_directory 
        "${CMAKE_SOURCE_DIR}/res" "${CMAKE_BINARY_DIR}/res"
    COMMENT "Copy res directory to build tree"
    VERBATIM)
person jet47    schedule 16.02.2015

Используйте 1_

person steveire    schedule 16.02.2015