cmake install не запускает пользовательскую команду - PullRequest
0 голосов
/ 18 января 2019

В моем проекте я использую add_custom_command для генерации выходного файла:

    add_custom_command(
        OUTPUT ${LIB_NAME}
        # commands
    )
    add_custom_target(Core-static DEPENDS ${LIB_NAME})

У меня есть инструкция по установке библиотеки:

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${LIB_NAME}"
        DESTINATION "${CORE_INSTALL_DIR}/lib/"
)

Когда я вручную собираю Core-static target, я могу успешно запустить установку. Однако запуск установки не вызывает пользовательскую команду, и библиотека не создается, что приводит к ошибке. Кроме того, по какой-то причине перестройка решения (в Visual Studio) не запускает сборку проекта Core-static.

1 Ответ

0 голосов
/ 18 января 2019

В CMake установка триггеров only ALL (pseudo-) target.

Чтобы сделать ваш файл инсталлируемым, вам нужно заставить цель ALL создать ваш файл. В настоящее время ваша пользовательская цель Core-static не является по умолчанию (по ALL target). Чтобы это исправить, добавьте ключевое слово ALL при создании цели:

add_custom_target(Core-static ALL DEPENDS ${LIB_NAME})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...