diff --git a/Makefile b/Makefile index 24499fc..88a7684 100644 --- a/Makefile +++ b/Makefile @@ -72,7 +72,6 @@ endif libsds-android-amd64 \ libsds-android-x86 \ libsds-android-arm \ - rebuild-nat-libs \ build-libsds-for-android-arch ANDROID_TARGET ?= 30 @@ -82,40 +81,46 @@ else ANDROID_TOOLCHAIN_DIR := $(ANDROID_NDK_HOME)/toolchains/llvm/prebuilt/linux-x86_64 endif -rebuild-nat-libs: | clean-cross nat-libs - libsds-android-precheck: ifndef ANDROID_NDK_HOME $(error ANDROID_NDK_HOME is not set) endif +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="-I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include --sysroot=$(ANDROID_TOOLCHAIN_DIR)/sysroot" build-libsds-for-android-arch: - CPU=$(CPU) ABIDIR=$(ABIDIR) ANDROID_ARCH=$(ANDROID_ARCH) ANDROID_COMPILER=$(ANDROID_COMPILER) ANDROID_TOOLCHAIN_DIR=$(ANDROID_TOOLCHAIN_DIR) $(ENV_SCRIPT) nim libsdsAndroid $(NIM_PARAMS) sds.nims + CPU=$(CPU) ABIDIR=$(ABIDIR) ANDROID_ARCH=$(ANDROID_ARCH) ANDROID_COMPILER=$(ANDROID_COMPILER) \ + ANDROID_TOOLCHAIN_DIR=$(ANDROID_TOOLCHAIN_DIR) $(ENV_SCRIPT) \ + nim libsdsAndroid $(NIM_PARAMS) sds.nims libsds-android-arm64: ANDROID_ARCH=aarch64-linux-android libsds-android-arm64: CPU=arm64 libsds-android-arm64: ABIDIR=arm64-v8a libsds-android-arm64: | libsds-android-precheck build deps - $(MAKE) build-libsds-for-android-arch ANDROID_ARCH=$(ANDROID_ARCH) CROSS_TARGET=$(ANDROID_ARCH) CPU=$(CPU) ABIDIR=$(ABIDIR) ANDROID_COMPILER=$(ANDROID_ARCH)$(ANDROID_TARGET)-clang + $(MAKE) build-libsds-for-android-arch ANDROID_ARCH=$(ANDROID_ARCH) CROSS_TARGET=$(ANDROID_ARCH) \ + CPU=$(CPU) ABIDIR=$(ABIDIR) ANDROID_COMPILER=$(ANDROID_ARCH)$(ANDROID_TARGET)-clang libsds-android-amd64: ANDROID_ARCH=x86_64-linux-android libsds-android-amd64: CPU=amd64 libsds-android-amd64: ABIDIR=x86_64 libsds-android-amd64: | libsds-android-precheck build deps - $(MAKE) build-libsds-for-android-arch ANDROID_ARCH=$(ANDROID_ARCH) CROSS_TARGET=$(ANDROID_ARCH) CPU=$(CPU) ABIDIR=$(ABIDIR) ANDROID_COMPILER=$(ANDROID_ARCH)$(ANDROID_TARGET)-clang + $(MAKE) build-libsds-for-android-arch ANDROID_ARCH=$(ANDROID_ARCH) CROSS_TARGET=$(ANDROID_ARCH) \ + CPU=$(CPU) ABIDIR=$(ABIDIR) ANDROID_COMPILER=$(ANDROID_ARCH)$(ANDROID_TARGET)-clang libsds-android-x86: ANDROID_ARCH=i686-linux-android libsds-android-x86: CPU=i386 libsds-android-x86: ABIDIR=x86 libsds-android-x86: | libsds-android-precheck build deps - $(MAKE) build-libsds-for-android-arch ANDROID_ARCH=$(ANDROID_ARCH) CROSS_TARGET=$(ANDROID_ARCH) CPU=$(CPU) ABIDIR=$(ABIDIR) ANDROID_COMPILER=$(ANDROID_ARCH)$(ANDROID_TARGET)-clang + $(MAKE) build-libsds-for-android-arch ANDROID_ARCH=$(ANDROID_ARCH) CROSS_TARGET=$(ANDROID_ARCH) \ + CPU=$(CPU) ABIDIR=$(ABIDIR) ANDROID_COMPILER=$(ANDROID_ARCH)$(ANDROID_TARGET)-clang libsds-android-arm: ANDROID_ARCH=armv7a-linux-androideabi libsds-android-arm: CPU=arm libsds-android-arm: ABIDIR=armeabi-v7a libsds-android-arm: | libsds-android-precheck build deps # cross-rs target architecture name does not match the one used in android - $(MAKE) build-libsds-for-android-arch ANDROID_ARCH=$(ANDROID_ARCH) CROSS_TARGET=armv7-linux-androideabi CPU=$(CPU) ABIDIR=$(ABIDIR) ANDROID_COMPILER=$(ANDROID_ARCH)$(ANDROID_TARGET)-clang + $(MAKE) build-libsds-for-android-arch ANDROID_ARCH=$(ANDROID_ARCH) \ + CROSS_TARGET=armv7-linux-androideabi CPU=$(CPU) ABIDIR=$(ABIDIR) \ + ANDROID_COMPILER=$(ANDROID_ARCH)$(ANDROID_TARGET)-clang libsds-android: $(MAKE) libsds-android-amd64 diff --git a/sds.nimble b/sds.nimble index 37ca997..9c5e034 100644 --- a/sds.nimble +++ b/sds.nimble @@ -59,8 +59,9 @@ proc buildMobileAndroid(srcDir = ".", params = "") = extra_params &= " " & paramStr(i) exec "nim c" & " --out:" & outDir & - "/libsds.so --threads:on --app:lib --opt:size --noMain --mm:refc -d:chronicles_sinks=textlines[dynamic] --header --passL:-L" & - outdir & " --passL:-lrln --passL:-llog --cpu:" & cpu & " --os:android -d:androidNDK " & + "/libsds.so --threads:on --app:lib --opt:size --noMain --mm:refc " & + "-d:chronicles_sinks=textlines[dynamic] --header --passL:-L" & outdir & + " --passL:-llog --cpu:" & cpu & " --os:android -d:androidNDK " & extra_params & " " & srcDir & "/libsds.nim" task libsdsAndroid, "Build the mobile bindings for Android":