【Python脚本随手笔记】 ---基于鸿蒙系统LiteOS实现差分编译脚本(下篇)

本文是【Python脚本随手笔记】专栏的第三篇文章,作者介绍如何基于Git改动文件实现HarmonyOS LiteOS的差分编译,通过Python脚本检测改动、分析差异并进行单模块编译,以提升编译效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请添加图片描述

  • 💌 所属专栏:【Python脚本随手笔记】

  • 😀 作  者:我是夜阑的狗🐶

  • 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询!

  • 💖 欢迎大家:这里是优快云,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘

您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!🤩 🤩 🤩


前言

  大家好,又见面了,我是夜阑的狗🐶,本文是专栏【Python脚本随手笔记】专栏的第3篇文章;
  今天的需求是通过 Git 获取修改的文件,针对这些文件进行单模块编译,从而加快编译速度,上篇已经讲解了如何获取改动文件在 gn 文件的编译组名,接下来就来讲解如何将该组名通过脚本进行单模块编译吧;
  专栏地址:【Python脚本随手笔记】 , 此专栏是我是夜阑的狗对python脚本处理的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
  如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。


一、"狂飙"思路

  前面我们讲到了怎么拿到基于改动文件的gn编译组名,接下来就可根据该组名对项目进行单目标编译了从而实现编译速度的 “狂飙”,话不多说,让我们原文再续,书接上回吧。。

请添加图片描述

 1.差分编译

  差分编译(Incremental compilation)是一种编译技术,用于仅重新编译源代码中发生更改的部分,以提高编译效率。这可以减少整体编译时间,特别是在大型项目中。
  差分编译通常使用以下步骤:

  • Step 1、初始编译:首次编译项目的所有源代码文件,生成目标文件或可执行文件。

  • Step 2、更改检测:在进行新一轮编译之前,系统会检测源代码文件中的更改。

  • Step 3、差异分析:检测到更改的文件将与之前的编译结果进行比较,以确定哪些部分需要重新编译。

  • Step 4、增量编译:只有受到更改影响的文件和相关依赖项会重新编译,然后生成更新后的目标文件或可执行文件。

  差分编译可以显著提高大型项目的编译速度,尤其是在只有部分文件发生更改时。它通常被集成开发环境(IDE)和构建工具用于优化开发者的工作流程。
  不同的编程语言和开发工具可能有不同的差分编译机制和工作流程。具体的实施方法取决于所使用的编程语言和开发环境。

二、实现差异分析

  基于这个思路在结合gn提供的单目标编译就可实现。

#!/usr/bin/python3

import os
import re
import sys
import glob
import subprocess

def get_git_file_changes():
    try:
        # 运行 git diff 命令获取更改
        output = subprocess.check_output(['git', 'diff', '--name-only'])
        changes = output.decode().strip().split('\n')

        # 筛选出以 .c 或 .h .cpp结尾的文件
        c_h_files = [file for file in changes if file.endswith(('.c','.h','.cpp'))]

        return c_h_files
    except subprocess.Call
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是夜阑的狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值