From cc9663c4528ed64de43ba3ddb9f9c4f421593a92 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Sun, 24 Aug 2025 23:56:14 +0200 Subject: [PATCH 01/25] nimble and Makefile changes for Android support --- Makefile | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++- sds.nimble | 23 +++++++++++++++++++ 2 files changed, 89 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 6c7a6ed..775c278 100644 --- a/Makefile +++ b/Makefile @@ -61,4 +61,69 @@ else echo -e $(BUILD_MSG) "build/$@.so" && \ $(ENV_SCRIPT) nim libsdsDynamic $(NIM_PARAMS) sds.nims endif -endif \ No newline at end of file +endif + +##################### +## Mobile Bindings ## +##################### +.PHONY: libsds-android \ + libsds-android-precheck \ + libsds-android-arm64 \ + libsds-android-amd64 \ + libsds-android-x86 \ + libsds-android-arm \ + rebuild-nat-libs \ + build-libsds-for-android-arch + +ANDROID_TARGET ?= 30 +ifeq ($(detected_OS),Darwin) + ANDROID_TOOLCHAIN_DIR := $(ANDROID_NDK_HOME)/toolchains/llvm/prebuilt/darwin-x86_64 +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: + $(MAKE) rebuild-nat-libs CC=$(ANDROID_TOOLCHAIN_DIR)/bin/$(ANDROID_COMPILER) && \ + ./scripts/build_rln_android.sh $(CURDIR)/build $(LIBRLN_BUILDDIR) $(LIBRLN_VERSION) $(CROSS_TARGET) $(ABIDIR) && \ + 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 + +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 + +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 + +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 + +libsds-android: + $(MAKE) libsds-android-amd64 + $(MAKE) libsds-android-arm64 + $(MAKE) libsds-android-x86 +# This target is disabled because on recent versions of cross-rs complain with the following error +# relocation R_ARM_THM_ALU_PREL_11_0 cannot be used against symbol 'stack_init_trampoline_return'; recompile with -fPIC +# It's likely this architecture is not used so we might just not support it. +# $(MAKE) libsds-android-arm \ No newline at end of file diff --git a/sds.nimble b/sds.nimble index d8294b3..37ca997 100644 --- a/sds.nimble +++ b/sds.nimble @@ -44,3 +44,26 @@ task libsdsDynamic, "Generate bindings": --warning:UnusedImport:on \ -d:chronicles_log_level=TRACE """, "dynamic" + +### Mobile Android +proc buildMobileAndroid(srcDir = ".", params = "") = + let cpu = getEnv("CPU") + let abiDir = getEnv("ABIDIR") + + let outDir = "build/android/" & abiDir + if not dirExists outDir: + mkDir outDir + + var extra_params = params + for i in 2 ..< paramCount(): + 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 " & + extra_params & " " & srcDir & "/libsds.nim" + +task libsdsAndroid, "Build the mobile bindings for Android": + let srcDir = "./library" + let extraParams = "-d:chronicles_log_level=ERROR" + buildMobileAndroid srcDir, extraParams From 9bfa216814457142216b85c709807ae5cd1ad558 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Wed, 27 Aug 2025 19:09:05 +0200 Subject: [PATCH 02/25] avoid building nat-libs and rln from nim-sds --- Makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Makefile b/Makefile index 775c278..24499fc 100644 --- a/Makefile +++ b/Makefile @@ -90,8 +90,6 @@ ifndef ANDROID_NDK_HOME endif build-libsds-for-android-arch: - $(MAKE) rebuild-nat-libs CC=$(ANDROID_TOOLCHAIN_DIR)/bin/$(ANDROID_COMPILER) && \ - ./scripts/build_rln_android.sh $(CURDIR)/build $(LIBRLN_BUILDDIR) $(LIBRLN_VERSION) $(CROSS_TARGET) $(ABIDIR) && \ 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 From 16c982754a18efbfea4928c15a05d2c6f23d3e63 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Wed, 27 Aug 2025 19:55:08 +0200 Subject: [PATCH 03/25] properly pass include folder and sysroot in Makefile --- Makefile | 21 +++++++++++++-------- sds.nimble | 5 +++-- 2 files changed, 16 insertions(+), 10 deletions(-) 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": From 8c34f85043fc3b7f529fcded9f33a8a35d0a78e2 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Wed, 27 Aug 2025 20:05:33 +0200 Subject: [PATCH 04/25] Makefile: avoid passing invalid sysroot option to compiler --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 88a7684..e64093f 100644 --- a/Makefile +++ b/Makefile @@ -86,7 +86,7 @@ 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: NIM_PARAMS := $(NIM_PARAMS) --passC="-I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" 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) \ From ccbbe1a4e013f31edd16b21278026ad845704443 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Wed, 27 Aug 2025 20:48:12 +0200 Subject: [PATCH 05/25] Makefile try nostdinc param --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e64093f..57cfed9 100644 --- a/Makefile +++ b/Makefile @@ -86,7 +86,7 @@ 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" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="-nostdinc --sysroot=$ANDROID_TOOLCHAIN_DIR/sysroot -I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" 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) \ From 8ee27a36b98e9305795843965f991ec5a50ed6d1 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Wed, 27 Aug 2025 20:58:13 +0200 Subject: [PATCH 06/25] only use nostdinc in Makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 57cfed9..4e84c2d 100644 --- a/Makefile +++ b/Makefile @@ -86,7 +86,7 @@ ifndef ANDROID_NDK_HOME $(error ANDROID_NDK_HOME is not set) endif -build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="-nostdinc --sysroot=$ANDROID_TOOLCHAIN_DIR/sysroot -I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="-nostdinc -I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" 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) \ From 6c8069f36c5eabc90d280c19af16de6e9a7d4c5d Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Wed, 27 Aug 2025 21:10:45 +0200 Subject: [PATCH 07/25] multiple passC --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 4e84c2d..392d264 100644 --- a/Makefile +++ b/Makefile @@ -86,7 +86,7 @@ ifndef ANDROID_NDK_HOME $(error ANDROID_NDK_HOME is not set) endif -build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="-nostdinc -I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="-nostdinc " --passC=" -I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" 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) \ From 6203dbec56a82be52c7b96b1da55b8ee78d0aa82 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Wed, 27 Aug 2025 21:27:40 +0200 Subject: [PATCH 08/25] trying isystem in Makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 392d264..427c66c 100644 --- a/Makefile +++ b/Makefile @@ -86,7 +86,7 @@ ifndef ANDROID_NDK_HOME $(error ANDROID_NDK_HOME is not set) endif -build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="-nostdinc " --passC=" -I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="-isystem $(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" 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) \ From 0232818163fc36ec8f5dffbbf271eb1ed3b09e71 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Wed, 27 Aug 2025 21:43:59 +0200 Subject: [PATCH 09/25] Makefile trying single quotes --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 427c66c..add4a30 100644 --- a/Makefile +++ b/Makefile @@ -86,7 +86,7 @@ ifndef ANDROID_NDK_HOME $(error ANDROID_NDK_HOME is not set) endif -build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="-isystem $(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC='"-isystem $(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include'" 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) \ From 55cf7120fe11ad8851b5ed15879b00ac58b81b91 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Wed, 27 Aug 2025 21:55:09 +0200 Subject: [PATCH 10/25] Makefile avoid double-single-quote --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index add4a30..acc65a6 100644 --- a/Makefile +++ b/Makefile @@ -86,7 +86,7 @@ ifndef ANDROID_NDK_HOME $(error ANDROID_NDK_HOME is not set) endif -build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC='"-isystem $(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include'" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC='-isystem $(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include' 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) \ From 3787c1458a956d7b97d8287961b198807ebfdbed Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Wed, 27 Aug 2025 22:09:37 +0200 Subject: [PATCH 11/25] backslashed double quote in Makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index acc65a6..4fe3e2f 100644 --- a/Makefile +++ b/Makefile @@ -86,7 +86,7 @@ ifndef ANDROID_NDK_HOME $(error ANDROID_NDK_HOME is not set) endif -build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC='-isystem $(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include' +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC=\"-isystem $(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include\" 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) \ From 160f9a443f1b735be4dfef36dcc9fd48d69b1fec Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Wed, 27 Aug 2025 22:37:53 +0200 Subject: [PATCH 12/25] different way to pass isystem --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 4fe3e2f..ba2bb0c 100644 --- a/Makefile +++ b/Makefile @@ -86,7 +86,7 @@ ifndef ANDROID_NDK_HOME $(error ANDROID_NDK_HOME is not set) endif -build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC=\"-isystem $(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include\" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC=-isystem\ "$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" 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) \ From 99c7d6ad10bdeed39f2d2822e7bd9cabf6b6ddb7 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Wed, 27 Aug 2025 22:57:48 +0200 Subject: [PATCH 13/25] -I Makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index ba2bb0c..e64093f 100644 --- a/Makefile +++ b/Makefile @@ -86,7 +86,7 @@ ifndef ANDROID_NDK_HOME $(error ANDROID_NDK_HOME is not set) endif -build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC=-isystem\ "$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="-I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" 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) \ From b3870f00c653e8183c56f7036854cb102ce30537 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Wed, 27 Aug 2025 23:20:51 +0200 Subject: [PATCH 14/25] Makefile trying to pass the sysroot --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e64093f..967c980 100644 --- a/Makefile +++ b/Makefile @@ -86,7 +86,7 @@ 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" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="--sysroot=$(ANDROID_TOOLCHAIN_DIR)/sysroot" --passC="-I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" 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) \ From bcabc4ae50e55063fc36f166894e9037495601fe Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Wed, 27 Aug 2025 23:44:00 +0200 Subject: [PATCH 15/25] Makefile add abidir dependant include folder --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 967c980..b4b7073 100644 --- a/Makefile +++ b/Makefile @@ -87,6 +87,7 @@ ifndef ANDROID_NDK_HOME endif build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="--sysroot=$(ANDROID_TOOLCHAIN_DIR)/sysroot" --passC="-I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="-I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include/$(ABIDIR)-linux-android" 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) \ From 29072f63ef281d47b5dbf4f337c4139706c32993 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Thu, 28 Aug 2025 00:01:10 +0200 Subject: [PATCH 16/25] Makefile: passing ndk lib to linker --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index b4b7073..49ed71a 100644 --- a/Makefile +++ b/Makefile @@ -88,6 +88,7 @@ endif build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="--sysroot=$(ANDROID_TOOLCHAIN_DIR)/sysroot" --passC="-I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="-I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include/$(ABIDIR)-linux-android" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passL="-L$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/lib/$(ABIDIR)-linux-android/$(ANDROID_TARGET)" 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) \ From 27ca8c137e55daccbbfb7cdc58b63d37073c44ac Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Thu, 28 Aug 2025 00:55:20 +0200 Subject: [PATCH 17/25] correcting Android include and lib paths --- Makefile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 49ed71a..389a8b9 100644 --- a/Makefile +++ b/Makefile @@ -87,8 +87,8 @@ ifndef ANDROID_NDK_HOME endif build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="--sysroot=$(ANDROID_TOOLCHAIN_DIR)/sysroot" --passC="-I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" -build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="-I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include/$(ABIDIR)-linux-android" -build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passL="-L$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/lib/$(ABIDIR)-linux-android/$(ANDROID_TARGET)" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="-I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include/$(ARCH_DIRNAME)" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passL="-L$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/lib/$(ARCH_DIRNAME)/$(ANDROID_TARGET)" 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) \ @@ -97,6 +97,7 @@ build-libsds-for-android-arch: libsds-android-arm64: ANDROID_ARCH=aarch64-linux-android libsds-android-arm64: CPU=arm64 libsds-android-arm64: ABIDIR=arm64-v8a +libsds-android-arm64: ARCH_DIRNAME=aarch64-linux-android 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 @@ -104,6 +105,7 @@ libsds-android-arm64: | libsds-android-precheck build deps libsds-android-amd64: ANDROID_ARCH=x86_64-linux-android libsds-android-amd64: CPU=amd64 libsds-android-amd64: ABIDIR=x86_64 +libsds-android-amd64: ARCH_DIRNAME=x86_64-linux-android 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 @@ -111,6 +113,7 @@ libsds-android-amd64: | libsds-android-precheck build deps libsds-android-x86: ANDROID_ARCH=i686-linux-android libsds-android-x86: CPU=i386 libsds-android-x86: ABIDIR=x86 +libsds-android-x86: ARCH_DIRNAME=i686-linux-android 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 @@ -118,6 +121,7 @@ libsds-android-x86: | libsds-android-precheck build deps libsds-android-arm: ANDROID_ARCH=armv7a-linux-androideabi libsds-android-arm: CPU=arm libsds-android-arm: ABIDIR=armeabi-v7a +libsds-android-arm: ARCH_DIRNAME=arm-linux-androideabi 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) \ From 3af1a228e5deb784d5024d8d5c99e5133c61dcfb Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Thu, 28 Aug 2025 01:12:07 +0200 Subject: [PATCH 18/25] Makefile: properly passing ARCH_DIRNAME --- Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 389a8b9..fd1a77c 100644 --- a/Makefile +++ b/Makefile @@ -90,7 +90,10 @@ build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="--sysroot=$( build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="-I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include/$(ARCH_DIRNAME)" build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passL="-L$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/lib/$(ARCH_DIRNAME)/$(ANDROID_TARGET)" build-libsds-for-android-arch: - CPU=$(CPU) ABIDIR=$(ABIDIR) ANDROID_ARCH=$(ANDROID_ARCH) ANDROID_COMPILER=$(ANDROID_COMPILER) \ + CPU=$(CPU) ABIDIR=$(ABIDIR) \ + ARCH_DIRNAME=$(ARCH_DIRNAME) \ + ANDROID_ARCH=$(ANDROID_ARCH) \ + ANDROID_COMPILER=$(ANDROID_COMPILER) \ ANDROID_TOOLCHAIN_DIR=$(ANDROID_TOOLCHAIN_DIR) $(ENV_SCRIPT) \ nim libsdsAndroid $(NIM_PARAMS) sds.nims From 3dd3f28a8b3bf71fd277df972c2c61a68f76f78c Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Thu, 28 Aug 2025 01:22:37 +0200 Subject: [PATCH 19/25] pass ARCH_DIRNAME properly --- Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index fd1a77c..cf03f6a 100644 --- a/Makefile +++ b/Makefile @@ -103,7 +103,7 @@ libsds-android-arm64: ABIDIR=arm64-v8a libsds-android-arm64: ARCH_DIRNAME=aarch64-linux-android 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 + CPU=$(CPU) ABIDIR=$(ABIDIR) ARCH_DIRNAME=$(ARCH_DIRNAME) ANDROID_COMPILER=$(ANDROID_ARCH)$(ANDROID_TARGET)-clang libsds-android-amd64: ANDROID_ARCH=x86_64-linux-android libsds-android-amd64: CPU=amd64 @@ -111,7 +111,7 @@ libsds-android-amd64: ABIDIR=x86_64 libsds-android-amd64: ARCH_DIRNAME=x86_64-linux-android 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 + CPU=$(CPU) ABIDIR=$(ABIDIR) ARCH_DIRNAME=$(ARCH_DIRNAME) ANDROID_COMPILER=$(ANDROID_ARCH)$(ANDROID_TARGET)-clang libsds-android-x86: ANDROID_ARCH=i686-linux-android libsds-android-x86: CPU=i386 @@ -119,7 +119,7 @@ libsds-android-x86: ABIDIR=x86 libsds-android-x86: ARCH_DIRNAME=i686-linux-android 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 + CPU=$(CPU) ABIDIR=$(ABIDIR) ARCH_DIRNAME=$(ARCH_DIRNAME) ANDROID_COMPILER=$(ANDROID_ARCH)$(ANDROID_TARGET)-clang libsds-android-arm: ANDROID_ARCH=armv7a-linux-androideabi libsds-android-arm: CPU=arm @@ -128,7 +128,7 @@ libsds-android-arm: ARCH_DIRNAME=arm-linux-androideabi 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) \ + CROSS_TARGET=armv7-linux-androideabi CPU=$(CPU) ABIDIR=$(ABIDIR) ARCH_DIRNAME=$(ARCH_DIRNAME) \ ANDROID_COMPILER=$(ANDROID_ARCH)$(ANDROID_TARGET)-clang libsds-android: From e069e25c6ced0b91e514f8bd159f4534437da095 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Thu, 28 Aug 2025 01:47:05 +0200 Subject: [PATCH 20/25] Makefile pass target to compiler and linker --- Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index cf03f6a..7ed66f2 100644 --- a/Makefile +++ b/Makefile @@ -86,7 +86,11 @@ ifndef ANDROID_NDK_HOME $(error ANDROID_NDK_HOME is not set) endif -build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="--sysroot=$(ANDROID_TOOLCHAIN_DIR)/sysroot" --passC="-I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="--sysroot=$(ANDROID_TOOLCHAIN_DIR)/sysroot" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passL="--sysroot=$(ANDROID_TOOLCHAIN_DIR)/sysroot" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="--target=$(ANDROID_ARCH)$(ANDROID_TARGET)" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passL="--target=$(ANDROID_ARCH)$(ANDROID_TARGET)" +build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="-I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include" build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passC="-I$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/include/$(ARCH_DIRNAME)" build-libsds-for-android-arch: NIM_PARAMS := $(NIM_PARAMS) --passL="-L$(ANDROID_TOOLCHAIN_DIR)/sysroot/usr/lib/$(ARCH_DIRNAME)/$(ANDROID_TARGET)" build-libsds-for-android-arch: From 39ab3b9ab4051cb728b539d0f676ae6a1a11246f Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Thu, 28 Aug 2025 11:00:54 +0200 Subject: [PATCH 21/25] only support arm64-v8a for now --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 7ed66f2..b91d8db 100644 --- a/Makefile +++ b/Makefile @@ -136,9 +136,9 @@ libsds-android-arm: | libsds-android-precheck build deps ANDROID_COMPILER=$(ANDROID_ARCH)$(ANDROID_TARGET)-clang libsds-android: - $(MAKE) libsds-android-amd64 +# $(MAKE) libsds-android-amd64 $(MAKE) libsds-android-arm64 - $(MAKE) libsds-android-x86 +# $(MAKE) libsds-android-x86 # This target is disabled because on recent versions of cross-rs complain with the following error # relocation R_ARM_THM_ALU_PREL_11_0 cannot be used against symbol 'stack_init_trampoline_return'; recompile with -fPIC # It's likely this architecture is not used so we might just not support it. From 845a35217ccb82bca41382b02841563468286ae6 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Thu, 28 Aug 2025 11:55:04 +0200 Subject: [PATCH 22/25] only target amd64 in Makefile --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index b91d8db..6b124a2 100644 --- a/Makefile +++ b/Makefile @@ -136,8 +136,8 @@ libsds-android-arm: | libsds-android-precheck build deps ANDROID_COMPILER=$(ANDROID_ARCH)$(ANDROID_TARGET)-clang libsds-android: -# $(MAKE) libsds-android-amd64 - $(MAKE) libsds-android-arm64 + $(MAKE) libsds-android-amd64 +# $(MAKE) libsds-android-arm64 # $(MAKE) libsds-android-x86 # This target is disabled because on recent versions of cross-rs complain with the following error # relocation R_ARM_THM_ALU_PREL_11_0 cannot be used against symbol 'stack_init_trampoline_return'; recompile with -fPIC From 6cb5033d53afcab705275ef8dedaa7b5fdb61147 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Thu, 28 Aug 2025 14:44:59 +0200 Subject: [PATCH 23/25] Makefile arch-dependant build --- Makefile | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 6b124a2..bd42273 100644 --- a/Makefile +++ b/Makefile @@ -136,10 +136,18 @@ libsds-android-arm: | libsds-android-precheck build deps ANDROID_COMPILER=$(ANDROID_ARCH)$(ANDROID_TARGET)-clang libsds-android: +ifeq ($(ARCH),arm64) + $(MAKE) libsds-android-arm64 +else ifeq ($(ARCH),amd64) $(MAKE) libsds-android-amd64 -# $(MAKE) libsds-android-arm64 -# $(MAKE) libsds-android-x86 +else ifeq ($(ARCH),x86) + $(MAKE) libsds-android-x86 +# else ifeq ($(ARCH),arm) +# $(MAKE) libsds-android-arm # This target is disabled because on recent versions of cross-rs complain with the following error # relocation R_ARM_THM_ALU_PREL_11_0 cannot be used against symbol 'stack_init_trampoline_return'; recompile with -fPIC # It's likely this architecture is not used so we might just not support it. -# $(MAKE) libsds-android-arm \ No newline at end of file +else + $(error Unsupported ARCH '$(ARCH)'. Please set ARCH to one of: arm64, arm, amd64, x86) +endif + From 0494cafc963a3bd2e0c049b0b460c9eb4381d5b9 Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Thu, 28 Aug 2025 18:53:19 +0200 Subject: [PATCH 24/25] sds.nimble ensure the resulting lib is placed in build folder --- sds.nimble | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sds.nimble b/sds.nimble index 9c5e034..cc6abce 100644 --- a/sds.nimble +++ b/sds.nimble @@ -48,9 +48,8 @@ task libsdsDynamic, "Generate bindings": ### Mobile Android proc buildMobileAndroid(srcDir = ".", params = "") = let cpu = getEnv("CPU") - let abiDir = getEnv("ABIDIR") - let outDir = "build/android/" & abiDir + let outDir = "build/" if not dirExists outDir: mkDir outDir @@ -61,8 +60,8 @@ proc buildMobileAndroid(srcDir = ".", params = "") = 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:-llog --cpu:" & cpu & " --os:android -d:androidNDK " & - extra_params & " " & srcDir & "/libsds.nim" + " --passL:-llog --cpu:" & cpu & " --os:android -d:androidNDK " & extra_params & " " & + srcDir & "/libsds.nim" task libsdsAndroid, "Build the mobile bindings for Android": let srcDir = "./library" From 1d93b369ad1450817afd8649cf82c204fbe33dda Mon Sep 17 00:00:00 2001 From: Ivan Folgueira Bande Date: Fri, 29 Aug 2025 20:08:16 +0200 Subject: [PATCH 25/25] sds.nimble properly export libsdsNimMain function --- sds.nimble | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sds.nimble b/sds.nimble index cc6abce..ca300bf 100644 --- a/sds.nimble +++ b/sds.nimble @@ -20,11 +20,11 @@ proc buildLibrary(name: string, srcDir = "./", params = "", `type` = "static") = extra_params &= " " & paramStr(i) if `type` == "static": exec "nim c" & " --out:build/" & name & - ".a --threads:on --app:staticlib --opt:size --noMain --mm:refc --header --undef:metrics --nimMainPrefix:libsds --skipParentCfg:on " & + ".a --threads:on --app:staticlib --opt:size --noMain --mm:refc --header --nimMainPrefix:libsds --skipParentCfg:on " & extra_params & " " & srcDir & name & ".nim" else: exec "nim c" & " --out:build/" & name & - ".so --threads:on --app:lib --opt:size --noMain --mm:refc --header --undef:metrics --nimMainPrefix:libsds --skipParentCfg:on " & + ".so --threads:on --app:lib --opt:size --noMain --mm:refc --header --nimMainPrefix:libsds --skipParentCfg:on " & extra_params & " " & srcDir & name & ".nim" # Tasks @@ -58,7 +58,7 @@ proc buildMobileAndroid(srcDir = ".", params = "") = extra_params &= " " & paramStr(i) exec "nim c" & " --out:" & outDir & - "/libsds.so --threads:on --app:lib --opt:size --noMain --mm:refc " & + "/libsds.so --threads:on --app:lib --opt:size --noMain --mm:refc --nimMainPrefix:libsds " & "-d:chronicles_sinks=textlines[dynamic] --header --passL:-L" & outdir & " --passL:-llog --cpu:" & cpu & " --os:android -d:androidNDK " & extra_params & " " & srcDir & "/libsds.nim"