mkv

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

flake.nix (1536B)


      1 {
      2   description = "mkv";
      3   inputs = {
      4     nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
      5     flake-utils.url = "github:numtide/flake-utils";
      6   };
      7   outputs =
      8     { self, nixpkgs, flake-utils }:
      9     flake-utils.lib.eachDefaultSystem (system:
     10       let
     11         pkgs = import nixpkgs { inherit system; };
     12         darwinBuildInputs = pkgs.lib.optionals pkgs.stdenv.hostPlatform.isDarwin [
     13           pkgs.libiconv
     14         ];
     15         mkMkv = pkgs': pkgs'.rustPlatform.buildRustPackage {
     16           pname = "mkv";
     17           version = "0.1.0";
     18           cargoLock.lockFile = ./Cargo.lock;
     19           src = pkgs.lib.cleanSource ./.;
     20           buildInputs = pkgs'.lib.optionals pkgs'.stdenv.hostPlatform.isDarwin [
     21             pkgs'.libiconv
     22           ];
     23           doCheck = false;
     24         };
     25         mkv = mkMkv pkgs;
     26       in
     27       {
     28         devShells.default = pkgs.mkShell {
     29           packages = [
     30             pkgs.rustc
     31             pkgs.cargo
     32             pkgs.rustfmt
     33             pkgs.rust-analyzer
     34           ];
     35         };
     36         packages = {
     37           default = mkv;
     38           x86_64-linux = mkv;
     39         } // pkgs.lib.optionalAttrs pkgs.stdenv.hostPlatform.isLinux {
     40           x86_64-linux-musl = mkMkv pkgs.pkgsCross.musl64;
     41           aarch64-linux = mkMkv pkgs.pkgsCross.aarch64-multiplatform;
     42         };
     43         checks.default = mkv.overrideAttrs {
     44           doCheck = true;
     45           checkPhase = ''
     46             runHook preCheck
     47             cargo test --lib
     48             runHook postCheck
     49           '';
     50         };
     51       }
     52     );
     53 }