Skip to content

Commit d87ffe4

Browse files
committed
build: build Android wheels for PyPI
1 parent 3b3d576 commit d87ffe4

File tree

3 files changed

+41
-4
lines changed

3 files changed

+41
-4
lines changed

.github/workflows/deltachat-rpc-server.yml

+4
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,10 @@ jobs:
248248
cp result/*.whl dist/
249249
nix build .#deltachat-rpc-server-win32-wheel
250250
cp result/*.whl dist/
251+
nix build .#deltachat-rpc-server-arm64-v8a-android-wheel
252+
cp result/*.whl dist/
253+
nix build .#deltachat-rpc-server-armeabi-v7a-android-wheel
254+
cp result/*.whl dist/
251255
nix build .#deltachat-rpc-server-source
252256
cp result/*.tar.gz dist/
253257
python3 scripts/wheel-rpc-server.py x86_64-darwin bin/deltachat-rpc-server-x86_64-macos

flake.nix

+35-4
Original file line numberDiff line numberDiff line change
@@ -309,10 +309,41 @@
309309
LD = "${targetCc}";
310310
};
311311

312-
mkAndroidPackages = arch: {
313-
"deltachat-rpc-server-${arch}-android" = mkAndroidRustPackage arch "deltachat-rpc-server";
314-
"deltachat-repl-${arch}-android" = mkAndroidRustPackage arch "deltachat-repl";
315-
};
312+
mkAndroidPackages = arch:
313+
let
314+
rpc-server = mkAndroidRustPackage arch "deltachat-rpc-server";
315+
in
316+
{
317+
"deltachat-rpc-server-${arch}-android" = rpc-server;
318+
"deltachat-repl-${arch}-android" = mkAndroidRustPackage arch "deltachat-repl";
319+
"deltachat-rpc-server-${arch}-android-wheel" =
320+
pkgs.stdenv.mkDerivation {
321+
pname = "deltachat-rpc-server-${arch}-android-wheel";
322+
version = manifest.version;
323+
src = nix-filter.lib {
324+
root = ./.;
325+
include = [
326+
"scripts/wheel-rpc-server.py"
327+
"deltachat-rpc-server/README.md"
328+
"LICENSE"
329+
"Cargo.toml"
330+
];
331+
};
332+
nativeBuildInputs = [
333+
pkgs.python3
334+
pkgs.python3Packages.wheel
335+
];
336+
buildInputs = [
337+
rpc-server
338+
];
339+
buildPhase = ''
340+
mkdir tmp
341+
cp ${rpc-server}/bin/deltachat-rpc-server tmp/deltachat-rpc-server
342+
python3 scripts/wheel-rpc-server.py ${arch}-android tmp/deltachat-rpc-server
343+
'';
344+
installPhase = ''mkdir -p $out; cp -av deltachat_rpc_server-*.whl $out'';
345+
};
346+
};
316347

317348
mkRustPackages = arch:
318349
let

scripts/wheel-rpc-server.py

+2
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,8 @@ def main():
154154
"armv6l-linux": "linux_armv6l",
155155
"aarch64-linux": "manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64",
156156
"i686-linux": "manylinux_2_12_i686.manylinux2010_i686.musllinux_1_1_i686",
157+
"arm64-v8a-android": "android_21_arm64_v8a",
158+
"armeabi-v7a-android": "android_21_armeabi_v7a",
157159
"win64": "win_amd64",
158160
"win32": "win32",
159161
# macOS versions for platform compatibility tags are taken from https://doc.rust-lang.org/rustc/platform-support.html

0 commit comments

Comments
 (0)