用自己的依赖包打包多个包
CPack multiple packages with own dependencies
我在用CPack和CMake创建两个debian软件包时遇到了问题。我已经从这里做了这个例子,我确实设法创建了两个不同的debian软件包,但我希望它们每个都有自己的依赖项。生成的CMakeLists.txt如下:
<>之前cmake_minimum_required(2.8.0版)项目(MyLib)add_library (mylib mylib.cpp)add_executable (mylibapp mylibapp.cpp)target_link_libraries (mylibapp mylib)安装(目标mylib存档目的地~/下载/ComponentExampleStart/lib组件库)安装(目标mylibapp运行时目的地~/下载/ComponentExampleStart/bin组件应用程序)安装(文件mylib.h目的地~/下载/ComponentExampleStart/包括组件的标题)写入dummy_main1.c "int main(int argc, char** argv){返回0;}"add_executable (dummy_main1 dummy_main1.c)安装(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dummy_main1 DESTINATION/tmp组件头文件可选权限OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)file(WRITE dummy_main2.c "int main(int argc, char** argv){返回0}")add_executable (dummy_main2 dummy_main2.c)安装(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dummy_main2 DESTINATION/tmp组件mylibapp可选权限OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)设置(cpack_generator " deb ")设置(cpack_source_generator tgz)设置(cpack_debian_package_shlibdeps on)设置(CPACK_SET_DESTDIR "on")集(CPACK_DEB_COMPONENT_INSTALL)集(CPACK_PACKAGE_NAME " MyLib ")集(CPACK_PACKAGE_VENDOR"CMake.org")set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MyLib - CPack组件安装样例")集(CPACK_PACKAGE_VERSION 1.0.0)集(CPACK_PACKAGE_VERSION_MAJOR"1")集(CPACK_PACKAGE_VERSION_MINOR"0")集(CPACK_PACKAGE_VERSION_PATCH"0")set(CPACK_PACKAGE_INSTALL_DIRECTORY "CPack组件示例")设置(CPACK_COMPONENTS_ALL应用程序库头)集(CPACK_COMPONENT_APPLICATIONS_GROUP"运行时")集(CPACK_COMPONENT_LIBRARIES_GROUP"发展")集(CPACK_COMPONENT_HEADERS_GROUP"发展")集(CPACK_COMPONENT_LIBRARIES_DEPENDS"libxml2")集(CPACK_COMPONENT_HEADERS_DEPENDS"libxml2")集(CPACK_DEBIAN_PACKAGE_DEPENDS libusb - 1.0 - 0)设置(CPACK_PACKAGE_CONTACT "Example ")设置(cpack_package_file_name "${cmake_project_name}_${version}_${cpack_debian_package_architecture}")包括(CPack)之前(注 dummy_main1和dummy_main2使shlibdeps工作,因为它需要至少一个可执行文件的每个包)
我的目标是创建两个不同依赖关系的debian软件包,例如:
MyLib_1.0.0_amd64-Developers.deb --- depends on ---> libxml2
MyLib_1.0.0_amd64-Runtime.deb --- depends on ---> lubusb-1.0-0
,但我没有找到CPACK宏来做到这一点。我读了很多论坛和文档,但没有一个我测试过的工作为我。CPACK_DEBIAN_PACKAGE_DEPENDS宏工作得很好,但是它为两个包设置了相同的依赖项。有什么方法可以实现我的目标吗?我使用CMake 2.8来做这件事。
谢谢!
我终于成功地隔离了依赖项。问题是我使用的CMake版本(2.8)。这可以在最新版本(目前使用3.3)中使用CPack宏来完成:CPACK_DEBIAN__PACKAGE_DEPENDS
相关文章:
- 没有为自己的结构调用列表推回方法
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- 在c++中为我自己的基于指针的数组分配内存的正确方法
- C++从对象自己的类中删除对象
- 使用 std::optional,而不是自己的结构
- 如何使用发送数据包所花费的时间计算两个节点之间的距离?
- 子轴围绕父轴而不是他自己的轴旋转
- 这个C++编译器优化(在自身的实例上调用对象自己的构造函数)的名称是什么,它是如何工作的?
- C++ 如何为自己的迭代器类从迭代器转换为const_iterator?
- 重载 + 自己的类和 std::string 的运算符
- 类无法访问自己的私有静态 constexpr 方法 - Clang bug?
- 是否可以在不填充自己的参数的情况下将模板函数作为参数传递?
- 如何访问模板参数自己的模板参数?
- 将矩阵乘以我自己的输入的向量
- 您应该在什么时候创建自己的异常类型
- 派生类是从基类继承 v 指针并仅使用它,还是也有自己的 v 指针?
- string1 == string2 和你自己的 for 循环比较有什么区别?
- 如何链接我自己的 .so 文件而不是操作系统捆绑包 .so 文件?
- 用自己的依赖包打包多个包
- 开始我自己的简单UI工具包