mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-10 06:49:28 -05:00
Rework depedency management in premake lua scripts
This commit is contained in:
25
tools/scripts/folders.lua
Normal file
25
tools/scripts/folders.lua
Normal file
@ -0,0 +1,25 @@
|
||||
-- Functions for locating commonly used folders
|
||||
local _BuildFolder = path.getabsolute("../../build")
|
||||
function BuildFolder()
|
||||
return path.getrelative(os.getcwd(), _BuildFolder)
|
||||
end
|
||||
|
||||
local _ThirdPartyFolder = path.getabsolute("../../thirdparty")
|
||||
function ThirdPartyFolder()
|
||||
return path.getrelative(os.getcwd(), _ThirdPartyFolder)
|
||||
end
|
||||
|
||||
local _ProjectFolder = path.getabsolute("../../src")
|
||||
function ProjectFolder()
|
||||
return path.getrelative(os.getcwd(), _ProjectFolder)
|
||||
end
|
||||
|
||||
local _TestFolder = path.getabsolute("../../test")
|
||||
function TestFolder()
|
||||
return path.getrelative(os.getcwd(), _TestFolder)
|
||||
end
|
||||
|
||||
-- Target Directories
|
||||
TargetDirectoryBin = "%{wks.location}/bin/%{cfg.buildcfg}_%{cfg.platform}"
|
||||
TargetDirectoryLib = "%{wks.location}/lib/%{cfg.buildcfg}_%{cfg.platform}"
|
||||
TargetDirectoryTest = "%{wks.location}/lib/%{cfg.buildcfg}_%{cfg.platform}/tests"
|
20
tools/scripts/including.lua
Normal file
20
tools/scripts/including.lua
Normal file
@ -0,0 +1,20 @@
|
||||
-- Functions for including projects
|
||||
Includes = {}
|
||||
|
||||
function Includes:create()
|
||||
|
||||
list = {
|
||||
handles = {}
|
||||
}
|
||||
|
||||
function list:handle(name)
|
||||
if self.handles[name] == nil then
|
||||
self.handles[name] = true
|
||||
return true
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
return list
|
||||
end
|
48
tools/scripts/linking.lua
Normal file
48
tools/scripts/linking.lua
Normal file
@ -0,0 +1,48 @@
|
||||
-- Functions for linking projects
|
||||
Links = {}
|
||||
|
||||
function Links:create()
|
||||
|
||||
list = {
|
||||
stack = {},
|
||||
dependencies = {}
|
||||
}
|
||||
|
||||
function list:linkto(project)
|
||||
local projectName = project:name()
|
||||
for i, dependency in ipairs(self.stack) do
|
||||
if dependency == projectName then
|
||||
print "Circular dependency detected:"
|
||||
local dependencyList = projectName
|
||||
for j = i + 1, #self.stack do
|
||||
dependencyList = dependencyList .. " -> " .. self.stack[j]
|
||||
end
|
||||
dependencyList = dependencyList .. " -> " .. projectName
|
||||
print(dependencyList)
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
|
||||
table.insert(self.stack, projectName)
|
||||
project:link(self)
|
||||
table.remove(self.stack)
|
||||
end
|
||||
|
||||
function list:add(name)
|
||||
for i = 1, #self.dependencies do
|
||||
if self.dependencies[i] == name then
|
||||
table.remove(self.dependencies, i)
|
||||
i = i - 1
|
||||
end
|
||||
end
|
||||
table.insert(self.dependencies, name)
|
||||
end
|
||||
|
||||
function list:linkall()
|
||||
for i, dependency in ipairs(self.dependencies) do
|
||||
links(dependency)
|
||||
end
|
||||
end
|
||||
|
||||
return list
|
||||
end
|
0
tools/scripts/options.lua
Normal file
0
tools/scripts/options.lua
Normal file
8
tools/scripts/platform.lua
Normal file
8
tools/scripts/platform.lua
Normal file
@ -0,0 +1,8 @@
|
||||
-- Platform functions
|
||||
function ExecutableByOs(name)
|
||||
if os.host() == "windows" then
|
||||
return name .. ".exe"
|
||||
else
|
||||
return name
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user