对于CMake的“安装”命令,COMPONENT参数可以做什么?

时间:2012-02-08 08:49:25

标签: cmake

我不知道install()命令的参数COMPONENT是什么意思,我不明白这个的CMake文档。更详细的是什么?

一个例子是什么?

2 个答案:

答案 0 :(得分:48)

您可以将安装目标分组到组件中,例如“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库和one可执行文件。当您发布make install时,会安装所有组件。

答案 1 :(得分:-12)

有三种方法可以在CMake中使用install命令:

  1. 安装可执行文件

    INSTALL(TARGETS ExecutableTarget RUNTIME DESTINATION FOLDER_LOCATION)
    
  2. 安装静态库

    INSTALL(TARGETS StaticLibraryTarget ARCHIVE DESTINATION FOLDER_LOCATION)
    
  3. 安装动态库

    INSTALL(TARGETS SharedLibraryTarget LIBRARY DESTINATION FOLDER_LOCATION)