【发布时间】:2018-02-22 16:05:09
【问题描述】:
我正在使用 CMake 3.10.1 并尝试使用 CPack 为库生成档案,但我无法将接口包含目录添加到档案中。
库和生成的导出文件按预期添加,但是包含目录(使用target_include_directories(... PUBLIC ...) 添加的完全缺失。
CMakeLists.txt:
cmake_minimum_required(VERSION 3.5)
project(Test VERSION 1.0.0 LANGUAGES CXX)
add_library(${PROJECT_NAME} SHARED foo.cpp) #add sources and executable
target_include_directories(${PROJECT_NAME} PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/inc>
$<INSTALL_INTERFACE:inc>
)
install(TARGETS ${PROJECT_NAME}
EXPORT ${PROJECT_NAME}
INCLUDES DESTINATION inc
PUBLIC_HEADER DESTINATION inc
LIBRARY DESTINATION lib
)
install(EXPORT ${PROJECT_NAME} DESTINATION .)
include(CPack)
我的源目录的内容:
├── CMakeLists.txt
├── foo.cpp
└── inc
└── foo.h
cpack -G TGZ .生成的tgz的内容
├── lib
│ └── libTest.so
├── Test.cmake
└── Test-noconfig.cmake
知道为什么它会丢失inc 目录吗?
【问题讨论】: