首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于cmake为项目自动获取git分支tag的版本号和commitid

引言   在项目构建的时候,我们经常会希望能够将git提交的分支信息和提交号(commitid)以及当前版本发布的tag信息作为版本号自动构建到程序里面,以便后续能够快速定位所运行的程序所定影的git源码的版本...本文利用cmake的自动构建能力,来实现以下信息的自动提取并构建到程序中: 当前代码的git 分支名 当前代码的git 提交号(commitid) 当前代码的tag所设置的版本号 当前代码的构建时间 当前代码的构建号...(buildno)   以下以c语言构成为例,展示了利用cmake自动生成config.h文件,从而将以上信息自动集成到c语言工程代码中的过程。...(BuildNumber) # 获取程序的版本信息 fetch_version_from_git("GITVERSION") # 获取程序的构建号 new_build_number("GITVERSION...最后获取到的信息放在对应的变量中,其中变量名的前缀由宏的调用者传入,如下: ${VARPREFIX}_VERSION_MAJOR - Major version.

31610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    从Go的二进制文件中获取其依赖的模块信息

    其实 Linux 系统中二进制文件包含额外的信息并非 Go 所特有的,下面我将具体介绍其内部原理和实现。当然,用 Go 构建的二进制文件仍是本文的主角。...具体实现 在前面的内容中,关于如何使用 readelf 和 objdump 命令获取二进制文件的的 Go 版本和 Module 信息就已经涉及到了其具体的原理。这里我来介绍下 Go 代码的实现。...mod = mod[16 : len(mod)-16] } else { mod = "" } 总结 我在这篇文章中分享了如何从 Go 的二进制文件中获取构建它时所用的 Go 版本及它依赖的模块信息...如果对原理不感兴趣的话,直接通过 go version -m 二进制文件 即可获取相关的信息。...另外,你可能会好奇从 Go 的二进制文件获取这些信息有什么作用。

    2.6K10

    SpringBoot配置分析、获取到SpringBoot配置文件信息以及几种获取配置文件信息的方式

    1、第一种方式直接获取到配置文件里面的配置信息。 第二种方式是通过将已经注入到容器里面的bean,然后再注入Environment这个bean进行获取。...========================================="); 72 73 try { 74 //6、以默认值的形式获取到配置文件的信息...13 * 指定多个配置文件,这样可以获取到其他的配置文件的配置信息。 14 * 2、加载外部的配置。...16 * 17 */ 18 @Configuration 19 @PropertySource("classpath:jdbc.properties") //指定多个配置文件,这样可以获取到其他的配置文件的配置信息...: 配置的配置文件信息,和运行的主类,在上面已经贴过来,不再叙述。

    1.6K20

    Git 修改已提交的邮箱和用户信息

    实际过程中有的时候本地配置信息邮箱有误,导致git commit 提交作者的信息有误,这个时候就需要进行修改 git config --list user.email=xxx user.name...=xxx 修改git 配置信息 git config --global user.email xxx@xxx.com 修改已经提交的作者信息 网上给出答案都是自己写的脚本,有点过于繁琐,在逛segmentfault1...找到了答案: 首先找到修改commit 前一个,执行 git rebase -i commit id git会自动调用配置好的编辑器打开一个界面 ?...修改第一行数据(就是我们预期要修改的那条commit)的pick为edit,如下: ? 保存退出,可以看到如下结果: ?...这时候我们就可以通过git commit --amend来畅快的修改用户信息了,操作如下: git commit --amend --author="xxx " --no-edit

    6.6K20

    Git 速查表:中级用户必备的 12 个 Git 命令

    此命令可用于设置诸如 Git 用户名、电子邮件地址、默认文本编辑器(如 Vim)、默认合并行为、终端输出外观和别名等信息。...然而,旧文件的历史记录都被 Git 跟踪了,所以如果您发现需要旧版本,可以随时找回。 git rm git rm 命令用于从 Git 仓库中删除文件。...它会在工作目录中删除文件,并从 Git 索引中移除文件。 要删除特定文件: git rm path/to/filename.ext 需要注意的是,此命令会从您的文件系统中删除文件。...该命令还可用于比较分支之间的差异: git diff branch1 branch2 或者用于比较两个提交之间的差异: git diff commitID1 commitID2 为了比较一个特定文件,也可以加上第三个文件名参数...git revert commitID git fetch git fetch 命令用于从远程仓库下载引用(包括标签和分支)。它会下载新创建的引用,并完成本地已存储引用的历史记录。

    47830

    使用PHP获取图像文件的EXIF信息

    使用PHP获取图像文件的EXIF信息 在我们拍的照片以及各类图像文件中,其实还保存着一些信息是无法直观看到的,比如手机拍照时会有的位置信息,图片的类型、大小等,这些信息就称为 EXIF 信息。...一般 JPG 、 TIFF 这类的图片文件都会有这样的信息。EXIF 其实就是专门为这种数码照片所定制的,专门用于记录数码照片的属性信息和拍摄数据的,最初由日本制定。...它还包括其它很多类型,这里只是演示了我们平常最常见的 jpg 和 png 类型的图片类型的获取。.../img/3.jpeg')); 在 PHP 中可以通过 exif_thumbnail() 这个函数直接获取 JPG 文件中 EXIF 里面保存的缩略图信息。...在测试代码中我们获取到后再将它保存为正式的图片,大家就可以看到缩略图的真实样子了。并且我们使用 exif_read_data() 来读取这个文件的话,也能看到缩略图保存的信息。

    1.6K50

    从文件生命周期看GIT的提交流程

    我们的暂存区和本地仓库就是存在于这个文件下面。 git clone,通过远程克隆方式获取版本库。...本人刚开始使用git的时候,以为git像svn一样需要依赖远程,获取仓库首先想到的是去github上面clone。...file 还是先动手画个图,如下: image.png 上面的图以文件状态的角度出发,指出了一个文件从创建到提交文件仓库再到脱离仓库追踪的整个过程可能经历的各种状态。...已暂存 在上面的1、2两段,关于未追踪和已更新,总结的是工作区文件存在的各种状态。但是在把文件提交到版本之前,还需要中间的一个过渡阶段:暂存区。 文件提交到暂存区便是已暂存状态。...更新直接提交 git commit -am "message" 可以将编辑更新直接从工作区提交仓库,即跨过暂存区。不支持删除与冲突更新和新文件的提交。

    74220

    从 PE 文件资源表中提取文件的版本信息

    前段时间需要实现对 Windows PE 文件版本信息的提取,如文件说明、文件版本、产品名称、版权、原始文件名等信息。获取这些信息在 Windows 下当然有一系列的 API 函数供调用,简单方便。...当时在网上没有找到成体系的并 100% 正确的获取实现方法,所以只能根据零散的资料和信息,自己实现了。在最终实现后,便整理了一下思路,在这里把实现思路分享一下,虽然技术含量不高,但总会有人需要的嘛。...根据前面的定位,获取到资源表数据块的 RVA,并根据 RVA 和 NT Header 的地址以及文件缓冲区基地址计算资源表的数据块的实际内存地址。...该结构体只用来描述在版本信息资源中的数据,并不出现在附带于 SDK 中的任何头文件中。 获取该结构体更多信息请访问文后 0x5 节中的超链接。...如何判定已获取完所有的版本信息类型了?可根据当前 StringTable 结构的 wLength 域作为限定范围。 至此,对于 PE 文件的版本信息资源的获取就完成了。

    3.3K20

    【DB笔试面试797】在Oracle中,可以从exp出来的dmp文件获取哪些信息?

    ♣ 题目部分 在Oracle中,可以从exp出来的dmp文件获取哪些信息? ♣ 答案部分 在开发中常常碰到,需要导入dmp文件到现有数据库。...这里的dmp文件可能来自于其它系统,所以,一般情况下是不知道导出程序(exp)的版本、导出时间或者导出模式等信息的。那么如何从现有的dmp文件中获取到这些信息呢?下面作者将一一讲解。...(一)获取基本信息:导出的版本、时间、导出的用户 下面的示例中exp_ddl_lhr_02.dmp是生成的dmp文件: [ZFZHLHRDB1:oracle]:/tmp>strings exp_ddl_lhr...#C#G #C#G +00:00 BYTE UNUSED (二)获取dmp文件中的表信息 下面的示例中,exp_ddl_lhr_02.dmp是生成的dmp文件: [ZFZHLHRDB1:oracle...第二种查看dmp文件字符集的办法是,以十六进制的方式打开dmp文件,然后查看第2和第3个字节。

    2.5K30

    Git常用命令

    git bash和git GUI 我们完全也可以使用git GUI来提交版本 与sourcetree等功能相同gitk // 用git命令快速打开git GUI4.文件信息ls // 查看当前路径下面的所有文件名...之后 git stash pop 把之前放入堆栈的c拿出来 继续下一波操作git commit -m "提交的备注信息" // 提交到仓库若已经有若干文件放入仓库,再次提交可以不用git add和git...养成良好提交习惯 例如 git commit -m "变更(范围):变更的内容"7.存储密码凭证 设置别名 获取config信息以及配置git config --list // 获取config信息git...branch) // 简洁的输出git status中的信息11.删除放入暂存区文件的方法(已commit后)git rm 文件名 // 将该文件从commit后撤回到add后git reset HEAD...这样就把attendanceSum.vue这个单个文件 还原到了对应版本)git branch -v // 查看分支以及提交hash值和commit信息git merge 分支名 // 把该分支的内容合并到现有分支上

    21300

    Python从命令行参数和配置文件获取信息

    实际开发中,很多时候需要从外部获取数据,根据用户的输入或配置信息来决定下一步应采取的行为。...除了使用内置函数input()或者GUI库的控件和对话框来接收用户输入以外,还可以使用sys和argparse模块来接收命令行参数,使用configparser模块从外部配置文件中获取信息。...如果某个程序需要配置大量信息,那么可以把与程序有关的这些信息单独存放到一个配置文件中,这样就不用重复输入了,并且可以在不修改代码的前提下改变代码的行为,只需要提供不同的配置文件即可。...configparser模块提供了非常方便的配置文件读取接口,假设配置文件test.ini的内容如下: [DEFAULT] default1 = 0 default2 = 1 default3 = %(...age = 39 sex = M addr = yantai [SECTION2] name = zhang age = 40 sex = F weight = 50 那么可以通过下面的代码来读取和显示配置文件中的信息

    1.2K100
    领券