为什么 cmake install directory 命令会安装空目录?

问题描述 投票:0回答:1

这是我用于导出库的 cmake(版本 3.22.1 ubuntu)命令,它还会复制那些没有匹配文件的目录:

install(DIRECTORY ${CMAKE_BINARY_DIR}
    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
    OPTIONAL
    FILES_MATCHING PATTERN "*.h"
)

如何只安装至少有一个匹配文件的文件夹?

cmake
1个回答
0
投票

根据我的研究,不同版本的 CMake 提供了不同的工具来克服这个问题。

Cmake 3.22 版本建议使用 PUBLIC_HEADER:

add_library(mylib STATIC ...)
set_target_properties(mylib PROPERTIES PUBLIC_HEADER mylib.h)
include(GNUInstallDirs)
install(TARGETS mylib
        PUBLIC_HEADER
          DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/myproj
)
© www.soinside.com 2019 - 2024. All rights reserved.