diff options
Diffstat (limited to '3rdparty/genie/src/base/premake.lua')
-rw-r--r-- | 3rdparty/genie/src/base/premake.lua | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/3rdparty/genie/src/base/premake.lua b/3rdparty/genie/src/base/premake.lua index 8d64d9663c1..a4051427935 100644 --- a/3rdparty/genie/src/base/premake.lua +++ b/3rdparty/genie/src/base/premake.lua @@ -22,13 +22,18 @@ -- function premake.generate(obj, filename, callback) + local prev = io.capture() + local abort = (callback(obj) == false) + local new = io.endcapture(prev) + + if abort then + premake.stats.num_skipped = premake.stats.num_skipped + 1 + return + end + filename = premake.project.getfilename(obj, filename) if (premake._checkgenerate) then - io.capture() - callback(obj) - local new = io.endcapture() - local delta = false local f, err = io.open(filename, "rb") @@ -47,7 +52,7 @@ end if delta then - printf("Generating %s...", filename) + printf("Generating %q", filename) local f, err = io.open(filename, "wb") if (not f) then error(err, 0) @@ -62,15 +67,14 @@ premake.stats.num_skipped = premake.stats.num_skipped + 1 end else - printf("Generating %s...", filename) + printf("Generating %q", filename) local f, err = io.open(filename, "wb") if (not f) then error(err, 0) end - io.output(f) - callback(obj) + f:write(new) f:close() premake.stats.num_generated = premake.stats.num_generated + 1 end |