Browse Source

Add premake support for ARM-based macOS (#1958)

This upgrades to premake 5.0.0-beta8, which is the first version that
provides ARM64-based binaries for macOS.
pull/1960/head
Per Lundberg 6 months ago committed by GitHub
parent
commit
cb60f3bd79
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 28
      build/build.sh

28
build/build.sh

@ -1,7 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -e
builddir=$(cd "$(dirname "$0")"; pwd) builddir=$(cd "$(dirname "$0")"; pwd)
platform=x64
vs=vs2022 vs=vs2022
configuration=DebugOpt configuration=DebugOpt
build_only=false build_only=false
@ -18,8 +17,17 @@ oshost=""
os="" os=""
test= test=
if [[ $(uname -m) != *"64"* ]]; then _machine=$(uname -m)
if [[ $_machine == "arm64" ]]; then
platform="arm64"
elif [[ $_machine == "x86_64" ]]; then
platform="x64"
elif [[ $_machine == "i686" ]]; then
platform=x86 platform=x86
else
echo "Unsupported machine type: ${_machine}"
exit 1
fi fi
build() build()
@ -125,14 +133,22 @@ download_premake()
if ! [ -f "$premake_path" ]; then if ! [ -f "$premake_path" ]; then
echo "Downloading and unpacking Premake..." echo "Downloading and unpacking Premake..."
unpack_filename=$premake_filename
if [ $oshost = "macosx" ]; then
# macOS needs a newer premake version which has arm64 (Apple Silicon) support
premake_version=5.0.0-beta8
else
# Other systems need an older premake that still works on Ubuntu 22.04
premake_version=5.0.0-beta2 premake_version=5.0.0-beta2
unpack_filename=./${premake_filename}
fi
premake_archive=premake-$premake_version-$oshost.$premake_archive_ext premake_archive=premake-$premake_version-$oshost.$premake_archive_ext
premake_url=https://github.com/premake/premake-core/releases/download/v$premake_version/$premake_archive premake_url=https://github.com/premake/premake-core/releases/download/v$premake_version/$premake_archive
curl -L -O $premake_url curl -L -O $premake_url
if [ $oshost = "windows" ]; then if [ $oshost = "windows" ]; then
unzip $premake_archive $premake_filename -d "$premake_dir" unzip $premake_archive $premake_filename -d "$premake_dir"
else else
tar -xf $premake_archive -C "$premake_dir" ./$premake_filename tar -xf $premake_archive -C "$premake_dir" $unpack_filename
fi fi
chmod +x "$premake_path" chmod +x "$premake_path"
rm $premake_archive rm $premake_archive
@ -161,7 +177,9 @@ package_llvm()
detect_os() detect_os()
{ {
case "$(uname -s)" in local _system=$(uname -s)
case "${_system}" in
Darwin) Darwin)
oshost=macosx oshost=macosx
;; ;;
@ -172,7 +190,7 @@ detect_os()
oshost=windows oshost=windows
;; ;;
*) *)
echo "Unsupported platform" echo "Unsupported platform: ${_system}"
exit 1 exit 1
;; ;;
esac esac

Loading…
Cancel
Save