diff options
author | Remko Tronçon <git@el-tramo.be> | 2012-07-15 08:56:48 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2012-07-15 09:38:40 (GMT) |
commit | 8853ae3063bc9d3fb5b023352dd0fb4fb6cc277b (patch) | |
tree | 86261f1621615c340791839a434ae6162ee9baaa /BuildTools/SCons/Tools | |
parent | b3f5d140e336e042724f2e37796d8ba50570d88c (diff) | |
download | swift-8853ae3063bc9d3fb5b023352dd0fb4fb6cc277b.zip swift-8853ae3063bc9d3fb5b023352dd0fb4fb6cc277b.tar.bz2 |
Provide replace_pragma_once flag.
Diffstat (limited to 'BuildTools/SCons/Tools')
-rw-r--r-- | BuildTools/SCons/Tools/ReplacePragmaOnce.py | 25 | ||||
-rw-r--r-- | BuildTools/SCons/Tools/WriteVal.py | 5 |
2 files changed, 28 insertions, 2 deletions
diff --git a/BuildTools/SCons/Tools/ReplacePragmaOnce.py b/BuildTools/SCons/Tools/ReplacePragmaOnce.py new file mode 100644 index 0000000..466c31e --- /dev/null +++ b/BuildTools/SCons/Tools/ReplacePragmaOnce.py @@ -0,0 +1,25 @@ +import SCons.Util, os.path + +def generate(env) : + root = env.Dir("#").abspath + def relpath(path, start) : + i = len(os.path.commonprefix([path, start])) + return path[i+1:] + + def replacePragmaOnce(env, target, source) : + guard = relpath(source[0].abspath, root).replace("/", "_").replace(".", "_").upper() + data = source[0].get_contents() + f = open(str(target[0]), 'wb') + if "#pragma once" in data : + f.write(data.replace("#pragma once", "#ifndef %(guard)s\n#define %(guard)s" % {"guard": guard})) + f.write("\n#endif\n") + else : + f.write(data) + f.close() + + env["BUILDERS"]["ReplacePragmaOnce"] = SCons.Builder.Builder( + action = SCons.Action.Action(replacePragmaOnce, cmdstr = "$GENCOMSTR"), + single_source = True) + +def exists(env) : + return True diff --git a/BuildTools/SCons/Tools/WriteVal.py b/BuildTools/SCons/Tools/WriteVal.py index e39ad82..0a1e1ad 100644 --- a/BuildTools/SCons/Tools/WriteVal.py +++ b/BuildTools/SCons/Tools/WriteVal.py @@ -1,14 +1,15 @@ import SCons.Util def generate(env) : - def writeVal(env, target, source) : + def replacePragmaOnce(env, target, source) : f = open(str(target[0]), 'wb') f.write(source[0].get_contents()) f.close() env["BUILDERS"]["WriteVal"] = SCons.Builder.Builder( - action = SCons.Action.Action(writeVal, cmdstr = "$GENCOMSTR"), + action = SCons.Action.Action(replacePragmaOnce, cmdstr = "$GENCOMSTR"), single_source = True) def exists(env) : return True + |