Skip to content
Snippets Groups Projects
flake.nix 1.94 KiB
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};
Jean-Paul Calderone's avatar
Jean-Paul Calderone committed
      pkgs = import nixpkgs {
        inherit system;
        config = {
          allowUnfree = true;
          android_sdk.accept_license = true;
        };
Jean-Paul Calderone's avatar
Jean-Paul Calderone committed
      };
      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; };

      # 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