首页 > 其他分享 >cmake 进行rpm包构建

cmake 进行rpm包构建

时间:2023-11-08 12:55:06浏览次数:49  
标签:set cmake PACKAGE dalong 构建 CPACK rpm

cmake 实际上包含了构建,测试,以及打包的能力,以下是一个简单的rpm 打包测试(cpack 模块)

项目结构

├── CMakeLists.txt
├── README.md
├── add.c
├── add.h
└── main.c

代码说明

main.c 为一个入口(可执行文件)CMakeLists.txt 是cmake 的定义包含了基于cpack 的rpm 构建配置,add.c 以及add.h 是一个简单的模块
main.c 为引用

  • CMakeLists.txt
 
cmake_minimum_required(VERSION 2.8)
 
project(dalong)
 
# cpack 需要的一个变量,比如rpm 的版本,包名称。。。。
set(CPACK_GENERATOR "RPM")
set(CPACK_PACKAGE_NAME "dalong")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Simple CPack demo")
set(CPACK_PACKAGE_VENDOR "dalong")
set(CPACK_PACKAGE_VERSION "1.0.0")
set(CPACK_PACKAGE_VERSION_MAJOR "1")
set(CPACK_PACKAGE_VERSION_MINOR "0")
set(CPACK_PACKAGE_VERSION_PATCH "0")
set(CPACK_RPM_PACKAGE_GROUP "dalong")
set(CPACK_PACKAGE_RELEASE 1)
set(CPACK_RPM_PACKAGE_LICENSE "Apache Licence")
 
# 添加cpack 模块
include(CPack)
# main 的够劲啊
add_executable(dalong main.c)
 
# add 模块的构建
add_library(dalongmyadd add.c)
 
set_target_properties(dalongmyadd PROPERTIES OUTPUT_NAME myadd)
 
target_link_libraries(dalong dalongmyadd)
 
target_include_directories(dalong PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
# 安装
install(TARGETS dalong DESTINATION bin)

构建&&效果

  • 构建
mkdir build 
cd build 
cmake ..
cpack 
  • 效果

  • 安装
    安装之后就可以直接使用dalong 这个命令运行应用了(实际上从上边生成的rpm结构就可以看出来)
 
yum install -y dalong-1.0.0-Linux.rpm

说明

cmake 同时也包含了install 可以对于构建的包进行安装,但是很利于软件的分发,对于linux 基于rpm 等一些工具是比较标准的玩法

参考资料

https://cmake.org/cmake/help/latest/cpack_gen/rpm.html
https://cmake.org/cmake/help/latest/module/CPack.html#module:CPack
https://github.com/rongfengliang/cmake_rpm_learning

标签:set,cmake,PACKAGE,dalong,构建,CPACK,rpm
From: https://www.cnblogs.com/rongfengliang/p/17817128.html

相关文章

  • 从零开始构建报警中心:part04 钉钉消息-webhook
    现在工作上比较常用的IM一般式钉钉企微飞书,其实使用起来都是大同小异的。这里就用钉钉来实现。使用钉钉发送信息,一般有三种形式群webhook工作通知智能机器人智能机器人方式,能实现一定的交互功能,但逻辑相对复杂,这里只是需要一个实时的钉钉消息,所以不进行讨论。添加群webhook这是一......
  • Spring系列:基于XML的方式构建IOC
    目录一、搭建模块spring6-ioc-xml二、获取bean的三种方式三、基于setter注入四、基于构造器注入五、特殊值处理六、为对象类型属性赋值七、引入外部属性文件八、基于XML自动装配一、搭建模块spring6-ioc-xml①引入配置文件引入spring6-ioc-xml模块配置文件:beans.xml、log4j2.xm......
  • uniApp:使用vue3+Vite4+pinia+sass技术栈构建(03)-封装对象类
    1.在src文件夹创建models文件夹import{user}from"@/service/api"//用户信息返回的数据类型interfaceuserInfoType{username:string,phone:string}//返回类型interfaceResultType<T>{errno:number,errmsg:string,datas:T}classuser......
  • Windows10+VSCode+CMake+shell脚本编译C/C++程序
    一、概述想要在Windows10上做C++验证/编译类库,借助VSCode(其实这东西要不要都行,它就是来方便查看代码的)+CMake+shell脚本做程序的编译运行。下面写一个小例子记录一下准备工作:1.编译环境用的是mingw64,使用其再带的g++编译,ps:记得要配置其环境变量2......
  • linux(redhat系列 rpm软件管理)中确认是否安装指定的安装包
     001、rpm-qa|grep"packagename";例如:[root@pc1~]#rpm-qa|grep"wget"##确认是否安装了wget命令wget-1.14-18.el7_6.1.x86_64[root@pc1~]#rpm-qa|grep"lsb"##确认是否安装了lsb命令redhat-lsb-pr......
  • docker 构建alpine基础镜像安装ssh服务
    1.创建DockerfilemkdiralpinecdalpinetouchDockerfile键入以下内容#指定基础镜像Fromalpine#维护信息MAINTAINERfangkai2045907353@qq.com##替换源#替换阿里云的源RUNecho"http://mirrors.aliyun.com/alpine/latest-stable/main/">/etc/apk/repositories......
  • 从零开始构建性能测试技术体系
    前几天知识星球一位同学找我咨询过性能测试相关的问题,我在文章《性能测试的实践痛点和解决方法》中分享了性能测试实施过程中常见的一些痛点和解决方案,后台很多同学反馈确实帮他们提供了很多思路。其中有位同学留言问了这样一个问题:有没有比较完整的性能测试技术体系?该如何构建......
  • 21.6 Python 构建ARP中间人数据包
    ARP中间人攻击(ARPspoofing)是一种利用本地网络的ARP协议漏洞进行欺骗的攻击方式,攻击者会向目标主机发送虚假ARP响应包,使得目标主机的ARP缓存中的IP地址和MAC地址映射关系被篡改,从而使得目标主机将网络流量发送到攻击者指定的虚假MAC地址。攻击者可以在不被发现的情况下窃取目标主......
  • TypeScript打包构建工厂
    TS开发工厂用于开发测试typescript代码片段或工具插件,可预览并编译成多种格式嵌入不支持ts的项目Developandtestyourtypescriptcodesortools.Previewandbuildtocommonjsandesnext.Projectsetupnodeversion>=16.x.xnpminstallCompilesandhot-......
  • Klocwork 2023.3发布,新增功能让您的构建管理更轻松!
    Klocwork2023.3的新增功能Klocwork2023.3使用构建标记为流(Stream)和CI/CD分析管道提供了构建管理的改进。C/C++分析引擎能够跟踪由常量索引引用的单个数组元素的值。Klocwork分析引擎的总体改进为CWE2023Top25和MISRAC:2023提供了更高的准确性和新的编码标准覆盖率。使用构......