FBuild now has no global state!
posted on August 23, 2009 - 02:40 AM PDT
by Erick Tryzelaar
filed under:
FBuild
Well that wasn't that terrible. I've removed all the global state from fbuild. Now a context object is passed around that contains this information. Now you must write your build system like:
import fbuild.db
import fbuild.builders.c
@fbuild.db.caches
def foo(ctx, value):
ctx.logger.log('got: %s' % value)
return value
def build(ctx);
foo(ctx, 1)
static = fbuild.builders.c.guess_static(ctx)
static.build_exe('foo', ['a.c', 'b.c'])
As you can see, you now must pass the context around as the first argument to any cached function or object.