- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前,我正在尝试将一个百万 sloc 遗留项目从乏味的 .cmd 脚本移植到 SCons。其中一部分是VC++,其他是Delphi。为 C++ 片段创建 SConscript 是一件轻而易举的事。
为了构建 delphi 部分,我编写了一个非常简单的构建器,它可以检测它是程序还是库项目。通过 SConscript 链接后调用构建器会使 scons 调用 dcc32 $subdir/project.dpr ,这会误导 dcc32 在当前目录而不是 $subdir 中查找单元。
有没有办法告诉 scons 在执行 sconscript 中的命令之前输入 $subdir 或者我应该在构建器中修复它?
提前谢谢
最佳答案
SCons 在读取它们时已经更改为子目录 SConscripts 的目录,因此看起来问题必须在实际构建器中修复。
一旦脚本被解析,并且 SCons 正在运行构建命令,它就会保留在顶级目录中。然后使用相对于该顶级目录的路径名发出命令。更改此行为的方法是在构建器中使用 chdir
关键字。
scons 手册页中的示例如下:
b = Builder(action='build < ${SOURCE.file} > ${TARGET.file}',
chdir=1)
env = Environment(BUILDERS = {'MyBuild' : b})
env.MyBuild('sub/dir/foo.out', 'sub/dir/foo.in')
您需要指定 .file
组件,因为使用 chdir
不会更改传递给构建器的名称,即它们仍然相对于顶层目录。
关于delphi - 如何强制 SConscript 构建器更改目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2988115/
目前,我正在尝试将一个百万 sloc 遗留项目从乏味的 .cmd 脚本移植到 SCons。其中一部分是VC++,其他是Delphi。为 C++ 片段创建 SConscript 是一件轻而易举的事。 为
我有一个 SConscript,它被复制到构建目录 (variant_dir = ...) 进行构建。作为 not being able to express dependencies 的解决方法,我
我正在使用 scons 来编译我的项目。在我的项目中,源文件位于不同的目录中。我们是否需要在每个目录中都有 sconscript 文件来编译这些项目源文件? 我试图用单个 sconscript 文件编
我在网上找不到任何信息,所以我恳请您提供一个。 我已经正确设置了构建环境, 我的编译器是来自 VS Express 包的“cl”。 我尝试构建静态库, 当我将我的工具设置为“默认”时,一切正常,但当我
我正在尝试编写一个 SConscript 文件,以便我可以使用 scons 构建 Go 代码。 SConscript 文件非常简单;它只是一个入门文件: def gc(source, target,
作为 scons 的新手,我面临着使用通用顶级构建在一个存储库中转换具有多个模块的项目。每个模块已经有一个 SConstruct 文件 - 允许自己构建它们。 阅读分层 scons 设置,我发现这个想
我刚开始看scons 我创建了一个简单的test.cpp #include int main(int argc, char ** argv) { std::cout >& std::__1
我正在尝试使用 scons 构建工具构建一个简单的打印 HelloWorld。 我的 helloWorld.c 文件包含: #include "stdio.h" int main() { printf
我正在使用 SCons 构建一个非常大的项目,其中包含许多可构建的子项目。我可以轻松地使用关键字命令,如 scons group=ai 来构建带有 if 语句的 AI 子项目(根据关键字命令选择正确的
我需要使用 scons 为大型项目生成发布和调试版本。对于发布和调试版本,它都会生成共享和静态库。构建后目录结构应如下所示: project_dir/ |_ src |_ include
我是 SCons 的新手,注意到当我在 SConscript 中构建共享库时,CCCOMSTR 和 LINKCOMSTR 将不起作用。 这是我的 SConstruct 的简化版本: CFLAGS =
我正在处理一个项目,该项目有许多使用 SConscript(variant_dir=) 创建的变体目录。 我想让 scons 停止软链接(soft link)/硬链接(hard link)/将我的 .
我的构建结构如下: SConstruct subdir/SConscript subdir/module/__init__.py SConstruct调用 subdir/SConscript作为子公司
我是一名优秀的程序员,十分优秀!