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

Для команды CMake "install", что может сделать аргумент COMPONENT?

Прежде всего, я новичок в CMake. Я не знаю, что означает аргумент COMPONENT команды install, и я не понимаю документацию CMake для этого. Может ли кто-нибудь объяснить это более подробно? Будет лучше, если вы дадите мне пример.

4b9b3361

Ответ 1

Вы можете группировать цели установки в компоненты, например "docs", "libs", "runtime" и т.д.

add_library(libone libone.c)
add_executable(one main1.c)
install(TARGETS libone one DESTINATION /somedir COMPONENT comp_one)

add_library(libtwo libtwo.c)
add_executable(two main2.c)
install(TARGETS libtwo two DESTINATION /somedir COMPONENT comp_two)

Это позволяет запускать cmake -DCOMPONENT=comp_one -P {your_build_dir}/cmake_install.cmake для установки только библиотеки libone и одного исполняемого файла. Когда вы выпускаете make install, все компоненты устанавливаются.

Ответ 2

Существует три способа использования команды установки в CMake.

(1) Установить исполняемый файл

INSTALL(TARGETS ExecutableTarget RUNTIME DESTINATION FOLDER_LOCATION)

(2) Установить статическую библиотеку

INSTALL(TARGETS StaticLibraryTarget ARCHIVE DESTINATION FOLDER_LOCATION)

(3) Установка динамической библиотеки

INSTALL(TARGETS SharedLibraryTarget LIBRARY DESTINATION FOLDER_LOCATION)