diff options
Diffstat (limited to 'flake.nix')
-rw-r--r-- | flake.nix | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..9eb296e --- /dev/null +++ b/flake.nix @@ -0,0 +1,66 @@ +{ + inputs = { + flake-utils.url = "github:numtide/flake-utils"; + rust = { + type = "github"; + owner = "oxalica"; + repo = "rust-overlay"; + ref = "master"; + inputs.flake-utils.follows = "flake-utils"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + outputs = { self, nixpkgs, rust, flake-utils }: let + supportedSystems = ["aarch64-linux" "x86_64-linux"]; + forAllSystems = f: flake-utils.lib.eachSystem supportedSystems f; + in forAllSystems (system: let + pkgs = import nixpkgs { + localSystem.system = system; + overlays = [ rust.overlay ]; + }; + rust-bin = pkgs.rust-bin.stable.latest; + packages = { + kittybox-micropub = { stdenv, lib, openssl, pkg-config, redis, rustPlatform }: + rustPlatform.buildRustPackage { + name = "kittybox-micropub"; + version = "0.1.0"; + + src = ./.; + + #cargoSha256 = nixpkgs.lib.fakeSha256; + cargoHash = "sha256-DnPwAuzXWLJdyDf0dvfXUic0oQPVCpsnCyFdLSlsSs0="; + + buildInputs = [ openssl ]; + nativeBuildInputs = [ pkg-config ]; + checkInputs = [ redis ]; + doCheck = stdenv.hostPlatform == stdenv.targetPlatform; + + meta = with lib.meta; { + maintainers = with maintainers; [ vika_nezrimaya ]; + platforms = supportedSystems; + mainProgram = "kittybox_micropub"; + }; + }; + }; + in { + packages = let + rustPlatform = pkgs.makeRustPlatform { + rustc = rust-bin.minimal; + cargo = rust-bin.minimal; + }; + in { + kittybox-micropub = pkgs.callPackage packages.kittybox-micropub { inherit rustPlatform; }; + }; + defaultPackage = self.packages.${system}.kittybox-micropub; + + devShell = pkgs.mkShell { + name = "rust-dev-shell"; + buildInputs = with pkgs; [ openssl ]; + nativeBuildInputs = with pkgs; [ + pkg-config lld + rust-bin.default + rust-bin.rls + ]; + }; + }); +} |