Newer
Older
{
description = "The PrivateStorage Mobile application";
inputs = {
nixpkgs = {
url = "github:NixOS/nixpkgs?ref=nixos-22.05";
};
flake-utils.url = "github:numtide/flake-utils";
pypi-deps-db = {
flake = false;
url = "github:DavHau/pypi-deps-db";
};
mach-nix-flake = {
flake = true;
url = "github:DavHau/mach-nix";
inputs = {
nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils";
pypi-deps-db.follows = "pypi-deps-db";
};
};
};
outputs = { self, nixpkgs, flake-utils, mach-nix-flake, ... }:
flake-utils.lib.eachSystem [ "x86_64-linux" ] (system: let
mach-nix = mach-nix-flake.lib.${system};
config = {
allowUnfree = true;
android_sdk.accept_license = true;
};
lib = pkgs.lib;
kivy-env = mach-nix.mkPython {
python = "python39";
requirements = ''
kivy
Pillow
buildozer
cython
python-for-android
'';
};
cmakeVersion = "3.10.2";
# Also includes ndk
androidComposition = pkgs.callPackage ./android.nix { inherit cmakeVersion; };
in {
# https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks/android.section.md
# is a good reference for this stuff.
devShells.default = pkgs.mkShell rec {
name = "ps-mobile";
version = "2022.10.21";
# The docs talk about ANDROID_SDK_ROOT but apparently it has been
# renamed yet again.
ANDROIDSDK = "${androidComposition.androidsdk}/libexec/android-sdk";
ANDROIDNDK = "${ANDROIDSDK}/ndk-bundle";
shellHook = ''
export PATH="$(echo "$ANDROIDSDK/cmake/${cmakeVersion}".*/bin):$PATH"
'';
buildInputs = with pkgs; [
android-studio
kivy-env
# https://github.com/kivy/python-for-android/blob/v2020.04.29/doc/source/troubleshooting.rst#errors-related-to-java-version
openjdk8
];
};
});
}