summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/genie/src/base/premake.lua
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/genie/src/base/premake.lua')
-rw-r--r--3rdparty/genie/src/base/premake.lua16
1 files changed, 10 insertions, 6 deletions
diff --git a/3rdparty/genie/src/base/premake.lua b/3rdparty/genie/src/base/premake.lua
index 8d64d9663c1..c96ef0f2a2a 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")
@@ -69,8 +74,7 @@
error(err, 0)
end
- io.output(f)
- callback(obj)
+ f:write(new)
f:close()
premake.stats.num_generated = premake.stats.num_generated + 1
end