问题标签 [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.
unit-testing - scons - 如何在/之后/所有目标都已构建后运行
我最近选择了 scons 来为一个中型 C++ 项目实现一个多平台构建框架。构建会生成一堆单元测试,这些单元测试应该在它结束时被调用。一个人是如何做到这一点的?
例如在我的顶级结构中,我有
但是,每个子目录都有其单元测试,因为 dll 和其中构建的可执行文件之间存在依赖关系 - 我想保持测试的运行,直到所有子目录都已构建和安装(我的意思是,使用 env.Install )。
我应该在哪里编写循环来迭代构建的测试并执行它们?我试着把它放在这个循环之后——但由于 scons 不允许你控制执行顺序——它在我想要它之前就被执行了。
请帮助一个scons新手。:)
谢谢,
iphone - 从命令行构建 iPhone 应用程序,无需 xcodebuild
可以手动构建 iPhone 应用程序,而不使用xcodebuild
Xcode 项目吗?
这个想法是使用 SCons 构建应用程序而不创建 Xcode 项目。我知道有codesign
一个我可以使用的命令行工具,但在我开始对 Xcode 构建过程进行逆向工程之前,我想知道是否有人有这方面的经验或以前做过。
scons - 为什么 Scons 关心我的目标是只读的,我怎样才能说服它忽略它?
我正在尝试将一个特别困难的项目布局的调试版本组合在一起。我需要做的一件事是将最近构建的 DLL 复制到现有 DLL 上,这些 DLL 受 Source Safe 的控制,因此是只读的。我希望使用 Scons 来管理这个,但是如果你的目标是只读的,Scons 就会出错。我的部分命令是将其设置为可读,但我的命令永远不会执行,因为 scons 首先出错。有没有办法覆盖这种行为?
这是一个演示。如您所见,如果设置了只读位,我的“关闭只读位”命令将永远不会运行:
更新
好的 - 我已经通过在 Scons 运行时踩到它来解决这个问题。看起来 Scons 在构建目标之前会删除它们(请参阅_rmv_existing
FS.py,以及 scons 文档页面中的此页面)。如果遇到这个问题,可以将目标标记为“Precious”,但是如果使用“-c”,还是会遇到麻烦。
这里没有真正好的解决方案。那好吧。
python - 表达 SConscript 自己的依赖关系
我有一个 SCons 项目设置如下:
构建时,SConscript 被复制到构建目录,但“配置”模块不是。Depends()
通常,人们会用函数(例如)来表达文件依赖关系Depends(program, object_files)
。但是,在这种情况下,SConscript 文件本身就是依赖项的“目标”。
我如何在我的 SConscript 中表达这一点?
python - 从 SConscript 确定构建目录
我有一个 SConscript,它被复制到构建目录 ( variant_dir = ...
) 以进行构建。作为无法表达依赖关系的解决方法,我正在尝试将一些其他文件复制到构建目录中。
如何在 SConscript 中确定当前的构建目录是什么?
例如,在以下布局中,内部 SConscript 文件应设置my_build_directory
为“build/something”。
scons - scons 分层构建:传播构建器
我需要能够调整构建环境,以便可以在较低级别构建静态或共享对象。目前,我想出了以下方法:
顶级 SConstruct:
在较低级别的 SConstructs 中,我按名称调用它们:
但是,我不确定这个解决方案有多合理。是否有更直接/正确的方法来实现相同的功能?
提前致谢。
c++ - 通过使用平台特定的项目文件或使用项目生成器来构建自动化?
有一些构建系统能够在 OS X 下生成特定于平台的项目文件,如 Visual Studio、、sln
文件或项目。vcproj
vcxproj
XCode
xcodeproj
其中之一是 CMake,但我发现对此的支持非常有限,有缺陷,而且很难保持更新版本(如 VS 2010)。
此外,至少 CMake 缺少对 Visual Studio 属性页的支持,这使得管理和更改项目范围的配置变得更加困难 - 例如为所有项目启用/禁用代码分析。
上述问题的一种解决方法是为每个平台手动创建项目文件——在我的例子中只有两个,但即使有更多,数量也不应该那么大。
将特定于平台的构建命令调用到通用构建自动化脚本中非常容易。例如,我使用waf
(Python) 在几个项目中自动执行此操作,而无需使用其自己的构建部分。
我想看看您会选择什么:尝试修复/维护项目生成器或保留单独的项目文件?
c - 如何根据编译器类型在 SConstruct 中为 C 编译器设置选项?
我需要为 C 编译器设置其他选项,例如添加标志以打开所有警告,具体取决于编译器的类型。例如对于 MSVC,我应该使用
但对于 mingw (gcc) 我需要使用:
我怎么能以 scons 的方式做到这一点?
scons - 捆绑基于 scons 的源
我们正在使用 SCons 来满足我们所有的构建需求,并且我们希望分发一个开源库。
现在大多数软件都使用 ./configure、make 和 make install 作为构建机制,我们想知道应该如何捆绑我们的库。
我们有以下解决方案:
- 就像它一样捆绑,需要 scons 来构建。
- 添加一个只调用 scons 的虚拟配置和生成文件。
- 添加 autoconf 和 makefile。
获得一个需要 python 和 scons 来构建的软件是如何看待的?
scons - scons:覆盖一个文件的构建选项
简单的问题,但我不知道答案。
假设我有一个scons
构建,其中CCFLAGS
包含-O1
. 我有一个文件needsOptimization.cpp
,我想在其中覆盖-O1
with -O2
。我怎么能在 scons 中做到这一点?
更新:这就是我根据 bialix 的回答最终做的事情:
在我的 SConscript 文件中:
以前这个文件是: