diff --git a/flake.nix b/flake.nix index c74d8a4b..18f2608f 100644 --- a/flake.nix +++ b/flake.nix @@ -1,14 +1,19 @@ { - inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + inputs.nixpkgs.url = "github:NixOS/nixpkgs?ref=nixos-unstable"; - outputs = {nixpkgs, ...}: let + outputs = { + self, + nixpkgs, + ... + }: let systems = ["x86_64-linux" "aarch64-linux"]; forEachSystem = nixpkgs.lib.genAttrs systems; pkgsForEach = nixpkgs.legacyPackages; in rec { packages = forEachSystem (system: { - default = pkgsForEach.${system}.callPackage ./nix/package.nix {}; + mrc = pkgsForEach.${system}.callPackage ./nix/package.nix {}; + default = self.packages.${system}.mrc; }); devShells = forEachSystem (system: { diff --git a/nix/package.nix b/nix/package.nix index e6a626c7..8431f6e4 100644 --- a/nix/package.nix +++ b/nix/package.nix @@ -1,13 +1,16 @@ { lib, rustPlatform, + pkg-config, + openssl, }: let fs = lib.fileset; s = ../.; in rustPlatform.buildRustPackage (finalAttrs: { pname = "mrc"; - version = "0.1.0"; + version = (builtins.fromTOML (builtins.readFile (s + /Cargo.toml))).package.version; + src = fs.toSource { root = s; fileset = fs.unions [ @@ -17,10 +20,23 @@ in ]; }; - cargoLock.lockFile = finalAttrs.src + /Cargo.lock; + strictDeps = true; + enableParallelBuilding = true; + + nativeBuildInputs = [ + pkg-config + ]; + + buildInputs = [ + openssl + ]; + + cargoLock.lockFile = "${finalAttrs.src}/Cargo.lock"; + useFetchCargoVendor = true; meta = { - description = "IPC wrapper & command-line controller for MPV, the video player "; + description = "IPC wrapper & command-line controller for MPV, the video player"; + homePage = "https://github.com/notashelf/mrc"; mainProgram = "mrc"; license = lib.licenses.mpl20; maintainers = [lib.maintainers.NotAShelf];