From 2cf5124f1d67c1a91d84970f17c02baf57925b88 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Mon, 11 May 2026 09:18:55 +0900 Subject: [PATCH] flake.nix: add android cross compiled shared library package --- Cargo.lock | 6 ++---- Cargo.toml | 3 ++- flake.nix | 40 +++++++++++++++++++++++++++++++++++++++- 3 files changed, 43 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2f8e958..f1a5ab5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -190,8 +190,7 @@ dependencies = [ [[package]] name = "sqlite3_ext" version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0758470d3ad4cbd0b7e9db9963f4d1e391bbfc3aa20a9b99e9ffd6a48ea5e4a" +source = "git+https://github.com/h7x4/sqlite3_ext?branch=aarch64-cross-compilation-fixes#47bbb3799d34b5fefb635a7e00320398594aa61d" dependencies = [ "bitflags 1.3.2", "fallible-iterator", @@ -209,8 +208,7 @@ dependencies = [ [[package]] name = "sqlite3_ext_macro" version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6ffb10e1a709864af4e8f6f08e23aae0eaebb81be9e3ae77e6052b6781c469d" +source = "git+https://github.com/h7x4/sqlite3_ext?branch=aarch64-cross-compilation-fixes#47bbb3799d34b5fefb635a7e00320398594aa61d" dependencies = [ "convert_case", "proc-macro2", diff --git a/Cargo.toml b/Cargo.toml index 8870b4b..021e0d0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,8 @@ edition = "2024" crate-type = [ "cdylib" ] [dependencies] -sqlite3_ext = { version = "0.2.0" } +# sqlite3_ext = { version = "0.2.0" } +sqlite3_ext = { git = "https://github.com/h7x4/sqlite3_ext", branch = "aarch64-cross-compilation-fixes" } [features] default = [ ] diff --git a/flake.nix b/flake.nix index 2634f84..c8b1141 100644 --- a/flake.nix +++ b/flake.nix @@ -66,6 +66,29 @@ cargoToml = builtins.fromTOML (builtins.readFile ./Cargo.toml); in forAllSystems (system: pkgs: _: let craneLib = (crane.mkLib pkgs).overrideToolchain (p: p.rust-bin.stable.latest.default); + + androidPkgs = import nixpkgs { + config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ + "aarch64-unknown-linux-android-ndk-toolchain" + "aarch64-unknown-linux-android-ndk-toolchain-wrapper" + "android-sdk-ndk" + "android-sdk-platform-tools" + "ndk" + "platform-tools" + ]; + localSystem = system; + crossSystem = lib.systems.examples.aarch64-android-prebuilt; + overlays = [ + (import rust-overlay) + ]; + }; + + cargoLock = { + lockFile = ./Cargo.lock; + outputHashes = { + "sqlite3_ext-0.2.0" = "sha256-DdLEHzheF/OPp4/qMuRSvtw+K6SeFU2+AHdQRu6z1lY="; + }; + }; in { default = self.packages.${system}.tamerye-shared-lib-crane; @@ -74,7 +97,7 @@ version = cargoToml.package.version; inherit src; - cargoLock.lockFile = ./Cargo.lock; + inherit cargoLock; strictDeps = true; doCheck = false; @@ -84,6 +107,21 @@ ]; }; + tamerye-shared-lib-android = androidPkgs.rustPlatform.buildRustPackage { + pname = "tamerye-shared-lib-android"; + version = cargoToml.package.version; + inherit src; + + inherit cargoLock; + + strictDeps = true; + doCheck = false; + + nativeBuildInputs = with androidPkgs; [ + rustfmt + ]; + }; + tamerye-shared-lib-crane = craneLib.buildPackage { pname = "tamerye-shared-lib"; version = cargoToml.package.version;