我试图说服cmake / cpack构建一个共享库包(组件lib
)和一个开发包(组件dev
)。
lib
组件应该只包含共享库,并且应该没有依赖项。
dev
组件应该只包含头文件,并且应该取决于lib
组件。
这是我的CMakeLists.txt
文件:
cmake_minimum_required(VERSION 3.5)
project(libmy)
add_library(my SHARED src/main/my.c)
target_include_directories(my PUBLIC include)
set(CPACK_GENERATOR "DEB")
set(CPACK_PACKAGE_CONTACT "peter.spierenburg@nautel.com")
install(TARGETS my
LIBRARY
DESTINATION /usr/local/lib
COMPONENT lib)
install(FILES include/my.h
DESTINATION /usr/local/include
COMPONENT dev)
set(CPACK_DEB_COMPONENT_INSTALL ON)
set(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS ON)
include(CPack)
cpack_add_component(lib REQUIRED)
cpack_add_component(dev DEPENDS lib)
构建让我有两个deb包libmy-0.1.1-Linux-dev.deb
和libmy-0.1.1-Linux-lib.deb
。但是,dev
包不依赖于lib
包。