CMake更改强制DESTINATION目录名称(安装目标)

Joh*_*Doe 1 c++ windows cmake

我正在尝试将install目标添加到我的库中。我的源代码和头文件位于src/.

我的文件的相关块CMakeLists.txt

install(
    TARGETS "${PROJECT_NAME}"
    EXPORT ionir-config LIBRARY
    DESTINATION ${CMAKE_INSTALL_LIBDIR} # Destination is relative to ${CMAKE_INSTALL_PREFIX}.
)

install(
    EXPORT ionir-config
    NAMESPACE ionir::
    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ionir
)

install(
    DIRECTORY src
    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
    FILES_MATCHING PATTERN "*.h" PATTERN "LICENSE" # Match only header files & LICENSE file.
)
Run Code Online (Sandbox Code Playgroud)

问题是安装后,输出目录的名称是src

目录输出为 src 而不是 ionir

我希望它是ionir,否则我必须像这样导入文件:

install(
    TARGETS "${PROJECT_NAME}"
    EXPORT ionir-config LIBRARY
    DESTINATION ${CMAKE_INSTALL_LIBDIR} # Destination is relative to ${CMAKE_INSTALL_PREFIX}.
)

install(
    EXPORT ionir-config
    NAMESPACE ionir::
    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ionir
)

install(
    DIRECTORY src
    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
    FILES_MATCHING PATTERN "*.h" PATTERN "LICENSE" # Match only header files & LICENSE file.
)
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Tsy*_*rev 7

为了避免将目录名称添加到安装路径中,请使用斜杠( )终止该目录/

install(
    DIRECTORY src/
    ...
)
Run Code Online (Sandbox Code Playgroud)

安装命令的文档中明确说明了这一点:

每个目录名称的最后一个部分将附加到目标目录,但可以使用尾部斜杠来避免这种情况,因为它会将最后一个部分留空。