Commit a10898c0 authored by mercury233's avatar mercury233

add static build for linux & macos

parent 6ab02b31
This diff is collapsed.
...@@ -87,9 +87,11 @@ project "YGOPro" ...@@ -87,9 +87,11 @@ project "YGOPro"
links { "z" } links { "z" }
defines { "GL_SILENCE_DEPRECATION" } defines { "GL_SILENCE_DEPRECATION" }
if MAC_ARM then if MAC_ARM then
buildoptions { "--target=arm64-apple-macos12" }
linkoptions { "-arch arm64" } linkoptions { "-arch arm64" }
end end
if MAC_INTEL then
linkoptions { "-arch x86_64" }
end
if USE_AUDIO and AUDIO_LIB == "irrklang" then if USE_AUDIO and AUDIO_LIB == "irrklang" then
links { "irrklang" } links { "irrklang" }
end end
......
...@@ -33,12 +33,6 @@ project "miniaudio" ...@@ -33,12 +33,6 @@ project "miniaudio"
"external/opus/celt/rate.c", "external/opus/celt/rate.c",
"external/opus/celt/vq.c", "external/opus/celt/vq.c",
"external/opus/celt/x86/pitch_avx.c",
"external/opus/celt/x86/pitch_sse.c",
"external/opus/celt/x86/vq_sse2.c",
"external/opus/celt/x86/x86_celt_map.c",
"external/opus/celt/x86/x86cpu.c",
"external/opus/silk/bwexpander.c", "external/opus/silk/bwexpander.c",
"external/opus/silk/bwexpander_32.c", "external/opus/silk/bwexpander_32.c",
"external/opus/silk/CNG.c", "external/opus/silk/CNG.c",
...@@ -118,10 +112,25 @@ project "miniaudio" ...@@ -118,10 +112,25 @@ project "miniaudio"
"external/vorbis/include", "external/vorbis/include",
} }
defines { defines {
"OPUS_BUILD", "USE_ALLOCA", "HAVE_LRINTF", "OP_HAVE_LRINTF", "OPUS_BUILD",
"OPUS_X86_PRESUME_SSE", "OPUS_X86_PRESUME_SSE2", "USE_ALLOCA",
"OPUS_HAVE_RTCD", "OPUS_X86_MAY_HAVE_SSE", "OPUS_X86_MAY_HAVE_SSE4_1", "OPUS_X86_MAY_HAVE_AVX2", "HAVE_LRINTF",
"OP_HAVE_LRINTF",
} }
if not TARGET_MAC_ARM then
files {
"external/opus/celt/x86/pitch_avx.c",
"external/opus/celt/x86/pitch_sse.c",
"external/opus/celt/x86/vq_sse2.c",
"external/opus/celt/x86/x86_celt_map.c",
"external/opus/celt/x86/x86cpu.c",
}
defines {
"OPUS_HAVE_RTCD", "CPU_INFO_BY_ASM",
"OPUS_X86_PRESUME_SSE", "OPUS_X86_PRESUME_SSE2",
"OPUS_X86_MAY_HAVE_SSE", "OPUS_X86_MAY_HAVE_SSE4_1", "OPUS_X86_MAY_HAVE_AVX2",
}
end
else else
includedirs { OPUS_INCLUDE_DIR, VORBIS_INCLUDE_DIR, OGG_INCLUDE_DIR } includedirs { OPUS_INCLUDE_DIR, VORBIS_INCLUDE_DIR, OGG_INCLUDE_DIR }
end end
......
...@@ -3,15 +3,18 @@ ...@@ -3,15 +3,18 @@
BUILD_LUA = true BUILD_LUA = true
LUA_LIB_NAME = "lua" LUA_LIB_NAME = "lua"
BUILD_EVENT = os.istarget("windows") BUILD_EVENT = true
BUILD_FREETYPE = os.istarget("windows") BUILD_FREETYPE = true
BUILD_SQLITE = os.istarget("windows") BUILD_SQLITE = true
BUILD_IRRLICHT = true BUILD_IRRLICHT = true
USE_AUDIO = true USE_AUDIO = true
AUDIO_LIB = "miniaudio" AUDIO_LIB = "miniaudio"
-- BUILD_MINIAUDIO is always true
MINIAUDIO_SUPPORT_OPUS_VORBIS = true MINIAUDIO_SUPPORT_OPUS_VORBIS = true
MINIAUDIO_BUILD_OPUS_VORBIS = os.istarget("windows") MINIAUDIO_BUILD_OPUS_VORBIS = true
-- BUILD_IRRKLANG is impossible because irrKlang is not open source
IRRKLANG_PRO = false IRRKLANG_PRO = false
IRRKLANG_PRO_BUILD_IKPMP3 = false IRRKLANG_PRO_BUILD_IKPMP3 = false
...@@ -71,7 +74,8 @@ newoption { trigger = "irrklang-pro-debug-lib-dir", category = "YGOPro - irrklan ...@@ -71,7 +74,8 @@ newoption { trigger = "irrklang-pro-debug-lib-dir", category = "YGOPro - irrklan
newoption { trigger = 'build-ikpmp3', category = "YGOPro - irrklang - ikpmp3", description = "" } newoption { trigger = 'build-ikpmp3', category = "YGOPro - irrklang - ikpmp3", description = "" }
newoption { trigger = "winxp-support", category = "YGOPro", description = "" } newoption { trigger = "winxp-support", category = "YGOPro", description = "" }
newoption { trigger = "mac-arm", category = "YGOPro", description = "Cross compile for Apple Silicon" } newoption { trigger = "mac-arm", category = "YGOPro", description = "Compile for Apple Silicon Mac" }
newoption { trigger = "mac-intel", category = "YGOPro", description = "Compile for Intel Mac" }
function GetParam(param) function GetParam(param)
return _OPTIONS[param] or os.getenv(string.upper(string.gsub(param,"-","_"))) return _OPTIONS[param] or os.getenv(string.upper(string.gsub(param,"-","_")))
...@@ -202,8 +206,26 @@ end ...@@ -202,8 +206,26 @@ end
if GetParam("winxp-support") and os.istarget("windows") then if GetParam("winxp-support") and os.istarget("windows") then
WINXP_SUPPORT = true WINXP_SUPPORT = true
end end
if GetParam("mac-arm") and os.istarget("macosx") then
MAC_ARM = true if os.istarget("macosx") then
if GetParam("mac-arm") then
MAC_ARM = true
end
if GetParam("mac-intel") then
MAC_INTEL = true
end
if MAC_ARM then
TARGET_MAC_ARM = true
elseif not MAC_INTEL then
-- automatic target arm64, need extra detect
local uname = os.outputof("uname -m")
local proctranslated = os.outputof("sysctl sysctl.proc_translated")
if uname:find("arm") or proctranslated then
print("Detected Apple Silicon Mac")
TARGET_MAC_ARM = true
end
end
end end
workspace "YGOPro" workspace "YGOPro"
...@@ -227,7 +249,13 @@ workspace "YGOPro" ...@@ -227,7 +249,13 @@ workspace "YGOPro"
filter "system:macosx" filter "system:macosx"
libdirs { "/usr/local/lib" } libdirs { "/usr/local/lib" }
if MAC_ARM then if MAC_ARM then
buildoptions { "--target=arm64-apple-macos12" } buildoptions { "-arch arm64" }
end
if MAC_INTEL then
buildoptions { "-arch x86_64", "-mavx", "-mfma" }
end
if MAC_ARM and MAC_INTEL then
architecture "universal"
end end
links { "OpenGL.framework", "Cocoa.framework", "IOKit.framework" } links { "OpenGL.framework", "Cocoa.framework", "IOKit.framework" }
...@@ -255,9 +283,6 @@ workspace "YGOPro" ...@@ -255,9 +283,6 @@ workspace "YGOPro"
filter { "configurations:Release", "not action:vs*" } filter { "configurations:Release", "not action:vs*" }
symbols "On" symbols "On"
defines "NDEBUG" defines "NDEBUG"
if not MAC_ARM then
buildoptions "-march=native"
end
filter { "configurations:Debug", "action:vs*" } filter { "configurations:Debug", "action:vs*" }
disablewarnings { "6011", "6031", "6054", "6262" } disablewarnings { "6011", "6031", "6054", "6262" }
...@@ -273,6 +298,9 @@ workspace "YGOPro" ...@@ -273,6 +298,9 @@ workspace "YGOPro"
filter "not action:vs*" filter "not action:vs*"
buildoptions { "-fno-strict-aliasing", "-Wno-multichar", "-Wno-format-security" } buildoptions { "-fno-strict-aliasing", "-Wno-multichar", "-Wno-format-security" }
if not MAC_ARM and not MAC_INTEL then
buildoptions "-march=native"
end
filter {} filter {}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment