1515 CXXFLAGS += $(DEFAULT_CXXFLAGS )
1616endif
1717
18+ # Comment out to set your ndk version
19+ # NDK_VERSION=21.4.7075529 # r21e, for unreal 4.27 and 5
20+ # NDK_VERSION=25.1.8937393 # the newest ndk version
21+
22+ # The ndk requirement for unreal, please check
23+ # https://docs.unrealengine.com/4.27/en-US/SharingAndReleasing/Mobile/Android/AndroidSDKRequirements/
24+ # https://docs.unrealengine.com/5.0/en-US/android-development-requirements-for-unreal-engine/
25+ #
26+ # NDK releases >= 23 beta3 no longer include libgcc which rust's pre-built
27+ # standard libraries depend on. As a workaround for newer NDKs we redirect
28+ # libgcc to libunwind.
29+ # See https://github.com/rust-lang/rust/pull/85806
30+ # TODO Here we only check 21 or non-21
31+ ifneq (,$(findstring 21,$(NDK_VERSION ) ) )
32+ RUSTFLAGS +=
33+ else
34+ RUSTFLAGS +="-L$(shell pwd)/env/android"
35+ endif
36+
37+ # RUSTFLAGS +=
38+ ifeq ($(UNAME ) , Darwin)
39+ # Please install NDK via Android Studio
40+ NDK_HOME=$(HOME)/Library/Android/sdk/ndk/$(NDK_VERSION)
41+ TOOLCHAIN=$(NDK_HOME)/toolchains/llvm/prebuilt/darwin-x86_64
42+ endif
43+
44+ ifeq ($(UNAME ) , Linux)
45+ # Change NDK_HOME if necessary
46+ NDK_HOME=/usr/local/lib/android/sdk/ndk/$(NDK_VERSION)
47+ TOOLCHAIN=$(NDK_HOME)/toolchains/llvm/prebuilt/linux-x86_64
48+ endif
49+
50+ # Set this to your minSdkVersion.
51+ API =21
52+
1853all : build_cpp
1954
2055clone :
@@ -40,6 +75,54 @@ build_extra-cpp-bindings:
4075build_cpp : build_play-cpp-sdk
4176 MACOSX_DEPLOYMENT_TARGET=10.15 && cd demo && make build
4277
78+ armv7-linux-androideabi : TARGET=armv7-linux-androideabi
79+ armv7-linux-androideabi : android_armv7
80+ cd demo && TARGET=$(TARGET ) make android_build
81+
82+ aarch64-linux-android : TARGET=aarch64-linux-android
83+ aarch64-linux-android : android_aarch64
84+ cd demo && TARGET=$(TARGET ) make android_build
85+
86+ i686-linux-android : TARGET=i686-linux-android
87+ i686-linux-android : android_i686
88+ cd demo && TARGET=$(TARGET ) make android_build
89+
90+ x86_64-linux-android : TARGET=x86_64-linux-android
91+ x86_64-linux-android : android_x86_64
92+ cd demo && TARGET=$(TARGET ) make android_build
93+
94+ android_armv7 :
95+ rustup target add $(TARGET )
96+ TARGET_CC=$(TOOLCHAIN ) /bin/armv7a-linux-androideabi$(API ) -clang \
97+ CXX=$(TOOLCHAIN ) /bin/armv7a-linux-androideabi$(API ) -clang++ \
98+ TARGET_AR=$(TOOLCHAIN ) /bin/llvm-ar \
99+ CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER=$(TOOLCHAIN ) /bin/armv7a-linux-androideabi$(API ) -clang \
100+ RUSTFLAGS=$(RUSTFLAGS ) cargo build --target=$(TARGET ) --package play-cpp-sdk --release
101+
102+ android_aarch64 :
103+ rustup target add $(TARGET )
104+ TARGET_CC=$(TOOLCHAIN ) /bin/$(TARGET )$(API ) -clang \
105+ CXX=$(TOOLCHAIN ) /bin/$(TARGET )$(API ) -clang++ \
106+ TARGET_AR=$(TOOLCHAIN ) /bin/llvm-ar \
107+ CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=$(TOOLCHAIN ) /bin/$(TARGET )$(API ) -clang \
108+ RUSTFLAGS=$(RUSTFLAGS ) cargo build --target=$(TARGET ) --package play-cpp-sdk --release
109+
110+ android_i686 :
111+ rustup target add $(TARGET )
112+ TARGET_CC=$(TOOLCHAIN ) /bin/$(TARGET )$(API ) -clang \
113+ CXX=$(TOOLCHAIN ) /bin/$(TARGET )$(API ) -clang++ \
114+ TARGET_AR=$(TOOLCHAIN ) /bin/llvm-ar \
115+ CARGO_TARGET_I686_LINUX_ANDROID_LINKER=$(TOOLCHAIN ) /bin/$(TARGET )$(API ) -clang \
116+ RUSTFLAGS=$(RUSTFLAGS ) cargo build --target=$(TARGET ) --package play-cpp-sdk --release
117+
118+ android_x86_64 :
119+ rustup target add $(TARGET )
120+ TARGET_CC=$(TOOLCHAIN ) /bin/$(TARGET )$(API ) -clang \
121+ CXX=$(TOOLCHAIN ) /bin/$(TARGET )$(API ) -clang++ \
122+ TARGET_AR=$(TOOLCHAIN ) /bin/llvm-ar \
123+ CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER=$(TOOLCHAIN ) /bin/$(TARGET )$(API ) -clang \
124+ RUSTFLAGS=$(RUSTFLAGS ) cargo build --target=$(TARGET ) --package play-cpp-sdk --release
125+
43126cpp : build_cpp
44127# 1. In order to use crypto pay api, you need to Generate Keys in
45128# https://merchant.crypto.com/developers/api_keys first
0 commit comments