是否有可能让SCons提醒我使用它的依赖性跟踪执行手动步骤?
我的构建使用.fla的.swc输出,使用命令行无法做到。
我尝试过类似的事情:
env.Command(target, sources + SHARED_SOURCES,
Action(lambda target, source, env: 1, "Out of date: $TARGET"))
但是使用这种方法,我必须使用Decider('make')或者得到:
$ scons --debug=explain scons: rebuilding `view_bin\RoleplaySkin.swc' because `view_src\RoleplaySkin.fla' changed Out of date: view_bin\RoleplaySkin.swc scons: *** [view_bin\RoleplaySkin.swc] Error 1
而且,更重要的是,SCons从未意识到它的缓存是过时的,所以环境或源代码的任何变化,因为它在.sconsign.dblite中写入签名意味着它将始终尝试重建(因此,总是失败)
答案 0 :(得分:0)
在将* .swc输出转换为* .fla之前使用Precious
方法保护* .swc输出怎么样?
答案 1 :(得分:0)
如何创建自己的RemindMe构建器,它会提醒您并且无法构建目标?
它看起来像这样:
def remind_me(target, source, env):
os.remove(target.abspath) #we do not build, we destroy
print ("This is a friendly reminder, your $SOURCE is out of date, run manual build step")
return None
reminder = Builder(action = remind_me,
suffix = '.swc',
src_suffix = '.fla')
env = Environment(BUILDERS = {'RemindMe' : reminder})
#Run builder like this
swc_file = env.RemindMe('some_fla_file')
final_target = env.BuildWithSWC(some_other_target,swc_file)
然而,这只是一个理论,我从未尝试过实际删除目标而不是创建目标。至少可能值得一试。