当前位置: 首页 > article >正文

scons通用构建_生成方法Command

1.需求

同makefile一样,自动构建

  1. QT designer设计的UI文件, 通过pyuic5 将 xxx.ui 转 为 xxx.py
  2. proto序列化文件, 通过 protoc 将 xxx.proto 命令转化为 xxx.py文件
  3. 压缩归档 : tar -zcf archive.tar.gz file1.txt file2.txt file3.txt
  4. 生成/更新 md5值: md5sum xxx.txt > xxx.txt.md5

并实现

  1. 当文件未更新时, 不重新编译/生成
  2. 当文件更新时, 重新编译/生成

2.功能实现

1.QT designer的ui文件转化为.py文件

gitee 在线代码:

SConstruct

# qt designer 自定义构建命令
Command('score.py', 'score.ui', 'pyuic5 -x -o $TARGET $SOURCES')

scons 编译/生成
scons: Reading SConscript files …
scons: done reading SConscript files.
scons: Building targets …
pyuic5 -x -o score.py score.ui
scons: done building targets.

2.proto序列化文件protoc编译为.py文件

gitee 在线代码

example.proto

syntax = "proto3";

package example;

message Person {
  string name = 1;
  int32 id = 2;
  string email = 3;
}

SConstruct

Command("example_pb2.py", "example.proto", action="protoc --python_out=. $SOURCE")

scons 编译/生成
scons: Reading SConscript files …
scons: done reading SConscript files.
scons: Building targets …
protoc --python_out=. example.proto
scons: done building targets.
ls
example_pb2.py example.proto

3. 压缩归档

4. 生成md5文件

gitee 在线代码

# 压缩文件
sources = ['file1.txt', 'file2.txt', 'file3.txt']
tarball = 'archive.tar.gz'
Command(tarball, sources, 'tar -I zstd -cf $TARGET $SOURCES')

# 生成md5
Command("file1.txt.md5", "file1.txt", 'md5sum $SOURCES > $TARGET')


http://www.kler.cn/a/504886.html

相关文章:

  • 关于linux的ld.so.conf.d
  • 【Node.js的安装与配置】
  • linux删除用户
  • Kafka——两种集群搭建详解 k8s
  • 数据仓库基础常见面试题
  • 优化神马关键词排名原理(优化神马搜索引擎关键词排名规则)
  • 向量数据库如何助力Text2SQL处理高基数类别数据
  • 更新用户密码功能
  • 解决nginx: [emerg] unknown directive “stream“ in /etc/nginx/nginx.conf问题 --九五小庞
  • LeetCode | 解锁数组与字符串的秘密:经典题型详解与高效解法
  • 20250113面试鸭特训营第21天
  • STLG_01_12_程序设计C语言 - 联合体和枚举类型
  • 【AIGC-ChatGPT进阶提示词指令】智慧母婴:打造基于成长树的儿童发展引导系统
  • 【网络云SRE运维开发】2025第3周-每日【2025/01/14】小测-【第13章ospf路由协议】理论和实操解析
  • PPPLib源码阅读
  • 「蓝桥杯题解」数字接龙
  • 石化煤矿智能化转型“硬通货”,遨游防爆手机如何面面俱到?
  • Vue2+OpenLayers实现车辆开始、暂停、重置行驶轨迹动画(提供Gitee源码)
  • UART 串口的全双工模式与 SPI 的全双工模式的区别
  • 达梦数据库数据迁移(mysql迁移到达梦)
  • 4种革新性AI Agent工作流设计模式全解析
  • 力扣cf补题-1【算法学习day.94】
  • 字符串提取数字求和⭐
  • Spring Boot 应用开发中的核心注解及扩展(包含自动配置源码追踪)
  • 2025.1.15——二、字符型注入
  • STM32 物联网智能家居 (三) 输入子系统