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

cmake 进行rpm包构建

时间:2023-11-29 11:37:44浏览次数:27  
标签:set cmake PACKAGE dalong 构建 CPACK rpm

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

项目结构

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

代码说明

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 
  • 效果

cmake 进行rpm包构建_html

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

 

yum install -y dalong-1.0.0-Linux.rpm

cmake 进行rpm包构建_参考资料_02

说明

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://blog.51cto.com/rongfengliang/8612794

相关文章

  • RPM包管理
    深入了解Linux中的RPM包管理在Linux系统中,软件包管理是系统管理员和用户必须熟悉的一项任务之一。RedHatPackageManager(RPM)是一种用于在RedHat系列及其他支持它的Linux系统上管理软件包的工具。本文将深入探讨RPM包管理的基本概念和常用命令。1.什么是RPM包?RPM包是一种包......
  • SeaTunnel引擎下的SQL Server CDC解决方案:构建高效数据管道
    在快速发展的数据驱动时代,实时数据处理已经成为企业决策和运营的关键因素。特别是在处理来自各种数据源的信息时,如何确保数据的及时、准确和高效同步变得尤为重要。本文着重介绍了如何利用SqlServerCDC源连接器在SeaTunnel框架下实现SQLServer到其他数据系统的实时数据同......
  • RPM包管理
    一、RPM包管理的用途;1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;3、可以在查询系统中的软件包是否安装以及其版本;4、作为开发者可以把自己的程序打包为RPM包发布;5、软件包......
  • Linux:RPM包管理
    一 、RPM包管理1、软件包管理介绍1.1、软件包分类源码包(就是直接的代码)a.脚本安装包(多了个安装界面,但是方便)二进制包(就是源码经过编译后的文件)(别名RPM包或系统默认包)1.2、源码包优点•开源,可以直接修改源代码•自由选择所需功能•编译安装,更加稳定效率也搞•卸载方便(直接......
  • maven构建【invalid entry size】
    maven构建异常【invalidentrysize】项目背景java项目存在多个模块,其中一个模块需要先构建成一个jar包,然后在被另一个模块依赖构建成新的jar包使用的maven插件:maven-assembly-plugin:2.2:singlejdk版本:1.8编译问题现场:第一个模块的jar构建成功,第二个模块刚刚开始就出现异......
  • 权重体系的构建
    本文将针对权重计算的一些常见问题进行说明:如组合赋权法的综合权重值如何计算?多层级权重如何计算?用多种方法计算得到的权重如何合并为综合权重用于之后的分析?常见的不同权重计算方法的搭配方式?一、九种权重计算方法回顾权重计算方法的选择在评级指标体系构建中属于重中之重,不同......
  • iOS-打包上架构建版本一直不出现/正在处理/自动消失
    ​iOS开发过程中,打包上架苹果审核是一个不可或缺的环节。说实话,这个问题我遇见两次了,为了让自己长点记性,决定写下来。首先,列举几种情况:1.iPa包上传至Appstore后,一个小时内不显示构建版本。(等待15分钟-25分钟是正常的)   ​ 2.“活动”栏目下,所有构建版本长时间显示“......
  • 构建卓越Kubernetes安全之路:最佳实践与军规
    Kubernetes作为现代云原生计算的中流砥柱,其安全性是我们构建稳健应用生态的首要任务。在这篇博文中,我们将探讨构建卓越Kubernetes安全的道路,通过最佳实践和制定安全军规,确保您的集群免受威胁。1. 了解威胁与风险在开始构建安全之旅之前,深入了解可能的威胁和风险是关键一步。考虑容......
  • jekenis删除构建历史并重置构建序号
    系统管理工具和动作-->脚本命令执行删除之前,现在已经构建了156次 输入脚本println(Jenkins.instance.getJobNames())//查看获取任务名列表//要重置的任务名称defjobName=Jenkins.instance.getJobNames()[0]//获取任务名item=Jenkins.instance.getItemByFullName(jo......
  • docker构建打包java项目
    docker构建打包java项目简介本项目用于研究和实践docker的工作流部署发布查看github源码技术栈spring-web(RESTAPI请求交互)redis(用于实验多容器通信)mavendocker常用命令docker--help可查看帮助指令查看镜像列表dockerimagels查看容器列表docker......