Initial community commit
This commit is contained in:
141
Src/external_dependencies/openmpt-trunk/include/genie/src/tools/swift.lua
vendored
Normal file
141
Src/external_dependencies/openmpt-trunk/include/genie/src/tools/swift.lua
vendored
Normal file
@@ -0,0 +1,141 @@
|
||||
--
|
||||
-- swift.lua
|
||||
-- Provides Swift-specific configuration strings.
|
||||
--
|
||||
|
||||
|
||||
premake.swift = { }
|
||||
|
||||
|
||||
--
|
||||
-- Set default tools
|
||||
--
|
||||
|
||||
premake.swift.swiftc = "swiftc"
|
||||
premake.swift.swift = "swift"
|
||||
premake.swift.cc = "gcc"
|
||||
premake.swift.ar = "ar"
|
||||
premake.swift.ld = "ld"
|
||||
premake.swift.dsymutil = "dsymutil"
|
||||
|
||||
|
||||
--
|
||||
-- Translation of Premake flags into Swift flags
|
||||
--
|
||||
|
||||
local swiftcflags =
|
||||
{
|
||||
Symbols = "-g", -- Produce debug information
|
||||
DisableWarnings = "--suppress-warnings", -- Disable warnings
|
||||
FatalWarnings = "--warnings-as-errors", -- Treat warnings as fatal
|
||||
Optimize = "-O -whole-module-optimization",
|
||||
OptimizeSize = "-O -whole-module-optimization",
|
||||
OptimizeSpeed = "-Ounchecked -whole-module-optimization",
|
||||
MinimumWarnings = "-minimum-warnings",
|
||||
}
|
||||
|
||||
local swiftlinkflags = {
|
||||
StaticRuntime = "-static-stdlib",
|
||||
}
|
||||
|
||||
premake.swift.platforms = {
|
||||
Native = {
|
||||
swiftcflags = "",
|
||||
swiftlinkflags = "",
|
||||
},
|
||||
x64 = {
|
||||
swiftcflags = "",
|
||||
swiftlinkflags = "",
|
||||
}
|
||||
}
|
||||
|
||||
local platforms = premake.swift.platforms
|
||||
|
||||
--
|
||||
-- Returns a list of compiler flags, based on the supplied configuration.
|
||||
--
|
||||
|
||||
function premake.swift.get_sdk_path(cfg)
|
||||
return string.trim(os.outputof("xcrun --show-sdk-path"))
|
||||
end
|
||||
|
||||
function premake.swift.get_sdk_platform_path(cfg)
|
||||
return string.trim(os.outputof("xcrun --show-sdk-platform-path"))
|
||||
end
|
||||
|
||||
function premake.swift.get_toolchain_path(cfg)
|
||||
return string.trim(os.outputof("xcode-select -p")) .. "/Toolchains/XcodeDefault.xctoolchain"
|
||||
end
|
||||
|
||||
function premake.swift.gettarget(cfg)
|
||||
return "-target x86_64-apple-macosx10.11"
|
||||
end
|
||||
|
||||
function premake.swift.getswiftcflags(cfg)
|
||||
local result = table.translate(cfg.flags, swiftcflags)
|
||||
table.insert(result, platforms[cfg.platform].swiftcflags)
|
||||
|
||||
result = table.join(result, cfg.buildoptions_swift)
|
||||
|
||||
if cfg.kind == "SharedLib" or cfg.kind == "StaticLib" then
|
||||
table.insert(result, "-parse-as-library")
|
||||
end
|
||||
|
||||
table.insert(result, premake.swift.gettarget(cfg))
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
function premake.swift.getswiftlinkflags(cfg)
|
||||
local result = table.translate(cfg.flags, swiftlinkflags)
|
||||
table.insert(result, platforms[cfg.platform].swiftlinkflags)
|
||||
|
||||
result = table.join(result, cfg.linkoptions_swift)
|
||||
|
||||
if cfg.kind == "SharedLib" or cfg.kind == "StaticLib" then
|
||||
table.insert(result, "-emit-library")
|
||||
else
|
||||
table.insert(result, "-emit-executable")
|
||||
end
|
||||
|
||||
table.insert(result, premake.swift.gettarget(cfg))
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
function premake.swift.getmodulemaps(cfg)
|
||||
local maps = {}
|
||||
if next(cfg.swiftmodulemaps) then
|
||||
for _, mod in ipairs(cfg.swiftmodulemaps) do
|
||||
table.insert(maps, string.format("-Xcc -fmodule-map-file=%s", mod))
|
||||
end
|
||||
end
|
||||
return maps
|
||||
end
|
||||
|
||||
function premake.swift.getlibdirflags(cfg)
|
||||
return premake.gcc.getlibdirflags(cfg)
|
||||
end
|
||||
|
||||
function premake.swift.getldflags(cfg)
|
||||
local result = { platforms[cfg.platform].ldflags }
|
||||
|
||||
local links = premake.getlinks(cfg, "siblings", "basename")
|
||||
for _,v in ipairs(links) do
|
||||
if path.getextension(v) == ".framework" then
|
||||
table.insert(result, "-framework "..v)
|
||||
else
|
||||
table.insert(result, "-l"..v)
|
||||
end
|
||||
end
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
function premake.swift.getlinkflags(cfg)
|
||||
return premake.gcc.getlinkflags(cfg)
|
||||
end
|
||||
|
||||
function premake.swift.getarchiveflags(cfg)
|
||||
return ""
|
||||
end
|
||||
Reference in New Issue
Block a user