SCons:如何跨计算机复制构建信息?

问题描述

我没有在同一台计算机上编译我的项目所需的所有程序。我可以在一台计算机上编译一部分,而在另一台计算机上编译其余部分。我想跑

  • scons path/to/first/file 在一台计算机上。
  • scons path/to/second/file 在另一台计算机上。

第二个文件依赖于第一个文件。我在一台计算机上编译了第一个文件并复制了它。但是,当我尝试在另一台计算机上运行 scons 时,出现错误,因为 scons 想要重新构建第一个文件。如果我添加 --debug=explain,我得到的消息是 Cannot explain why '/full/path/to/first/file' is being rebuild: No prevIoUs build information found。我也试过在机器之间复制 .sconsign.dblite 文件,但没有奏效。帮助?

解决方法

解决此问题的“最佳”方法可能是仅根据可以构建它的构建工具的存在来指定构建每台计算机可以构建的部分。

所以检测计算机是否有 compiler_a,然后执行以下操作:

if compiler_a:
   # do all compiler_a build stuff
else:
   # do all compiler_b build stuff