加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 如何强制SConscript构建器更改目录?

发布时间:2020-12-15 09:27:34 所属栏目:大数据 来源:网络整理
导读:目前我正在尝试将一个百万小时的遗留项目从沉闷的.cmd脚本移植到SCons.部分是VC,其他是Delphi.为C件创建SConscripts是轻而易举的. 为了构建delphi部分,我编写了一个非常简单的构建器,它可以检测它是程序还是库项目.通过SConscript链接后调用构建器使得scons
目前我正在尝试将一个百万小时的遗留项目从沉闷的.cmd脚本移植到SCons.部分是VC,其他是Delphi.为C件创建SConscripts是轻而易举的.

为了构建delphi部分,我编写了一个非常简单的构建器,它可以检测它是程序还是库项目.通过SConscript链接后调用构建器使得scons调用dcc32 $subdir / project.dpr会误导dcc32查找当前目录中的单位而不是$subdir.

有没有办法告诉scons在执行驻留在sconscript中的命令之前进入$subdir,还是应该在构建器中修复它?

先感谢您

解决方法

SCons在读取时已经更改为子目录SConscripts的目录,因此看起来问题必须在实际构建器中修复.

解析脚本后,SCons正在运行构建命令,它将保留在顶级目录中.然后使用相对于该顶级目录的路径名发出命令.更改此行为的方法是在Builder中使用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不会更改传递给构建器的名称,即它们仍然相对于顶级目录.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读