monorepo/flake.nix

62 lines
1.9 KiB
Nix

{
description = "Lumenescent Dreams Tools";
inputs = {
crane.inputs.nixpkgs.follows = "nixpkgs";
crane.url = "github:ipetkov/crane";
nixpkgs.url = "nixpkgs/nixos-22.11";
oxalica.url = "https://github.com/oxalica/rust-overlay/archive/master.tar.gz";
unstable.url = "nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = inputs@{ self, nixpkgs, unstable, oxalica, crane, flake-utils, ... }:
flake-utils.lib.eachDefaultSystem (system:
let
version = builtins.string 0 8 self.lastModifiedDate;
pkgs = import nixpkgs { inherit system; };
craneLib = crane.lib.${system};
projects = {
glimmer = import ./glimmer/rust { inherit inputs system; };
};
in
{
packages.glimmer = projects.glimmer.package;
devShells.default =
let
rust_overlay = import oxalica;
pkgs = import nixpkgs { inherit system; overlays = [ rust_overlay ]; };
pkgs-unstable = import unstable { inherit system; overlays = [ rust_overlay ]; };
rust = pkgs.rust-bin.stable."1.65.0".default.override {
extensions = [ "rust-src" ];
};
in
pkgs.mkShell {
name = "ld-tools-devshell";
buildInputs = [
pkgs.clang
pkgs.entr
pkgs.glib
pkgs.gst_all_1.gst-plugins-bad
pkgs.gst_all_1.gst-plugins-base
pkgs.gst_all_1.gst-plugins-good
pkgs.gst_all_1.gst-plugins-ugly
pkgs.gst_all_1.gstreamer
pkgs.gtk4
pkgs.nodejs
pkgs.openssl
pkgs.pipewire
pkgs.pkg-config
pkgs.sqlite
pkgs-unstable.typeshare
rust
];
LIBCLANG_PATH="${pkgs.llvmPackages.libclang.lib}/lib";
};
checks = projects.glimmer.checks;
});
}