Skip to content

Commit

Permalink
整理代码
Browse files Browse the repository at this point in the history
  • Loading branch information
actboy168 committed Mar 23, 2023
1 parent 6b966c6 commit 5501d8a
Show file tree
Hide file tree
Showing 2 changed files with 141 additions and 204 deletions.
162 changes: 10 additions & 152 deletions scripts/simulator.lua
Expand Up @@ -6,148 +6,8 @@ local arguments = require "arguments"
local globals = require "globals"
local pathutil = require "pathutil"

local api = writer.api
local mainSimulator = {}
local api = {}

function api:source_set(name)
assert(type(name) == "string", "Name is not a string.")
return function (attribute)
writer:add_statement('source_set', self, attribute, name)
end
end
function api:shared_library(name)
assert(type(name) == "string", "Name is not a string.")
return function (attribute)
writer:add_statement('shared_library', self, attribute, name)
end
end
function api:static_library(name)
assert(type(name) == "string", "Name is not a string.")
return function (attribute)
writer:add_statement('static_library', self, attribute, name)
end
end
function api:executable(name)
assert(type(name) == "string", "Name is not a string.")
return function (attribute)
writer:add_statement('executable', self, attribute, name)
end
end
function api:lua_library(name)
assert(type(name) == "string", "Name is not a string.")
return function (attribute)
attribute.luaversion = attribute.luaversion or "lua54"
writer:add_statement('shared_library', self, attribute, name)
end
end
function api:lua_source(name)
assert(type(name) == "string", "Name is not a string.")
return function (attribute)
attribute.luaversion = attribute.luaversion or "lua54"
writer:add_statement('source_set', self, attribute, name)
end
end
function api:build(name)
if type(name) == "table" then
writer:add_statement('build', self, name)
return
end
assert(type(name) == "string", "Name is not a string.")
return function (attribute)
writer:add_statement('build', self, attribute, name)
end
end
function api:copy(name)
if type(name) == "table" then
writer:add_statement('copy', self, name)
return
end
assert(type(name) == "string", "Name is not a string.")
return function (attribute)
writer:add_statement('copy', self, attribute, name)
end
end
function api:runlua(name)
if type(name) == "table" then
writer:add_statement('runlua', self, name)
return
end
assert(type(name) == "string", "Name is not a string.")
return function (attribute)
writer:add_statement('runlua', self, attribute, name)
end
end
function api:default(attribute)
if self == mainSimulator then
writer:add_statement('default', self, {deps = attribute})
end
end
function api:phony(name)
if type(name) == "table" then
writer:add_statement('phony', self, name)
return
end
assert(type(name) == "string", "Name is not a string.")
return function (attribute)
writer:add_statement('phony', self, attribute, name)
end
end
function api:has(name)
assert(type(name) == "string", "Name is not a string.")
return writer:has(name)
end
function api:path(value)
return pathutil.create(value)
end
function api:rule(name)
assert(type(name) == "string", "Name is not a string.")
return function (attribute)
writer:add_statement('rule', self, attribute, name)
end
end
function api:required_version(buildVersion)
local function parse_version(v)
local major, minor = v:match "^(%d+)%.(%d+)"
if not major then
error(string.format("Invalid version string: `%s`.", v))
end
return tonumber(major) * 1000 + tonumber(minor)
end
local luamakeVersion = require "version"
if parse_version(luamakeVersion) < parse_version(buildVersion) then
print(string.format("luamake version (%s) incompatible with build file required_version (%s).", luamakeVersion, buildVersion))
os.exit()
end
end

if globals.compiler == "msvc" then
function api:msvc_copydll(name)
if type(name) == "table" then
writer:add_statement('msvc_copydll', self, name)
return
end
assert(type(name) == "string", "Name is not a string.")
return function (attribute)
writer:add_statement('msvc_copydll', self, attribute, name)
end
end
else
function api:msvc_copydll()
return function () end
end
end

local alias = {
exe = "executable",
dll = "shared_library",
lib = "static_library",
src = "source_set",
lua_dll = "lua_library",
lua_src = "lua_source",
}
for to, from in pairs(alias) do
api[to] = api[from]
end

local mainMt = {}
function mainMt:__index(k)
Expand Down Expand Up @@ -209,7 +69,7 @@ end
local function openfile(name, mode)
local f, err = io.open(name, mode)
if f and (mode == nil or mode:match "r") then
writer:add_script(name)
writer.add_script(name)
end
return f, err
end
Expand Down Expand Up @@ -250,6 +110,12 @@ function api:import(path)
importfile(subSimulator, rootdir, filename)
end

function api:default(attribute)
if self == mainSimulator then
writer.default(attribute)
end
end

local function import(path)
path = path or "make.lua"
local fullpath = fsutil.normalize(WORKDIR, path)
Expand All @@ -260,16 +126,8 @@ local function import(path)
importfile(mainSimulator, WORKDIR, path)
end

local function init()
writer:init()
end

local function generate()
writer:generate()
end

return {
init = init,
init = writer.init,
generate = writer.generate,
import = import,
generate = generate,
}

0 comments on commit 5501d8a

Please sign in to comment.