Прежде всего, я новичок в CMake. Я не знаю, что означает аргумент COMPONENT
команды install
, и я не понимаю документацию CMake для этого. Может ли кто-нибудь объяснить это более подробно? Будет лучше, если вы дадите мне пример.
Для команды CMake "install", что может сделать аргумент COMPONENT?
Ответ 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)