- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个文件,我想在它通过 python 脚本推送后发送到构建目录。我将如何在 waf 中执行此操作?
例如,如果我有这样一个文件:
VERSION=%%VERSION%%
DATADIR=%%DATADIR%%
并且想在将其输出到 waf 构建目录之前替换 %%VERSION%% 和 %%DATADIR%%,我该怎么做?
我知道是这样的:
ctx(rule='???'
source='versionfile.ver',
target='versionfile.out'
)
但我不知道规则是什么。
此外,一旦生成该文件,是否可以在其他任务中使用它?
最佳答案
如果你只是想替换一个输入文件,你的 versionfile.ver 应该是这样的
VERSION=@VERSION@
DATADIR=@DATADIR@
现在您可以使用以下任务来替换值
bld.new_task_gen (
features = "subst",
source= "versionfile.ver",
target= "versionfile.out",
VERSION = bld.env['VERSION'],
DATADIR = bld.env['DATADIR'])
为了能够从 bld 访问版本,您必须在配置期间定义它
conf.env['VERSION'] = '0.7.0'
您可以找到这个正在运行的 waf 任务 here此任务的输出文件可以用作其他任务的输入。
但是,当您想通过 python 脚本或任何可用命令传递源文件时,您可以使用以下命令:
lib_typelib = bld.new_task_gen(
name = 'versionfile',
source = 'versionfile.ver',
target = 'versionfile.out',
rule='/path/to/your/python/script ${SRC} -o ${TGT}')
还有一个 sample 可用here在这种情况下,使用 g-ir-compiler 的地方在您的情况下是 python 脚本。
关于python - Waf:如何输出生成的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8422308/
假设我在 /mydir/a/b 中有 x.y 文件(在 Linux 上) 当我运行 waf 时,它没有找到该文件。 def configure(context): pass def build
我正在为我的项目使用 Waf 构建系统。我的项目中有一些依赖项,我并不总是希望对其进行链接和编译。我想知道是否有一种方法可以将额外的参数传递给 Waf 配置和 Waf 安装脚本,我可以在 wscrip
每当我调用“waf clean”时,waf 最终都会清理构建中的所有内容。我想有办法告诉 waf 只清理特定的目标。这样,每当我想再次运行所有单元测试时,我就不必重建所有内容。 例如, 如果我有以下文
我正在使用 Waf 构建一个项目。它有几个第三方依赖项,我想从我的主要 wscript 构建每个依赖项。我的项目是这样组织的: /boost/ /gtest/ /source/ /waf /wscri
我有一个添加了一些选项的 waf 脚本,因此我使用 waflib 中的 Options。 一个最小的工作示例是: from waflib import Context, Options from wa
我想将一个 waf 任务的 target 用作另一个 waf 任务中的 source,但这并没有按预期工作。 一个简单但完整的例子:我添加了两个任务( t_1 , t_2 )我想添加为功能并通过 be
我想使用 waf 触发生成文件来构建其他库。为此,我创建了以下任务: def build(bld): def run(self): bld_dir = self.generat
我想安装使用命令 bld.shlib(...) 构建的库进入 /lib ,其中 arch_suffix 可以是 64 或根据架构为空。 我怎样才能做到这一点? 如果不可能,那么我如何明确指定这个后缀?
我正在使用waf来构建C程序。我想在配置阶段检查是否存在特定的头文件。有没有办法做到这一点? 最佳答案 嗯,有点谷歌搜索找到了我的问题的答案:您可以在Configuration对象上使用check方法
在我的 wscript 中,我在 apply_link 方法之后运行了一些自定义任务(dummy),这工作正常。 在这个dummy任务完成后,我想收集我所有的输出文件(让它成为*.dll,*.exe、
我已经克隆并构建了 waf脚本使用: ./waf-light configure 然后构建我的项目(由 Gomspace 提供)我需要添加 waf和 eclipse.py到我的路径。到目前为止,我还没
我已经设置了带有 WAF 和一些 Web 应用程序的应用程序网关 V2。我还为 Web 应用程序设置了自定义域,并且网关的监听器正在重定向到属于网关正在监听的域的 Web 应用程序。 假设我想阻止外部
我有以下代码片段,用于将文件按原样复制到构建目录: for m in std_mibs: print("Copying", m) bld(name = 'cpstdmib'
class superfoo(Task.Task): def run(self): self.generator.bld.fatal("Oh noes!") 有没有办法退出
我在 Windows 中使用 waf,但我不知道如何使用 boost 工具。 我尝试了 waf update,但它显示以下内容: 无法在远程存储库中找到该工具“更新”成功完成(0.597 秒) 如何在
我在 waf 中有一个目标,它依赖于多个其他文件。有一个程序列出那些依赖项,我想使用它,并传递给 waf。即,如果我有一个目标 T,那么是一个列出T 的所有依赖项的程序。但我不清楚如何通过这个到 bl
在 Waf 中,我如何创建多个可以并行运行的自定义任务(使用 --jobs=JOBS)? Sources = ["C:\\src1.c", "C:\\Mod1\src2.c", ... 30pcs]
我有一个文件,我想在它通过 python 脚本推送后发送到构建目录。我将如何在 waf 中执行此操作? 例如,如果我有这样一个文件: VERSION=%%VERSION%% DATADIR=%%DAT
是否有更好/更短的方法来创建这两个可处理多个文件的任务?我更喜欢 new_task_generator 而不是神秘的类。 Files = ["src1.c", "src2.c"] for Fi
我正在尝试配置 Azure 应用程序网关 WAF,并将后端池设置为不同 Azure 租户中的虚拟机,使用端口 443 上的公共(public) IP 地址。所有 SSL 证书均已正确配置。但是,我在通
我是一名优秀的程序员,十分优秀!