From e2a158a37118d2e4ba2d7b8c5b83152a739d0ca8 Mon Sep 17 00:00:00 2001 From: Michal Klos Date: Fri, 19 May 2023 00:46:21 +0200 Subject: [PATCH 1/2] [android] build on mac M1 --- .../projects/Android/jni/Application.mk | 2 +- .../projects/Android/jni/make_apple_M1.sh | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100755 PluginSource/projects/Android/jni/make_apple_M1.sh diff --git a/PluginSource/projects/Android/jni/Application.mk b/PluginSource/projects/Android/jni/Application.mk index 8c92b7a..a13dc94 100644 --- a/PluginSource/projects/Android/jni/Application.mk +++ b/PluginSource/projects/Android/jni/Application.mk @@ -1,5 +1,5 @@ APP_ABI := armeabi-v7a arm64-v8a x86 x86_64 APP_PLATFORM := android-9 -APP_STL := gnustl_static +APP_STL := c++_static APP_CPPFLAGS += -std=c++11 NDK_TOOLCHAIN_VERSION := clang diff --git a/PluginSource/projects/Android/jni/make_apple_M1.sh b/PluginSource/projects/Android/jni/make_apple_M1.sh new file mode 100755 index 0000000..7a9bfe9 --- /dev/null +++ b/PluginSource/projects/Android/jni/make_apple_M1.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +set -e + +patch_ndk_on_apple_m1() { + os=$(uname -s) + arch=$(uname -m) + + if [ $os == "Darwin" -a $arch == "arm64" ]; then + # Fix for building with NDK on Apple Silicon + # https://stackoverflow.com/questions/69541831/unknown-host-cpu-architecture-arm64-android-ndk-siliconm1-apple-macbook-pro + echo '#!/bin/sh' > $UNITY_NDK/ndk-build + echo 'DIR="$(cd "$(dirname "$0")" && pwd)"' >> $UNITY_NDK/ndk-build + echo '# $DIR/build/ndk-build "$@"' >> $UNITY_NDK/ndk-build + echo 'arch -x86_64 /bin/bash $DIR/build/ndk-build "$@"' >> $UNITY_NDK/ndk-build + fi +} + +main() { + + patch_ndk_on_apple_m1 + + # set UNITY_NDK environment variable to NDK installation used by Unity + # i. e. /Applications/Unity/Hub/Editor/2022.1.24f1/PlaybackEngines/AndroidPlayer/NDK + echo "Using UNITY_NDK: $UNITY_NDK" + + # https://developer.android.com/ndk/guides/ndk-build + export NDK_PROJECT_PATH=$(cd ../ && pwd) + echo "Using NDK_PROJECT_PATH: $NDK_PROJECT_PATH" + $UNITY_NDK/ndk-build +} + +main From 381c1e920404014ae9e25471289a15bc5e6000ab Mon Sep 17 00:00:00 2001 From: Michal Klos Date: Fri, 19 May 2023 01:54:41 +0200 Subject: [PATCH 2/2] [android] backup before overwrite --- PluginSource/projects/Android/jni/make_apple_M1.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/PluginSource/projects/Android/jni/make_apple_M1.sh b/PluginSource/projects/Android/jni/make_apple_M1.sh index 7a9bfe9..3d50966 100755 --- a/PluginSource/projects/Android/jni/make_apple_M1.sh +++ b/PluginSource/projects/Android/jni/make_apple_M1.sh @@ -9,9 +9,11 @@ patch_ndk_on_apple_m1() { if [ $os == "Darwin" -a $arch == "arm64" ]; then # Fix for building with NDK on Apple Silicon # https://stackoverflow.com/questions/69541831/unknown-host-cpu-architecture-arm64-android-ndk-siliconm1-apple-macbook-pro + if [ ! -f $UNITY_NDK/ndk-build.old ]; then + cp $UNITY_NDK/ndk-build $UNITY_NDK/ndk-build.old + fi echo '#!/bin/sh' > $UNITY_NDK/ndk-build echo 'DIR="$(cd "$(dirname "$0")" && pwd)"' >> $UNITY_NDK/ndk-build - echo '# $DIR/build/ndk-build "$@"' >> $UNITY_NDK/ndk-build echo 'arch -x86_64 /bin/bash $DIR/build/ndk-build "$@"' >> $UNITY_NDK/ndk-build fi }