如何从Waf的wscript中移除部分主命令与默认选项?
我写了一个基础的Waf脚本,用来做简单的C项目构建,但默认生成的帮助信息里塞满了我用不上的命令和选项,想做个精简。先贴一下我的最小可运行代码:
from waflib import Context, Options from waflib.Tools.compiler_c import c_compiler def options(opt): opt.load('compiler_c') def configure(cnf): cnf.load('compiler_c') cnf.env.abc = 'def' def build(bld): print('hello')
目前的问题是,Waf自带的帮助输出里有大量我不需要的内容,我希望移除这些部分:
- 主命令里的
dist、distcheck、distclean、install、step、uninstall,只保留build、clean、configure、list - 去掉
--no-msvc-lazy这类我用不到的选项 - 删除配置选项里的
-t/--top参数 - 移除整个「安装与卸载选项」章节
下面是Waf默认输出的完整帮助信息,供参考:
waf [commands] [options]
Main commands (example: ./waf build -j4)
build : 执行构建
clean : 清理项目
configure: 配置项目
dist : 创建用于源码分发的压缩包
distcheck: 检查项目是否可编译(基于dist生成的压缩包)
distclean: 删除构建目录与数据
install : 将目标文件安装到系统
list : 列出待执行的目标
step : 分步执行任务,用于调试
uninstall: 移除已安装的目标
Options:
--version 显示程序版本号并退出
-c COLORS, --color=COLORS 是否使用颜色(yes/no/auto)[默认值: auto]
-j JOBS, --jobs=JOBS 并行任务数量(8)
-k, --keep 遇到错误时继续执行(-kk会尝试更久)
-v, --verbose 详细程度 -v -vv 或 -vvv [默认值: 0]
--zones=ZONES 调试区域(task_gen, deps, tasks等)
-h, --help 显示此帮助信息并退出
--msvc_version=MSVC_VERSION MSVC版本,例如: "msvc 10.0,msvc 9.0"
--msvc_targets=MSVC_TARGETS MSVC目标平台,例如: "x64,arm"
--no-msvc-lazy 延迟检查MSVC目标环境
Configuration options:
-o OUT, --out=OUT 项目构建目录
-t TOP, --top=TOP 项目源码目录
--prefix=PREFIX 安装前缀 [默认值: 'C:\users\user\appdata\local\temp']
--bindir=BINDIR 二进制文件目录
--libdir=LIBDIR 库文件目录
--check-c-compiler=CHECK_C_COMPILER 尝试使用的C编译器列表 [msvc gcc clang]
Build and installation options:
-p, --progress -p: 进度条; -pp: IDE格式输出
--targets=TARGETS 任务生成器,例如 "target1,target2"
Step options:
--files=FILES 要处理的文件,使用正则表达式,例如 "/main.c,/test/main.o"
Installation and uninstallation options:
--destdir=DESTDIR 安装根目录 [默认值: '']
-f, --force 强制安装文件
--distcheck-args=ARGS 传递给distcheck的参数
请问怎么修改我的脚本,才能得到符合需求的精简版帮助信息?
内容的提问来源于stack exchange,提问作者wafwafwaf

