【问题标题】:Overriding SCons Cache Copy Function覆盖 SCons 缓存复制功能
【发布时间】:2015-01-09 18:23:24
【问题描述】:

我试图弄清楚当 SCons 将工件从缓存目录(由 CacheDir 提供)复制到使用的硬链接时如何覆盖该行为。

我目前的尝试

def link_or_copy_file(class_instance, src, dst):
    # do hardlinking instead...

SCons.Defaults.DefaultEnvironment()._copy_from_cache = link_or_copy_file
SCons.Defaults.DefaultEnvironment()._copy2_from_cache = link_or_copy_file

env = Environment()

env._copy_from_cache = link_or_copy_file
env._copy2_from_cache = link_or_copy_file

env 的后续使用没有影响。函数link_or_copy_file 永远不会被调用。怎么了?

难道不能用这种方式覆盖Python类的成员函数吗?

更新:另外请注意,我在调用 env.Decider() 之后执行此操作,因为此函数可能会覆盖成员 _copy_from_cache_copy2_from_cache

【问题讨论】:

    标签: python caching scons build-system hardlink


    【解决方案1】:

    我们终于明白了

    import SCons.Environment
    SCons.Environment.Environment._copy_from_cache = link_or_copy_file
    SCons.Environment.Environment._copy2_from_cache = link_or_copy_file
    

    工作。

    【讨论】:

      猜你喜欢
      • 2013-06-03
      • 2012-11-21
      • 1970-01-01
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 2017-02-11
      相关资源
      最近更新 更多