mirror of
https://github.com/mkxp-z/mkxp-z.git
synced 2025-08-04 14:05:32 +02:00
53 lines
1.8 KiB
Bash
Executable file
53 lines
1.8 KiB
Bash
Executable file
#!/usr/bin/env ruby
|
|
|
|
HOST = `clang -dumpmachine`.strip
|
|
ARCH = HOST[/x86_64|arm64/]
|
|
|
|
def run_build(arch)
|
|
printf("====================================================\n")
|
|
printf("Building all dependencies. This'll take a while.\n")
|
|
|
|
if `xcodebuild -version`.scan(/Xcode (\d+)/)[0][0].to_i >= 12
|
|
printf("Building libraries for Apple Silicon...\n")
|
|
printf("====================================================\n")
|
|
code = system("make everything -f arm64.make")
|
|
return code if !code
|
|
end
|
|
printf("====================================================\n")
|
|
printf("Building libraries for Intel...\n")
|
|
printf("====================================================\n")
|
|
code = (system("make everything -f x86_64.make"))
|
|
return code if !code
|
|
|
|
printf("====================================================\n")
|
|
printf("Performing post-setup...\n")
|
|
printf("====================================================\n")
|
|
printf("Creating universal libraries ...\n")
|
|
return system("./make_macuniversal.sh")
|
|
end
|
|
|
|
def fix_steam(libpath)
|
|
# Don't need to do anything if it's already set to runpath
|
|
return 0 if (`otool -L #{libpath}`[/@rpath/])
|
|
printf("Patching Steamworks SDK...\n")
|
|
# Remove 32-bit code from the binary
|
|
if `lipo -info #{libpath}`[/i386/]
|
|
return 1 if !system("lipo -remove i386 #{libpath} -o #{libpath}")
|
|
end
|
|
# Set the install name to runpath
|
|
return 1 if !system("install_name_tool -id @rpath/libsteam_api.dylib #{libpath}")
|
|
# Resign
|
|
return (system("codesign -fs - #{libpath}") ? 0 : 1)
|
|
end
|
|
|
|
exitcode = run_build(ARCH) ? 0 : 1
|
|
exit(exitcode) if (exitcode != 0)
|
|
|
|
STEAM_LIB = "Frameworks/steam/sdk/redistributable_bin/osx/libsteam_api.dylib"
|
|
if File.exists?(STEAM_LIB)
|
|
exitcode = fix_steam(STEAM_LIB)
|
|
end
|
|
|
|
printf("Done.\n\n")
|
|
|
|
exit(exitcode)
|