问题标签 [scons]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
363 浏览

makefile - 从 C 程序调用 C++ 函数

如何从 C 程序中调用 C++ 函数,这可能吗?如果可以,我该怎么做?谢谢你。

0 投票
4 回答
1114 浏览

build-process - SCons 是否有任何库/框架?

每个使用 SCons 的项目似乎都在重新发明轮子。我很乐意采用某人的目录布局和/或变体构建(调试/发布)的解决方案,和/或测试框架,和/或最佳实践。

即使是几个不太简单的例子也会有所帮助。

0 投票
2 回答
306 浏览

scons - 可以从 Scons 中吐出有向无环图吗?

有没有办法让scons输出它内部生成的有向无环图?也许是graphviz格式?

0 投票
3 回答
3348 浏览

build-process - 嵌入式开发/交叉编译的最佳构建系统

我现在正在使用 dsPIC 进行一些开发,但我并不完全喜欢 MPLAB。我实际上是在使用带有 makefile 项目的 Visual Studio。目前我正在使用 SCons,它似乎工作得相当好,在找到一个有用的指南来设置使用备用编译器之后。尽管如此,我还是忍不住想知道,有没有更好的构建系统呢?还有,有没有更好的方法让 Scons 做到这一点?

0 投票
3 回答
5048 浏览

scons - 在 scons 中,如何注入要构建的目标?

我想注入一个“清理”目标,该目标取决于在它关闭之前完成的许多其他目标以及 gzip 的一些日志文件。重要的是我不要过早使用 gzip,因为这会导致某些工具失败。

如何为 Scons 注入清理目标以执行?

例如,我有目标 foo 和 bar。我想注入一个名为“cleanup”的新自定义目标,它依赖于 foo 和 bar 并在它们都完成后运行,而无需用户指定

我希望他们输入:

但是让 scons 像用户输入的一样执行

我已经尝试创建清理目标并附加到 sys.argv,但似乎 scons 在到达我的代码时已经处理了 sys.argv,因此它不会处理我手动附加到的“清理”目标系统.argv。

0 投票
2 回答
9588 浏览

python - 如何让 scons 调用外部脚本?

我正在尝试使用 scons 来构建乳胶文档。特别是,我想让 scons 调用一个 python 程序,该程序生成一个文件,该文件包含一个表,该表是 \input{} 到主文档中。我查看了 scons 文档,但我并不清楚我需要做什么。

我希望实现的基本上是您使用此 makefile 将获得的结果:

我如何在 scons 中表达这一点?

0 投票
1 回答
1048 浏览

scons - 如何让 SCons 更新已更改目录中的已安装文件?

我正在做:

第一次效果很好。但是,如果我更改了“数据”文件夹中的某些内容并scons -Q install再次执行此操作,它会显示“安装”是最新的。即使文件已更改并且需要重新安装。

目录(和子目录)中有很多文件,所以如果我可以避免明确列出它们,那将是最好的。尖端?

0 投票
2 回答
3361 浏览

scons - scons 中的 env.Clone() 不做深拷贝

在 SCons 脚本中,我创建了一个基础环境,从中派生出其他环境。像这样的东西:

这样,我可以从基础环境创建更多环境(发布/调试/仪表化/pgo)。在 SCons 文档中,据说 env.Clone() 对 env 做了一个深拷贝。但实际上它似乎不起作用。因为在示例中,基本环境将应用 -DNDEBUG 和 -O3 标志。

人工智能做错了什么?

编辑:这是真正的代码。此代码中有两个打印语句,我认为它们应该打印相同的内容,但事实并非如此。输出如下:

输出 :

编辑 2

这是 SCons 的错误http://scons.tigris.org/issues/show_bug.cgi?id=2390

编辑 3

将在 1.3.1 和 2.0.1 中修复

0 投票
2 回答
5630 浏览

python - 我如何限制 SCons 命令构建器仅在其依赖项发生更改时才运行?

我在 scons 中使用命令生成器来指定需要调用特定脚本来生成特定文件。

我只想运行脚本,如果它自先前生成文件以来已被修改。命令生成器的默认行为似乎总是运行脚本。我怎样才能改变这个?

这是我目前的 SConstruct:

0 投票
3 回答
894 浏览

unit-testing - 单元测试构建文件

单元测试构建文件的最佳策略是什么?

我问的原因是我的公司生产高度可靠的嵌入式设备。软件补丁不是一种选择,因为它们花费了我们的客户数千美元来分发。因此,我们有非常严格的代码质量程序(单元测试、代码审查、可追溯性等)。这些程序正在应用于我们的构建文件(如果你必须知道,我希望是自动工具),但如果感觉就像一个 hack。

呃......项目编译......将构建文件标记为已审核和单元测试。

必须有更好的方法。想法?