diff --git a/apks/li/lichess/package.nix b/apks/li/lichess/package.nix new file mode 100644 index 0000000..9f5ef07 --- /dev/null +++ b/apks/li/lichess/package.nix @@ -0,0 +1,59 @@ +{ + lib, + stdenv, + pkgs +}: + +stdenv.mkDerivation rec { + name = "lichess"; + version = "0.14.14"; + src = pkgs.fetchFromGitHub { + owner = "lichess-org"; + repo = "mobile"; + tag = "v${version}"; + hash = "sha256-NqS3vyz9x2yILTuJxvnSz4F8ZpZ7NUf/+jVmxsqPWpk="; + }; + + + nativeBuildInputs = [ + pkgs.androidenv + pkgs.androidsdk + pkgs.androidndk + pkgs.nodejs-18_x + pkgs.yarn + ]; + buildInputs = [ + pkgs.androidenv + pkgs.androidsdk + pkgs.androidndk + pkgs.nodejs-18_x + pkgs.yarn + ]; + + buildPhase = '' + export ANDROID_HOME=${pkgs.androidsdk}/libexec + export ANDROID_NDK_HOME=${pkgs.androidndk}/libexec + export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH + + yarn install + yarn android:build + + # The APK is built in the android/app/build/outputs/apk/debug directory + + + ''; + + installPhase = '' + mkdir -p $out + cp -r android/app/build/outputs/apk/debug/app-debug.apk $out/lichess.apk + + ''; + + meta = with lib; { + description = "Lichess mobile app"; + license = licenses.mit; + platforms = platforms.android; + maintainers = with maintainers; [ ]; + }; + +} diff --git a/flake.nix b/flake.nix index e78ab25..9df9398 100644 --- a/flake.nix +++ b/flake.nix @@ -1,8 +1,15 @@ { description = "Build android applications with nix"; inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; - outputs = { self, nixpkgs }: { - packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello; - packages.x86_64-linux.default = self.packages.x86_64-linux.hello; + outputs = { self, nixpkgs }: + let + system = "x86_64-linux"; + pkgs = import nixpkgs { inherit system; }; + callPackage = pkgs.callPackage; + stdenv = pkgs.stdenv; + in + { + packages.x86_64-linux.lichess = callPackage ./apks/li/lichess/package.nix { }; + packages.x86_64-linux.default = self.packages.x86_64-linux.lichess; }; }