{ 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; }); }