mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
383ab43dbc
* cpu/dsp56156: Removed vestigial (and excessively slow) "new" execution code. * apple/bandit.cpp: Got rid of unnecessary friend declaration. * nintendo/n64_v.cpp: More const. * Fixed a few "const qualifier has no effect" warnings.
654 lines
18 KiB
Lua
654 lines
18 KiB
Lua
--
|
|
-- Copyright 2010-2021 Branimir Karadzic. All rights reserved.
|
|
-- License: https://github.com/bkaradzic/bx#license-bsd-2-clause
|
|
--
|
|
|
|
local naclToolchain = ""
|
|
local toolchainPrefix = ""
|
|
|
|
if _OPTIONS['TOOLCHAIN'] then
|
|
toolchainPrefix = _OPTIONS["TOOLCHAIN"]
|
|
end
|
|
|
|
newoption {
|
|
trigger = "gcc",
|
|
value = "GCC",
|
|
description = "Choose GCC flavor",
|
|
allowed = {
|
|
{ "android-arm", "Android - ARM" },
|
|
{ "android-arm64", "Android - ARM64" },
|
|
{ "android-x86", "Android - x86" },
|
|
{ "android-x64", "Android - x64" },
|
|
{ "asmjs", "Emscripten/asm.js" },
|
|
{ "freebsd", "FreeBSD" },
|
|
{ "freebsd-clang", "FreeBSD (clang compiler)"},
|
|
{ "linux-gcc", "Linux (GCC compiler)" },
|
|
{ "linux-clang", "Linux (Clang compiler)" },
|
|
{ "mingw32-gcc", "MinGW32" },
|
|
{ "mingw64-gcc", "MinGW64" },
|
|
{ "mingw-clang", "MinGW (clang compiler)" },
|
|
{ "netbsd", "NetBSD" },
|
|
{ "netbsd-clang", "NetBSD (clang compiler)"},
|
|
{ "openbsd", "OpenBSD" },
|
|
{ "openbsd-clang", "OpenBSD (clang compiler)"},
|
|
{ "osx", "OSX (GCC compiler)" },
|
|
{ "osx-clang", "OSX (Clang compiler)" },
|
|
{ "solaris", "Solaris" },
|
|
},
|
|
}
|
|
|
|
newoption {
|
|
trigger = "vs",
|
|
value = "toolset",
|
|
description = "Choose VS toolset",
|
|
allowed = {
|
|
{ "intel-15", "Intel C++ Compiler XE 15.0" },
|
|
{ "clangcl", "Visual Studio 2019 using Clang/LLVM" },
|
|
},
|
|
}
|
|
|
|
newoption {
|
|
trigger = "with-android",
|
|
value = "#",
|
|
description = "Set Android platform version (default: android-24).",
|
|
}
|
|
|
|
local android = {}
|
|
|
|
function androidToolchainRoot()
|
|
if android.toolchainRoot == nil then
|
|
local hostTags = {
|
|
windows = "windows-x86_64",
|
|
linux = "linux-x86_64",
|
|
macosx = "darwin-x86_64"
|
|
}
|
|
android.toolchainRoot = (os.getenv("ANDROID_NDK_HOME") or "") .. "/toolchains/llvm/prebuilt/" .. hostTags[os.get()]
|
|
end
|
|
|
|
return android.toolchainRoot;
|
|
end
|
|
|
|
function toolchain(_buildDir, _subDir)
|
|
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION)
|
|
|
|
local androidApiLevel = 24
|
|
if _OPTIONS["with-android"] then
|
|
androidApiLevel = _OPTIONS["with-android"]
|
|
end
|
|
|
|
if _ACTION == "gmake" or _ACTION == "ninja" then
|
|
|
|
if nil == _OPTIONS["gcc"] or nil == _OPTIONS["gcc_version"] then
|
|
print("GCC flavor and version must be specified!")
|
|
os.exit(1)
|
|
end
|
|
|
|
if string.find(_OPTIONS["gcc"], "android") then
|
|
-- 64-bit android platform requires >= 21
|
|
if _OPTIONS["PLATFORM"]:find("64", -2) and (androidApiLevel < 21) then
|
|
error("64-bit android requires platform 21 or higher")
|
|
end
|
|
if not os.getenv("ANDROID_NDK_HOME") then
|
|
print("Set ANDROID_NDK_HOME environment variable.")
|
|
end
|
|
|
|
|
|
premake.gcc.cc = androidToolchainRoot() .. "/bin/clang"
|
|
premake.gcc.cxx = androidToolchainRoot() .. "/bin/clang++"
|
|
premake.gcc.ar = androidToolchainRoot() .. "/bin/llvm-ar"
|
|
|
|
premake.gcc.llvm = true
|
|
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-android-" .. _OPTIONS["PLATFORM"])
|
|
end
|
|
|
|
if "asmjs" == _OPTIONS["gcc"] then
|
|
|
|
if not os.getenv("EMSCRIPTEN") then
|
|
print("Set EMSCRIPTEN enviroment variables.")
|
|
end
|
|
|
|
premake.gcc.cc = "$(EMSCRIPTEN)/emcc"
|
|
premake.gcc.cxx = "$(EMSCRIPTEN)/em++"
|
|
premake.gcc.ar = "$(EMSCRIPTEN)/emar"
|
|
premake.gcc.llvm = true
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-asmjs")
|
|
end
|
|
|
|
if "freebsd" == _OPTIONS["gcc"] then
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-freebsd")
|
|
end
|
|
|
|
if "freebsd-clang" == _OPTIONS["gcc"] then
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-freebsd-clang")
|
|
end
|
|
|
|
if "netbsd" == _OPTIONS["gcc"] then
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-netbsd")
|
|
end
|
|
|
|
if "netbsd-clang" == _OPTIONS["gcc"] then
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-netbsd-clang")
|
|
end
|
|
|
|
if "openbsd" == _OPTIONS["gcc"] then
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-openbsd")
|
|
end
|
|
|
|
if "openbsd-clang" == _OPTIONS["gcc"] then
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-openbsd-clang")
|
|
end
|
|
|
|
if "linux-gcc" == _OPTIONS["gcc"] then
|
|
-- Force gcc-4.2 on ubuntu-intrepid
|
|
if _OPTIONS["distro"]=="ubuntu-intrepid" then
|
|
premake.gcc.cc = "@gcc -V 4.2"
|
|
premake.gcc.cxx = "@g++-4.2"
|
|
end
|
|
premake.gcc.ar = "ar"
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-linux")
|
|
end
|
|
|
|
if "solaris" == _OPTIONS["gcc"] then
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-solaris")
|
|
end
|
|
|
|
|
|
if "linux-clang" == _OPTIONS["gcc"] then
|
|
premake.gcc.cc = "clang"
|
|
premake.gcc.cxx = "clang++"
|
|
premake.gcc.ar = "ar"
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-linux-clang")
|
|
end
|
|
|
|
if "mingw32-gcc" == _OPTIONS["gcc"] then
|
|
if not os.getenv("MINGW32") then
|
|
print("Set MINGW32 envrionment variable.")
|
|
end
|
|
if toolchainPrefix == nil or toolchainPrefix == "" then
|
|
toolchainPrefix = "$(MINGW32)/bin/i686-w64-mingw32-"
|
|
end
|
|
premake.gcc.cc = toolchainPrefix .. "gcc"
|
|
premake.gcc.cxx = toolchainPrefix .. "g++"
|
|
premake.gcc.ar = toolchainPrefix .. "gcc-ar"
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-mingw32-gcc")
|
|
end
|
|
|
|
if "mingw64-gcc" == _OPTIONS["gcc"] then
|
|
if not os.getenv("MINGW64") then
|
|
print("Set MINGW64 envrionment variable.")
|
|
end
|
|
if toolchainPrefix == nil or toolchainPrefix == "" then
|
|
toolchainPrefix = "$(MINGW64)/bin/x86_64-w64-mingw32-"
|
|
end
|
|
premake.gcc.cc = toolchainPrefix .. "gcc"
|
|
premake.gcc.cxx = toolchainPrefix .. "g++"
|
|
premake.gcc.ar = toolchainPrefix .. "gcc-ar"
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-mingw64-gcc")
|
|
end
|
|
|
|
if "mingw-clang" == _OPTIONS["gcc"] then
|
|
premake.gcc.cc = "clang"
|
|
premake.gcc.cxx = "clang++"
|
|
premake.gcc.ar = "llvm-ar"
|
|
premake.gcc.llvm = true
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-mingw-clang")
|
|
end
|
|
|
|
if "osx" == _OPTIONS["gcc"] then
|
|
if os.is("linux") then
|
|
premake.gcc.cc = toolchainPrefix .. "clang"
|
|
premake.gcc.cxx = toolchainPrefix .. "clang++"
|
|
premake.gcc.ar = toolchainPrefix .. "ar"
|
|
end
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-osx")
|
|
end
|
|
|
|
if "osx-clang" == _OPTIONS["gcc"] then
|
|
premake.gcc.cc = toolchainPrefix .. "clang"
|
|
premake.gcc.cxx = toolchainPrefix .. "clang++"
|
|
premake.gcc.ar = toolchainPrefix .. "ar"
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-osx-clang")
|
|
end
|
|
elseif _ACTION == "vs2019" then
|
|
|
|
if "clangcl" == _OPTIONS["vs"] then
|
|
premake.vstudio.toolset = ("ClangCL")
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-clang")
|
|
end
|
|
|
|
if "intel-15" == _OPTIONS["vs"] then
|
|
premake.vstudio.toolset = "Intel C++ Compiler XE 15.0"
|
|
location (_buildDir .. "projects/" .. _subDir .. "/".. _ACTION .. "-intel")
|
|
end
|
|
end
|
|
|
|
if (_OPTIONS["CC"] ~= nil) then
|
|
premake.gcc.cc = _OPTIONS["CC"]
|
|
end
|
|
if (_OPTIONS["CXX"] ~= nil) then
|
|
premake.gcc.cxx = _OPTIONS["CXX"]
|
|
end
|
|
if (_OPTIONS["LD"] ~= nil) then
|
|
premake.gcc.ld = _OPTIONS["LD"]
|
|
end
|
|
if (_OPTIONS["AR"] ~= nil) then
|
|
premake.gcc.ar = _OPTIONS["AR"]
|
|
end
|
|
|
|
configuration {} -- reset configuration
|
|
|
|
|
|
configuration { "x32", "vs*" }
|
|
objdir (_buildDir .. _ACTION .. "/obj")
|
|
|
|
configuration { "x32", "vs*", "Release" }
|
|
targetdir (_buildDir .. _ACTION .. "/bin/x32/Release")
|
|
|
|
configuration { "x32", "vs*", "Debug" }
|
|
targetdir (_buildDir .. _ACTION .. "/bin/x32/Debug")
|
|
|
|
configuration { "x64", "vs*" }
|
|
defines { "_WIN64" }
|
|
objdir (_buildDir .. _ACTION .. "/obj")
|
|
|
|
configuration { "x64", "vs*", "Release" }
|
|
targetdir (_buildDir .. _ACTION .. "/bin/x64/Release")
|
|
|
|
configuration { "x64", "vs*", "Debug" }
|
|
targetdir (_buildDir .. _ACTION .. "/bin/x64/Debug")
|
|
|
|
configuration { "x32", "vs*-clang" }
|
|
objdir (_buildDir .. _ACTION .. "-clang/obj")
|
|
|
|
configuration { "x32", "vs*-clang", "Release" }
|
|
targetdir (_buildDir .. _ACTION .. "-clang/bin/x32/Release")
|
|
|
|
configuration { "x32", "vs*-clang", "Debug" }
|
|
targetdir (_buildDir .. _ACTION .. "-clang/bin/x32/Debug")
|
|
|
|
configuration { "x64", "vs*-clang" }
|
|
objdir (_buildDir .. _ACTION .. "-clang/obj")
|
|
|
|
configuration { "x64", "vs*-clang", "Release" }
|
|
targetdir (_buildDir .. _ACTION .. "-clang/bin/x64/Release")
|
|
|
|
configuration { "x64", "vs*-clang", "Debug" }
|
|
targetdir (_buildDir .. _ACTION .. "-clang/bin/x64/Debug")
|
|
|
|
configuration { "vs*-clang" }
|
|
buildoptions {
|
|
"-Qunused-arguments",
|
|
}
|
|
|
|
configuration { "mingw*" }
|
|
defines { "WIN32" }
|
|
|
|
configuration { "x32", "mingw32-gcc" }
|
|
objdir (_buildDir .. "mingw-gcc" .. "/obj")
|
|
buildoptions { "-m32" }
|
|
|
|
configuration { "x32", "mingw32-gcc", "Release" }
|
|
targetdir (_buildDir .. "mingw-gcc" .. "/bin/x32/Release")
|
|
|
|
configuration { "x32", "mingw32-gcc", "Debug" }
|
|
targetdir (_buildDir .. "mingw-gcc" .. "/bin/x32/Debug")
|
|
|
|
configuration { "x64", "mingw64-gcc" }
|
|
objdir (_buildDir .. "mingw-gcc" .. "/obj")
|
|
buildoptions { "-m64" }
|
|
|
|
configuration { "x64", "mingw64-gcc", "Release" }
|
|
targetdir (_buildDir .. "mingw-gcc" .. "/bin/x64/Release")
|
|
|
|
configuration { "x64", "mingw64-gcc", "Debug" }
|
|
targetdir (_buildDir .. "mingw-gcc" .. "/bin/x64/Debug")
|
|
|
|
configuration { "mingw-clang" }
|
|
buildoptions {
|
|
"-femulated-tls",
|
|
}
|
|
linkoptions {
|
|
"-Wl,--allow-multiple-definition",
|
|
}
|
|
|
|
configuration { "x32", "mingw-clang" }
|
|
objdir ( _buildDir .. "mingw-clang/obj")
|
|
buildoptions { "-m32" }
|
|
|
|
configuration { "x32", "mingw-clang", "Release" }
|
|
targetdir (_buildDir .. "mingw-clang/bin/x32/Release")
|
|
|
|
configuration { "x32", "mingw-clang", "Debug" }
|
|
targetdir (_buildDir .. "mingw-clang/bin/x32/Debug")
|
|
|
|
configuration { "x64", "mingw-clang" }
|
|
objdir (_buildDir .. "mingw-clang/obj")
|
|
buildoptions { "-m64" }
|
|
|
|
configuration { "x64", "mingw-clang", "Release" }
|
|
targetdir (_buildDir .. "mingw-clang/bin/x64/Release")
|
|
|
|
configuration { "x64", "mingw-clang", "Debug" }
|
|
targetdir (_buildDir .. "mingw-clang/bin/x64/Debug")
|
|
|
|
configuration { "linux-gcc", "x32" }
|
|
objdir (_buildDir .. "linux_gcc" .. "/obj")
|
|
buildoptions {
|
|
"-m32",
|
|
}
|
|
|
|
configuration { "linux-gcc", "x32", "Release" }
|
|
targetdir (_buildDir .. "linux_gcc" .. "/bin/x32/Release")
|
|
|
|
configuration { "linux-gcc", "x32", "Debug" }
|
|
targetdir (_buildDir .. "linux_gcc" .. "/bin/x32/Debug")
|
|
|
|
configuration { "linux-gcc", "x64" }
|
|
objdir (_buildDir .. "linux_gcc" .. "/obj")
|
|
buildoptions {
|
|
"-m64",
|
|
}
|
|
|
|
configuration { "linux-gcc", "x64", "Release" }
|
|
targetdir (_buildDir .. "linux_gcc" .. "/bin/x64/Release")
|
|
|
|
configuration { "linux-gcc", "x64", "Debug" }
|
|
targetdir (_buildDir .. "linux_gcc" .. "/bin/x64/Debug")
|
|
|
|
configuration { "linux-clang", "x32" }
|
|
objdir (_buildDir .. "linux_clang" .. "/obj")
|
|
buildoptions {
|
|
"-m32",
|
|
}
|
|
|
|
configuration { "linux-clang", "x32", "Release" }
|
|
targetdir (_buildDir .. "linux_clang" .. "/bin/x32/Release")
|
|
|
|
configuration { "linux-clang", "x32", "Debug" }
|
|
targetdir (_buildDir .. "linux_clang" .. "/bin/x32/Debug")
|
|
|
|
configuration { "linux-clang", "x64" }
|
|
objdir (_buildDir .. "linux_clang" .. "/obj")
|
|
buildoptions {
|
|
"-m64",
|
|
}
|
|
|
|
configuration { "linux-clang", "x64", "Release" }
|
|
targetdir (_buildDir .. "linux_clang" .. "/bin/x64/Release")
|
|
|
|
configuration { "linux-clang", "x64", "Debug" }
|
|
targetdir (_buildDir .. "linux_clang" .. "/bin/x64/Debug")
|
|
|
|
configuration { "solaris", "x32" }
|
|
objdir (_buildDir .. "solaris" .. "/obj")
|
|
buildoptions {
|
|
"-m32",
|
|
}
|
|
|
|
configuration { "solaris", "x32", "Release" }
|
|
targetdir (_buildDir .. "solaris" .. "/bin/x32/Release")
|
|
|
|
configuration { "solaris", "x32", "Debug" }
|
|
targetdir (_buildDir .. "solaris" .. "/bin/x32/Debug")
|
|
|
|
configuration { "solaris", "x64" }
|
|
objdir (_buildDir .. "solaris" .. "/obj")
|
|
buildoptions {
|
|
"-m64",
|
|
}
|
|
|
|
configuration { "solaris", "x64", "Release" }
|
|
targetdir (_buildDir .. "solaris" .. "/bin/x64/Release")
|
|
|
|
configuration { "solaris", "x64", "Debug" }
|
|
targetdir (_buildDir .. "solaris" .. "/bin/x64/Debug")
|
|
|
|
configuration { "freebsd", "x32" }
|
|
objdir (_buildDir .. "freebsd" .. "/obj")
|
|
buildoptions {
|
|
"-m32",
|
|
}
|
|
|
|
configuration { "freebsd", "x32", "Release" }
|
|
targetdir (_buildDir .. "freebsd" .. "/bin/x32/Release")
|
|
|
|
configuration { "freebsd", "x32", "Debug" }
|
|
targetdir (_buildDir .. "freebsd" .. "/bin/x32/Debug")
|
|
|
|
configuration { "freebsd", "x64" }
|
|
objdir (_buildDir .. "freebsd" .. "/obj")
|
|
buildoptions {
|
|
"-m64",
|
|
}
|
|
configuration { "freebsd", "x64", "Release" }
|
|
targetdir (_buildDir .. "freebsd" .. "/bin/x64/Release")
|
|
|
|
configuration { "freebsd", "x64", "Debug" }
|
|
targetdir (_buildDir .. "freebsd" .. "/bin/x64/Debug")
|
|
|
|
configuration { "netbsd", "x32" }
|
|
objdir (_buildDir .. "netbsd" .. "/obj")
|
|
buildoptions {
|
|
"-m32",
|
|
}
|
|
configuration { "netbsd", "x32", "Release" }
|
|
targetdir (_buildDir .. "netbsd" .. "/bin/x32/Release")
|
|
|
|
configuration { "netbsd", "x32", "Debug" }
|
|
targetdir (_buildDir .. "netbsd" .. "/bin/x32/Debug")
|
|
|
|
configuration { "netbsd", "x64" }
|
|
objdir (_buildDir .. "netbsd" .. "/obj")
|
|
buildoptions {
|
|
"-m64",
|
|
}
|
|
configuration { "netbsd", "x64", "Release" }
|
|
targetdir (_buildDir .. "netbsd" .. "/bin/x64/Release")
|
|
|
|
configuration { "netbsd", "x64", "Debug" }
|
|
targetdir (_buildDir .. "netbsd" .. "/bin/x64/Debug")
|
|
|
|
configuration { "openbsd", "x32" }
|
|
objdir (_buildDir .. "openbsd" .. "/obj")
|
|
buildoptions {
|
|
"-m32",
|
|
}
|
|
configuration { "openbsd", "x32", "Release" }
|
|
targetdir (_buildDir .. "openbsd" .. "/bin/x32/Release")
|
|
|
|
configuration { "openbsd", "x32", "Debug" }
|
|
targetdir (_buildDir .. "openbsd" .. "/bin/x32/Debug")
|
|
|
|
configuration { "openbsd", "x64" }
|
|
objdir (_buildDir .. "openbsd" .. "/obj")
|
|
buildoptions {
|
|
"-m64",
|
|
}
|
|
configuration { "openbsd", "x64", "Release" }
|
|
targetdir (_buildDir .. "openbsd" .. "/bin/x64/Release")
|
|
|
|
configuration { "openbsd", "x64", "Debug" }
|
|
targetdir (_buildDir .. "openbsd" .. "/bin/x64/Debug")
|
|
|
|
configuration { "android-*", "Release" }
|
|
targetdir (_buildDir .. "android/bin/" .. _OPTIONS["PLATFORM"] .. "/Release")
|
|
|
|
configuration { "android-*", "Debug" }
|
|
targetdir (_buildDir .. "android/bin/" .. _OPTIONS["PLATFORM"] .. "/Debug")
|
|
|
|
configuration { "android-*" }
|
|
objdir (_buildDir .. "android/obj/" .. _OPTIONS["PLATFORM"])
|
|
flags {
|
|
"NoImportLib",
|
|
}
|
|
links {
|
|
"c",
|
|
"dl",
|
|
"m",
|
|
"android",
|
|
"log",
|
|
}
|
|
buildoptions_c {
|
|
"--gcc-toolchain=" .. androidToolchainRoot(),
|
|
"--sysroot=" .. androidToolchainRoot() .. "/sysroot",
|
|
}
|
|
buildoptions {
|
|
"--gcc-toolchain=" .. androidToolchainRoot(),
|
|
"--sysroot=" .. androidToolchainRoot() .. "/sysroot",
|
|
"-fpic",
|
|
"-ffunction-sections",
|
|
"-funwind-tables",
|
|
"-fstack-protector-strong",
|
|
"-no-canonical-prefixes",
|
|
}
|
|
linkoptions {
|
|
"--gcc-toolchain=" .. androidToolchainRoot(),
|
|
"--sysroot=" .. androidToolchainRoot() .. "/sysroot",
|
|
"-Wl,--no-undefined",
|
|
"-Wl,-z,noexecstack",
|
|
"-Wl,-z,relro",
|
|
"-Wl,-z,now",
|
|
}
|
|
|
|
configuration { "android-arm" }
|
|
buildoptions {
|
|
"--target=armv7-none-linux-android" .. androidApiLevel,
|
|
"-march=armv7-a",
|
|
"-mfloat-abi=softfp",
|
|
"-mfpu=neon",
|
|
"-mthumb",
|
|
}
|
|
linkoptions {
|
|
"--target=armv7-none-linux-android" .. androidApiLevel,
|
|
"-march=armv7-a",
|
|
}
|
|
|
|
configuration { "android-arm64" }
|
|
buildoptions {
|
|
"--target=aarch64-none-linux-android" .. androidApiLevel,
|
|
}
|
|
linkoptions {
|
|
"--target=aarch64-none-linux-android" .. androidApiLevel,
|
|
}
|
|
|
|
configuration { "android-x86" }
|
|
buildoptions {
|
|
"--target=i686-none-linux-android" .. androidApiLevel,
|
|
"-mtune=atom",
|
|
"-mstackrealign",
|
|
"-msse3",
|
|
"-mfpmath=sse",
|
|
}
|
|
linkoptions {
|
|
"--target=i686-none-linux-android" .. androidApiLevel,
|
|
}
|
|
|
|
configuration { "android-x64" }
|
|
buildoptions {
|
|
"--target=x86_64-none-linux-android" .. androidApiLevel,
|
|
}
|
|
linkoptions {
|
|
"--target=x86_64-none-linux-android" .. androidApiLevel,
|
|
}
|
|
|
|
configuration { "asmjs" }
|
|
targetdir (_buildDir .. "asmjs" .. "/bin")
|
|
objdir (_buildDir .. "asmjs" .. "/obj")
|
|
buildoptions {
|
|
"-Wno-cast-align",
|
|
"-Wno-tautological-compare",
|
|
"-Wno-self-assign-field",
|
|
"-Wno-format-security",
|
|
"-Wno-inline-new-delete",
|
|
"-Wno-constant-logical-operand",
|
|
"-Wno-absolute-value",
|
|
"-Wno-unknown-warning-option",
|
|
"-Wno-extern-c-compat",
|
|
}
|
|
|
|
configuration { "osx*", "x32", "not arm64" }
|
|
objdir (_buildDir .. "osx_clang" .. "/obj")
|
|
buildoptions {
|
|
"-m32",
|
|
}
|
|
configuration { "osx*", "x32", "not arm64", "Release" }
|
|
targetdir (_buildDir .. "osx_clang" .. "/bin/x32/Release")
|
|
|
|
configuration { "osx*", "x32", "not arm64", "Debug" }
|
|
targetdir (_buildDir .. "osx_clang" .. "/bin/x32/Debug")
|
|
|
|
configuration { "osx*", "x64", "not arm64" }
|
|
objdir (_buildDir .. "osx_clang" .. "/obj")
|
|
buildoptions {
|
|
"-m64", "-DHAVE_IMMINTRIN_H=1",
|
|
}
|
|
|
|
configuration { "osx*", "x64", "not arm64", "Release" }
|
|
targetdir (_buildDir .. "osx_clang" .. "/bin/x64/Release")
|
|
|
|
configuration { "osx*", "x64", "not arm64", "Debug" }
|
|
targetdir (_buildDir .. "osx_clang" .. "/bin/x64/Debug")
|
|
|
|
configuration { "osx*", "arm64" }
|
|
objdir (_buildDir .. "osx_clang" .. "/obj")
|
|
buildoptions {
|
|
"-m64", "-DHAVE_IMMINTRIN_H=0", "-DSDL_DISABLE_IMMINTRIN_H=1", "-DHAVE_SSE=0"
|
|
}
|
|
|
|
configuration { "osx*", "arm64", "Release" }
|
|
targetdir (_buildDir .. "osx_clang" .. "/bin/x64/Release")
|
|
|
|
configuration { "osx*", "arm64", "Debug" }
|
|
targetdir (_buildDir .. "osx_clang" .. "/bin/x64/Debug")
|
|
|
|
configuration {} -- reset configuration
|
|
|
|
return true
|
|
end
|
|
|
|
function strip()
|
|
if _OPTIONS["STRIP_SYMBOLS"]~="1" then
|
|
return true
|
|
end
|
|
|
|
configuration { "osx-*" }
|
|
postbuildcommands {
|
|
"$(SILENT) echo Stripping symbols.",
|
|
"$(SILENT) " .. (_OPTIONS['TOOLCHAIN'] and toolchainPrefix) .. "strip \"$(TARGET)\"",
|
|
}
|
|
|
|
configuration { "android-*" }
|
|
postbuildcommands {
|
|
"$(SILENT) echo Stripping symbols.",
|
|
"$(SILENT) " .. toolchainPrefix .. "strip -s \"$(TARGET)\""
|
|
}
|
|
|
|
configuration { "linux-*" }
|
|
postbuildcommands {
|
|
"$(SILENT) echo Stripping symbols.",
|
|
"$(SILENT) strip -s \"$(TARGET)\""
|
|
}
|
|
|
|
configuration { "mingw*", "x64" }
|
|
postbuildcommands {
|
|
"$(SILENT) echo Stripping symbols.",
|
|
"$(SILENT) " .. (_OPTIONS['TOOLCHAIN'] or "$(MINGW64)/bin/") .. "strip -s \"$(TARGET)\"",
|
|
}
|
|
configuration { "mingw*", "x32" }
|
|
postbuildcommands {
|
|
"$(SILENT) echo Stripping symbols.",
|
|
"$(SILENT) " .. (_OPTIONS['TOOLCHAIN'] or "$(MINGW32)/bin/") .. "strip -s \"$(TARGET)\"",
|
|
}
|
|
|
|
configuration { "asmjs" }
|
|
postbuildcommands {
|
|
"$(SILENT) echo Running asmjs finalize.",
|
|
"$(SILENT) $(EMSCRIPTEN)/emcc -O2 -s TOTAL_MEMORY=268435456 \"$(TARGET)\" -o \"$(TARGET)\".html"
|
|
-- ALLOW_MEMORY_GROWTH
|
|
}
|
|
|
|
configuration {} -- reset configuration
|
|
end
|
|
|