[software development] 在这个时代,你们仍然还不会用 CMake 生成 deb 吗?
Tofloor
poster avatar
魔法师
deepin
2023-12-08 22:44
Author

标题吸睛,实际安利 cmake 构建模块:
https://gitee.com/zinface/cmake.spark-build-skeleton

  1. 先了解一下骨架构建,但本次不赘述整体的模式,本贴只说 deb 生成。

    image.png

构建测试

  • 准备一个简单的 cmake 项目

    image.png

  • 套上 cmake 的 SparkDebPackage 模块
    https://gitee.com/zinface/spark.deb-package

    image.png

    • clone 下来这个模块
    • 将里面的 cmake 目录拿出来,将原本的目录仍掉(我移进了 build 目录)
    • 从描述文件里复制前三行配置,粘贴到你的构建脚本里
    • 此时你已经得到一个生成 deb 的功能
    • 通过重新生成配置,再执行构建 package 目标就生成了一个 deb 文件
    • cmake -Bbuild 重新生成配置
    • cmake --build build --target package 执行 package 构建,等于在 build 目录中执行 make package
    • 完事,最后像某物一样往星火一仍(手动狗头,无意冒犯)

    image.png

目前我所有项目全未使用过 debian 的官方构建,虽然缺少了 tar.gz 这种由 debian 自动生成的源码包,但以这种方式简单使用好像问题不大。

最后,你们有什么建议吗。

Reply Favorite View the author
All Replies
deepin-superuser
deepin
2023-12-08 22:52
#1

好吧 我一直都是写好 debian 配置 然后 dpkg-buildpackage -b -us -uc 打包的

Reply View the author
魔法师
deepin
2023-12-08 22:54
#2
deepin-superuser

好吧 我一直都是写好 debian 配置 然后 dpkg-buildpackage -b -us -uc 打包的

一看就是大佬,请授我一膜拜applaud

Reply View the author
Ziggy
deepin
2023-12-08 23:13
#3

我是原始人,在本地装完测试再用tar封装joy

Reply View the author
艾丝妲单推人
deepin
2023-12-08 23:40
#4

我竟然真的不会sweat

Reply View the author
晚秋(lateautumn)
Moderator
2023-12-08 23:44
#5
艾丝妲单推人

我竟然真的不会sweat

agree

我这个大白也不会,但真是想学一下。

Reply View the author
fuuko
deepin
2023-12-08 23:44
#6

我刚刚才用cmake生成了一个,不过用的是cpackshamed

直接从cmake构建基本上可以完美解决交叉构建deb包的问题,解决起来比用dpkg省事不少

Reply View the author
魔法师
deepin
2023-12-09 00:06
#7
fuuko

我刚刚才用cmake生成了一个,不过用的是cpackshamed

直接从cmake构建基本上可以完美解决交叉构建deb包的问题,解决起来比用dpkg省事不少

其实我那个里面就是用的 cpack ,只不过是将通用的变量项转变成描述文件罢了,目前也就随便整点 deb 玩玩

applaud

Reply View the author
mardou
deepin
2023-12-09 01:11
#8

你讲解的流程和解决方法,适用于哪类用户呢?显然,在文中我没有看到有任何说明。对象,有时非常重要。😂

Reply View the author
魔法师
deepin
2023-12-09 01:58
#9
mardou

你讲解的流程和解决方法,适用于哪类用户呢?显然,在文中我没有看到有任何说明。对象,有时非常重要。😂

这玩意已经诞生了两年,中间经过各种调整,既然这玩意已经稳定,索性就以奇怪在方式在这里放出来(🦊)

一类是给 cmake 初级党派人士,用这种方法几乎降低95%产deb包的门槛。

二类是给 cmake 专家,对所有无 debian 目录的开源现成的 cmake 项目给加两行代码就出 deb 包。

不过高级定制还得 debian,我这玩意最多也就图一乐
like

Reply View the author