Подтвердить что ты не робот

Как заставить CLion запускать установку?

Я оцениваю CLion 1.2.1 в существующем проекте, который уже использует CMake. Проект состоит из нескольких библиотечных модулей и одного исполняемого файла.

У меня есть цель установки, которую я использую для сбора исполняемого файла и файла конфигурации вместе в папке bin для отладки:

...
install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_BINARY_DIR}/bin/)
install(FILES config.xml DESTINATION ${CMAKE_BINARY_DIR}/bin/)

При построении командной строки я просто запускаю:

make install

который, как и ожидалось, создает двоичные файлы и в случае успеха запускает указанные выше команды установки.

Моя проблема в том, что я не могу заставить CLion запускать цель установки. Я ожидал, что смогу создать новую конфигурацию Run/Debug, но раскрывающийся список Target: содержит только те цели, которые добавлены с помощью add_executable() и add_library().

Я также попытался добавить 'install' в опции Build в диалоговом окне настроек. Тем не менее, она запускает установку для каждой цели, включая "чистый", что не так.

4b9b3361

Ответ 1

ОБНОВЛЕНИЕ: По 2018.1 EAP, build 181.3741.16, CLION поддерживает запуск cmake install, если ваш проект определяет цели установки:


Исходный ответ:

Я не думаю, что CLion реализует эту функцию. Тем не менее, вы можете обойти это ограничение, добавив "пользовательскую цель" CMake (используя add_custom_target()), который выполнит команду make install

add_custom_target(install_${PROJECT_NAME}
                  $(MAKE) install
                  DEPENDS ${PROJECT_NAME}
                  COMMENT "Installing ${PROJECT_NAME}")

Теперь все, что вам нужно сделать, это "построить" цель install_YOUR_PROJECT_NAME из меню "целей" в CLion.

Update:

Более кросс-платформенная техника может быть следующей:

add_custom_target(install_${PROJECT_NAME}
                  "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" --target install
                  DEPENDS ${PROJECT_NAME}
                  COMMENT "Installing ${PROJECT_NAME}")