Fixed bug 2802 - [patch] Fix android build compiling in wrong filesystem implementation
Jonas Kulla The configure script didn't differentiate between Linux and Android, unconditionally compiling in the unix implementation of SDL_sysfilesystem.c. I'm probably one of the very few people building SDL for android using classic configure + standalone toolchain, so this has gone undetected all along.
This commit is contained in:
commit
b48e54aafe
1635 changed files with 472973 additions and 0 deletions
482
premake/premake4.lua
Executable file
482
premake/premake4.lua
Executable file
|
@ -0,0 +1,482 @@
|
|||
-- Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org>
|
||||
--
|
||||
-- This software is provided 'as-is', without any express or implied
|
||||
-- warranty. In no event will the authors be held liable for any damages
|
||||
-- arising from the use of this software.
|
||||
--
|
||||
-- Permission is granted to anyone to use this software for any purpose,
|
||||
-- including commercial applications, and to alter it and redistribute it
|
||||
-- freely.
|
||||
--
|
||||
-- Meta-build system using premake created and maintained by
|
||||
-- Benjamin Henning <b.henning@digipen.edu>
|
||||
|
||||
--[[
|
||||
premake4.lua
|
||||
|
||||
This script sets up the entire premake system. It's responsible for executing
|
||||
all of the definition scripts for the SDL2 library and the entire test suite,
|
||||
or demos for the iOS platform. It handles each specific platform and uses the
|
||||
setup state to generate both the configuration header file needed to build
|
||||
SDL2 and the premake lua script to generate the target project files.
|
||||
]]
|
||||
|
||||
-- string utility functions
|
||||
dofile "util/sdl_string.lua"
|
||||
-- utility file wrapper for some useful functions
|
||||
dofile "util/sdl_file.lua"
|
||||
-- system for defining SDL projects
|
||||
dofile "util/sdl_projects.lua"
|
||||
-- offers a utility function for finding dependencies specifically on windows
|
||||
dofile "util/sdl_depends.lua"
|
||||
-- system for generating a *config.h file used to build the SDL2 library
|
||||
dofile "util/sdl_gen_config.lua"
|
||||
-- functions to handle complicated dependency checks using CMake-esque functions
|
||||
dofile "util/sdl_check_compile.lua"
|
||||
-- a list of dependency functions for the SDL2 project and any other projects
|
||||
dofile "util/sdl_dependency_checkers.lua"
|
||||
|
||||
-- the following are various options for configuring the meta-build system
|
||||
newoption {
|
||||
trigger = "to",
|
||||
value = "path",
|
||||
description = "Set the base output directory for the generated and executed lua file."
|
||||
}
|
||||
|
||||
newoption {
|
||||
trigger = "mingw",
|
||||
description = "Runs the premake generation script targeted to MinGW."
|
||||
}
|
||||
|
||||
newoption {
|
||||
trigger = "cygwin",
|
||||
description = "Runs the premake generation script targeted to Cygwin."
|
||||
}
|
||||
|
||||
newoption {
|
||||
trigger = "ios",
|
||||
description = "Runs the premake generation script targeted to iOS."
|
||||
}
|
||||
|
||||
-- determine the localized destination path
|
||||
local baseLoc = "./"
|
||||
if _OPTIONS["to"] then
|
||||
baseLoc = _OPTIONS["to"]:gsub("\\", "/")
|
||||
end
|
||||
|
||||
local deps = SDL_getDependencies()
|
||||
for _,v in ipairs(deps) do
|
||||
newoption {
|
||||
trigger = v:lower(),
|
||||
description = "Force on the dependency: " .. v
|
||||
}
|
||||
end
|
||||
|
||||
-- clean action
|
||||
if _ACTION == "clean" then
|
||||
-- this is kept the way it is because premake's default method of cleaning the
|
||||
-- build tree is not very good standalone, whereas the following correctly
|
||||
-- cleans every build option
|
||||
print("Cleaning the build environment...")
|
||||
os.rmdir(baseLoc .. "/SDL2")
|
||||
os.rmdir(baseLoc .. "/SDL2main")
|
||||
os.rmdir(baseLoc .. "/SDL2test")
|
||||
os.rmdir(baseLoc .. "/tests")
|
||||
os.rmdir(baseLoc .. "/Demos")
|
||||
os.rmdir(baseLoc .. "/ipch") -- sometimes shows up
|
||||
os.remove(baseLoc .. "/SDL.sln")
|
||||
os.remove(baseLoc .. "/SDL.suo")
|
||||
os.remove(baseLoc .. "/SDL.v11.suo")
|
||||
os.remove(baseLoc .. "/SDL.sdf")
|
||||
os.remove(baseLoc .. "/SDL.ncb")
|
||||
os.remove(baseLoc .. "/SDL-gen.lua")
|
||||
os.remove(baseLoc .. "/SDL_config_premake.h")
|
||||
os.remove(baseLoc .. "/Makefile")
|
||||
os.rmdir(baseLoc .. "/SDL.xcworkspace")
|
||||
os.exit()
|
||||
end
|
||||
|
||||
-- only run through standard execution if not in help mode
|
||||
if _OPTIONS["help"] == nil then
|
||||
-- load all of the project definitions
|
||||
local results = os.matchfiles("projects/**.lua")
|
||||
for _,dir in ipairs(results) do
|
||||
dofile(dir)
|
||||
end
|
||||
|
||||
-- figure out which configuration template to use
|
||||
local premakeConfigHeader = baseLoc .. "/SDL_config_premake.h"
|
||||
-- minimal configuration is the default
|
||||
local premakeTemplateHeader = "./config/SDL_config_minimal.template.h"
|
||||
if SDL_getos() == "windows" or SDL_getos() == "mingw" then
|
||||
premakeTemplateHeader = "./config/SDL_config_windows.template.h"
|
||||
elseif SDL_getos() == "macosx" then
|
||||
premakeTemplateHeader = "./config/SDL_config_macosx.template.h"
|
||||
elseif SDL_getos() == "ios" then
|
||||
premakeTemplateHeader = "./config/SDL_config_iphoneos.template.h"
|
||||
elseif os.get() == "linux" then
|
||||
premakeTemplateHeader = "./config/SDL_config_linux.template.h"
|
||||
elseif SDL_getos() == "cygwin" then
|
||||
premakeTemplateHeader = "./config/SDL_config_cygwin.template.h"
|
||||
end
|
||||
|
||||
local genFile = baseLoc .. "/SDL-gen.lua"
|
||||
local file = fileopen(genFile, "wt")
|
||||
print("Generating " .. genFile .. "...")
|
||||
-- begin generating the config header file
|
||||
startGeneration(premakeConfigHeader, premakeTemplateHeader)
|
||||
|
||||
-- begin generating the actual premake script
|
||||
file:print(0, "-- Premake script generated by Simple DirectMedia Layer meta-build script")
|
||||
file:print(1, 'solution "SDL"')
|
||||
local platforms = { }
|
||||
local platformsIndexed = { }
|
||||
for n,p in pairs(projects) do
|
||||
if p.platforms and #p.platforms ~= 0 then
|
||||
for k,v in pairs(p.platforms) do
|
||||
platforms[v] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
for n,v in pairs(platforms) do
|
||||
platformsIndexed[#platformsIndexed + 1] = n
|
||||
end
|
||||
file:print(2, implode(platformsIndexed, 'platforms {', '"', '"', ', ', '}'))
|
||||
file:print(2, 'configurations { "Debug", "Release" }')
|
||||
for n,p in pairs(projects) do
|
||||
if p.compat then
|
||||
local proj = {}
|
||||
if p.projectLocation ~= nil then
|
||||
proj.location = p.projectLocation .. "/" .. p.name
|
||||
else
|
||||
proj.location = p.name .. "/"
|
||||
end
|
||||
proj.includedirs = { path.getrelative(baseLoc,
|
||||
path.getdirectory(premakeConfigHeader)),
|
||||
path.getrelative(baseLoc, "../include") }
|
||||
proj.libdirs = { }
|
||||
proj.files = { }
|
||||
local links = { }
|
||||
local dbgCopyTable = { }
|
||||
local relCopyTable = { }
|
||||
-- custom links that shouldn't exist...
|
||||
-- (these should always happen before dependencies)
|
||||
if p.customLinks ~= nil then
|
||||
for k,lnk in pairs(p.customLinks) do
|
||||
table.insert(links, lnk)
|
||||
end
|
||||
end
|
||||
-- setup project dependencies
|
||||
local dependencyLocs = { }
|
||||
if p.projectDependencies ~= nil and #p.projectDependencies ~= 0 then
|
||||
for k,projname in pairs(p.projectDependencies) do
|
||||
local depproj = projects[projname]
|
||||
-- validation that it exists and can be linked to
|
||||
if depproj ~= nil and (depproj.kind == "SharedLib" or depproj.kind == "StaticLib") then
|
||||
if depproj.kind == "SharedLib" then
|
||||
local deplocation = nil
|
||||
if depproj.projectLocation ~= nil then
|
||||
deplocation = depproj.projectLocation .. "/" .. p.name
|
||||
else
|
||||
deplocation = depproj.name .. "/"
|
||||
end
|
||||
table.insert(dependencyLocs, { location = deplocation, name = projname })
|
||||
else -- static lib
|
||||
-- we are now dependent on everything the static lib is dependent on
|
||||
if depproj.customLinks ~= nil then
|
||||
for k,lnk in pairs(depproj.customLinks) do
|
||||
table.insert(links, lnk)
|
||||
end
|
||||
end
|
||||
-- also include links from dependencies
|
||||
for i,d in pairs(depproj.dependencyTree) do
|
||||
if d.links then
|
||||
for k,v in pairs(d.links) do
|
||||
local propPath = v:gsub("\\", "/")
|
||||
table.insert(links, propPath)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
-- finally, depend on the project itself
|
||||
table.insert(links, projname)
|
||||
elseif depproj == nil then
|
||||
print("Warning: Missing external dependency for project: ".. p.name ..
|
||||
". Be sure you setup project dependencies in a logical order.")
|
||||
else
|
||||
print("Warning: Cannot link " .. p.name .. " to second project " ..
|
||||
projname .. " because the second project is not a library.")
|
||||
end
|
||||
end
|
||||
end
|
||||
-- iterate across all root directories, matching source directories
|
||||
local dirs = createDirTable(p.sourcedir)
|
||||
-- but first, handle any files specifically set in the project, rather than
|
||||
-- its dependencies
|
||||
-- register c and h files in this directory
|
||||
if (p.files ~= nil and #p.files ~= 0) or (p.paths ~= nil and #p.paths ~= 0) then
|
||||
-- handle all lists of files
|
||||
if p.files ~= nil and #p.files ~= 0 then
|
||||
for k,filepat in pairs(p.files) do
|
||||
for k,f in pairs(os.matchfiles(p.sourcedir .. filepat)) do
|
||||
table.insert(proj.files, path.getrelative(baseLoc, f))
|
||||
end
|
||||
end
|
||||
end -- end props files if
|
||||
-- add all .c/.h files from each path
|
||||
-- handle all related paths
|
||||
if p.paths ~= nil and #p.paths ~= 0 then
|
||||
for j,filepat in ipairs(p.paths) do
|
||||
for k,f in pairs(os.matchfiles(p.sourcedir .. filepat .. "*.c")) do
|
||||
table.insert(proj.files, path.getrelative(baseLoc, f))
|
||||
end
|
||||
for k,f in pairs(os.matchfiles(p.sourcedir .. filepat .. "*.h")) do
|
||||
table.insert(proj.files, path.getrelative(baseLoc, f))
|
||||
end
|
||||
-- mac osx
|
||||
for k,f in pairs(os.matchfiles(p.sourcedir .. filepat .. "*.m")) do
|
||||
table.insert(proj.files, path.getrelative(baseLoc, f))
|
||||
end
|
||||
end
|
||||
end -- end of props paths if
|
||||
end -- end of check for files/paths in main project
|
||||
-- if this project has any configuration flags, add them to the current file
|
||||
if p.config then
|
||||
addConfig(p.config)
|
||||
end
|
||||
-- now, handle files and paths for dependencies
|
||||
for i,props in ipairs(p.dependencyTree) do
|
||||
if props.compat then
|
||||
-- register c and h files in this directory
|
||||
-- handle all lists of files
|
||||
if props.files ~= nil and #props.files ~= 0 then
|
||||
for k,filepat in pairs(props.files) do
|
||||
for k,f in pairs(os.matchfiles(p.sourcedir .. filepat)) do
|
||||
table.insert(proj.files, path.getrelative(baseLoc, f))
|
||||
end
|
||||
end
|
||||
end -- end props files if
|
||||
-- add all .c/.h files from each path
|
||||
-- handle all related paths
|
||||
if props.paths ~= nil and #props.paths ~= 0 then
|
||||
for j,filepat in ipairs(props.paths) do
|
||||
for k,f in pairs(os.matchfiles(p.sourcedir .. filepat .. "*.c")) do
|
||||
table.insert(proj.files, path.getrelative(baseLoc, f))
|
||||
end
|
||||
for k,f in pairs(os.matchfiles(p.sourcedir .. filepat .. "*.h")) do
|
||||
table.insert(proj.files, path.getrelative(baseLoc, f))
|
||||
end
|
||||
-- mac osx
|
||||
for k,f in pairs(os.matchfiles(p.sourcedir .. filepat .. "*.m")) do
|
||||
table.insert(proj.files, path.getrelative(baseLoc, f))
|
||||
end
|
||||
end
|
||||
end -- end of props paths if
|
||||
-- if this dependency has any special configuration flags, add 'em
|
||||
if props.config then
|
||||
addConfig(props.config)
|
||||
end -- end of props config if check
|
||||
end -- end check for compatibility
|
||||
end -- end of props loop
|
||||
--local debugConfig = configuration("Debug")
|
||||
local debugConfig = {}
|
||||
local releaseConfig = {}
|
||||
debugConfig.defines = { "USING_PREMAKE_CONFIG_H", "_DEBUG" }
|
||||
releaseConfig.defines = { "USING_PREMAKE_CONFIG_H", "NDEBUG" }
|
||||
-- setup per-project defines
|
||||
if p.defines ~= nil then
|
||||
for k,def in pairs(p.defines) do
|
||||
table.insert(debugConfig.defines, def)
|
||||
table.insert(releaseConfig.defines, def)
|
||||
end
|
||||
end
|
||||
debugConfig.buildoptions = { }
|
||||
if SDL_getos() == "windows" then
|
||||
table.insert(debugConfig.buildoptions, "/MDd")
|
||||
end
|
||||
debugConfig.linkoptions = { }
|
||||
releaseConfig.buildoptions = {}
|
||||
releaseConfig.linkoptions = {}
|
||||
local baseBuildDir = "/Build"
|
||||
if os.get() == "windows" then
|
||||
baseBuildDir = "/Win32"
|
||||
end
|
||||
debugConfig.flags = { "Symbols" }
|
||||
debugConfig.targetdir = proj.location .. baseBuildDir .. "/Debug"
|
||||
releaseConfig.flags = { "OptimizeSpeed" }
|
||||
releaseConfig.targetdir = proj.location .. baseBuildDir .. "/Release"
|
||||
-- setup postbuild options
|
||||
local dbgPostbuildcommands = { }
|
||||
local relPostbuildcommands = { }
|
||||
-- handle copying depended shared libraries to correct folders
|
||||
if os.get() == "windows" then
|
||||
for k,deploc in pairs(dependencyLocs) do
|
||||
table.insert(dbgCopyTable, { src = deploc.location .. baseBuildDir .. "/Debug/" .. deploc.name .. ".dll",
|
||||
dst = debugConfig.targetdir .. "/" .. deploc.name .. ".dll" })
|
||||
table.insert(relCopyTable, { src = deploc.location .. baseBuildDir .. "/Release/" .. deploc.name .. ".dll",
|
||||
dst = releaseConfig.targetdir .. "/" .. deploc.name .. ".dll" })
|
||||
end
|
||||
end
|
||||
if p.copy ~= nil then
|
||||
for k,file in pairs(p.copy) do
|
||||
-- the following builds relative paths native to the current system for copying, other
|
||||
-- than the copy command itself, this is essentially cross-platform for paths
|
||||
|
||||
-- all custom copies should be relative to the current working directory
|
||||
table.insert(dbgCopyTable, { src = path.getrelative(baseLoc, p.sourcedir .. "/" .. file), dst = debugConfig.targetdir .. "/" .. file })
|
||||
table.insert(relCopyTable, { src = path.getrelative(baseLoc, p.sourcedir .. "/" .. file), dst = releaseConfig.targetdir .. "/" .. file })
|
||||
end
|
||||
end
|
||||
for k,file in pairs(dbgCopyTable) do
|
||||
-- all copies should be relative to project location, based on platform
|
||||
local relLocation = "./"
|
||||
--if os.get() == "windows" then
|
||||
relLocation = proj.location
|
||||
--end
|
||||
local fromPath = "./" .. path.getrelative(relLocation, file.src)
|
||||
local toPath = "./" .. path.getrelative(relLocation, file.dst)
|
||||
local toPathParent = path.getdirectory(toPath)
|
||||
local copyCommand = "cp"
|
||||
local destCheck = "if [ ! -d \\\"" .. toPathParent .. "\\\" ]; then mkdir -p \\\"" .. toPathParent .. "\\\"; fi"
|
||||
if SDL_getos() ~= "windows" and fromPath:find("*") ~= nil then
|
||||
-- to path must be a directory for * copies
|
||||
toPath = path.getdirectory(toPath)
|
||||
end
|
||||
if SDL_getos() == "windows" then
|
||||
fromPath = path.translate(fromPath, "/"):gsub("/", "\\\\")
|
||||
toPath = path.translate(toPath, "/"):gsub("/", "\\\\")
|
||||
toPathParent = path.translate(toPathParent, "/"):gsub("/", "\\\\")
|
||||
copyCommand = "copy"
|
||||
destCheck = "if not exist \\\"" .. toPathParent .. "\\\" ( mkdir \\\"" .. toPathParent .. "\\\" )"
|
||||
else
|
||||
fromPath = path.translate(fromPath, nil):gsub("\\", "/")
|
||||
toPath = path.translate(toPath, nil):gsub("\\", "/")
|
||||
end
|
||||
-- command will check for destination directory to exist and, if it doesn't,
|
||||
-- it will make the directory and then copy over any assets
|
||||
local quotedFromPath = fromPath
|
||||
if SDL_getos() == "windows" or fromPath:find("*") == nil then
|
||||
quotedFromPath = '\\"' .. quotedFromPath .. '\\"'
|
||||
end
|
||||
table.insert(dbgPostbuildcommands, destCheck)
|
||||
table.insert(dbgPostbuildcommands,
|
||||
copyCommand .. " " ..
|
||||
quotedFromPath .. " \\\"" ..
|
||||
toPath .. "\\\"")
|
||||
end
|
||||
for k,file in pairs(relCopyTable) do
|
||||
-- all copies should be relative to project location, based on platform
|
||||
local relLocation = "./"
|
||||
relLocation = proj.location
|
||||
local fromPath = "./" .. path.getrelative(relLocation, file.src)
|
||||
local toPath = "./" .. path.getrelative(relLocation, file.dst)
|
||||
local toPathParent = path.getdirectory(toPath)
|
||||
local copyCommand = "cp"
|
||||
local destCheck = "if [ ! -d \\\"" .. toPathParent .. "\\\" ]; then mkdir -p \\\"" .. toPathParent .. "\\\"; fi"
|
||||
if SDL_getos() ~= "windows" and fromPath:find("*") ~= nil then
|
||||
-- to path must be a directory for * copies
|
||||
toPath = path.getdirectory(toPath)
|
||||
end
|
||||
if SDL_getos() == "windows" then
|
||||
fromPath = path.translate(fromPath, "/"):gsub("/", "\\\\")
|
||||
toPath = path.translate(toPath, "/"):gsub("/", "\\\\")
|
||||
toPathParent = path.translate(toPathParent, "/"):gsub("/", "\\\\")
|
||||
copyCommand = "copy"
|
||||
destCheck = "if not exist \\\"" .. toPathParent .. "\\\" ( mkdir \\\"" .. toPathParent .. "\\\" )"
|
||||
else
|
||||
fromPath = path.translate(fromPath, nil):gsub("\\", "/")
|
||||
toPath = path.translate(toPath, nil):gsub("\\", "/")
|
||||
end
|
||||
-- command will check for destination directory to exist and, if it doesn't,
|
||||
-- it will make the directory and then copy over any assets
|
||||
local quotedFromPath = fromPath
|
||||
if SDL_getos() == "windows" or fromPath:find("*") == nil then
|
||||
quotedFromPath = '\\"' .. quotedFromPath .. '\\"'
|
||||
end
|
||||
table.insert(relPostbuildcommands, destCheck)
|
||||
table.insert(relPostbuildcommands,
|
||||
copyCommand .. " " ..
|
||||
quotedFromPath .. " \\\"" ..
|
||||
toPath .. "\\\"")
|
||||
end
|
||||
debugConfig.postbuildcommands = dbgPostbuildcommands
|
||||
debugConfig.links = links
|
||||
releaseConfig.postbuildcommands = relPostbuildcommands
|
||||
releaseConfig.links = links -- release links?
|
||||
for i,d in pairs(p.dependencyTree) do
|
||||
if d.includes then
|
||||
for k,v in pairs(d.includes) do
|
||||
local propPath = v:gsub("\\", "/")
|
||||
proj.includedirs[propPath] = propPath
|
||||
end
|
||||
end
|
||||
if d.libs then
|
||||
for k,v in pairs(d.libs) do
|
||||
local propPath = v:gsub("\\", "/")
|
||||
proj.libdirs[propPath] = propPath
|
||||
end
|
||||
end
|
||||
if d.links then
|
||||
for k,v in pairs(d.links) do
|
||||
local propPath = v:gsub("\\", "/")
|
||||
debugConfig.links[#debugConfig.links + 1] = propPath
|
||||
end
|
||||
end
|
||||
end
|
||||
if #proj.files > 0 then
|
||||
file:print(1, 'project "' .. p.name .. '"')
|
||||
file:print(2, 'targetname "' .. p.name .. '"')
|
||||
-- note: commented out because I think this hack is unnecessary
|
||||
--if iOSMode and p.kind == "ConsoleApp" then
|
||||
-- hack for iOS where we cannot build "tools"/ConsoleApps in
|
||||
-- Xcode for iOS, so we convert them over to WindowedApps
|
||||
-- p.kind = "WindowedApp"
|
||||
--end
|
||||
file:print(2, 'kind "' .. p.kind .. '"')
|
||||
file:print(2, 'language "' .. p.language .. '"')
|
||||
file:print(2, 'location "' .. proj.location .. '"')
|
||||
file:print(2, 'flags { "NoExceptions" }') -- NoRTTI
|
||||
file:print(2, 'buildoptions { }')--"/GS-" }')
|
||||
file:print(2, implode(proj.includedirs, 'includedirs {', '"', '"', ', ', '}'))
|
||||
file:print(2, implode(proj.libdirs, 'libdirs {', '"', '"', ', ', '}'))
|
||||
file:print(2, implode(proj.files, 'files {', '"', '"', ', ', '}'))
|
||||
-- debug configuration
|
||||
file:print(2, 'configuration "Debug"')
|
||||
file:print(3, 'targetdir "' .. debugConfig.targetdir .. '"')
|
||||
-- debug dir is relative to the solution's location
|
||||
file:print(3, 'debugdir "' .. debugConfig.targetdir .. '"')
|
||||
file:print(3, implode(debugConfig.defines, 'defines {', '"', '"', ', ', '}'))
|
||||
file:print(3, implode(debugConfig.links, "links {", '"', '"', ', ', "}"))
|
||||
if SDL_getos() == "mingw" then
|
||||
-- static runtime
|
||||
file:print(3, 'linkoptions { "-lmingw32 -static-libgcc" }')
|
||||
end
|
||||
if SDL_getos() == "cygwin" then
|
||||
file:print(3, 'linkoptions { "-static-libgcc" }')
|
||||
end
|
||||
file:print(3, implode(debugConfig.flags, "flags {", '"', '"', ', ', "}"))
|
||||
file:print(3, implode(debugConfig.postbuildcommands, "postbuildcommands {", '"', '"', ', ', "}"))
|
||||
-- release configuration
|
||||
file:print(2, 'configuration "Release"')
|
||||
file:print(3, 'targetdir "' .. releaseConfig.targetdir .. '"')
|
||||
-- debug dir is relative to the solution's location
|
||||
file:print(3, 'debugdir "' .. releaseConfig.targetdir .. '"')
|
||||
file:print(3, implode(releaseConfig.defines, 'defines {', '"', '"', ', ', '}'))
|
||||
file:print(3, implode(releaseConfig.links, "links {", '"', '"', ', ', "}"))
|
||||
if SDL_getos() == "mingw" then
|
||||
-- static runtime
|
||||
file:print(3, 'linkoptions { "-lmingw32 -static-libgcc" }')
|
||||
end
|
||||
file:print(3, implode(releaseConfig.flags, "flags {", '"', '"', ', ', "}"))
|
||||
file:print(3, implode(releaseConfig.postbuildcommands, "postbuildcommands {", '"', '"', ', ', "}"))
|
||||
end -- end check for valid project (files to build)
|
||||
end -- end compatibility check for projects
|
||||
end -- end for loop for projects
|
||||
|
||||
endGeneration() -- finish generating the config header file
|
||||
file:close()
|
||||
|
||||
-- generation is over, now execute the generated file, setup the premake
|
||||
-- solution, and let premake execute the action and generate the project files
|
||||
dofile(genFile)
|
||||
end -- end check for not being in help mode
|
Loading…
Add table
Add a link
Reference in a new issue