function generateHeaders() local modules = os.matchdirs("../include/Nazara/*") for k, modulePath in pairs(modules) do local moduleName = modulePath:match(".*/(.*)") print(moduleName) local config, err = io.open(modulePath .. "/Config.hpp", "r") local head = "" if (not config) then error("Failed to read config file: " .. err) end for line in config:lines() do head = head .. line .. "\n" if (line == "#pragma once") then -- On s'arrête au #pragma once, qu'on inclut quand même break end end config:close() local header, err = io.open(modulePath .. ".hpp", "w+") if (not header) then error("Failed to create header file: " .. err) end header:write("// This file was automatically generated by Nazara\n\n") header:write(head .. "\n") local files = os.matchfiles(modulePath .. "/*.hpp") local count = 0 for k, filePath in pairs(files) do local include, fileName = filePath:match(".*(Nazara/.*/(.*))") if (fileName ~= "Debug.hpp" and fileName ~= "DebugOff.hpp" and fileName ~= "ThreadSafety.hpp" and fileName ~= "ThreadSafetyOff.hpp") then header:write("#include <" .. include .. ">\n") count = count + 1 end end print(string.format("-# of includes: %d", count)) header:close() end end newaction { trigger = "generateheaders", description = "Generate a global header for each module", execute = generateHeaders }