108 lines
3.4 KiB
Nix
108 lines
3.4 KiB
Nix
{
|
|
description = "Lumenescent Dreams Tools";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "nixpkgs/nixos-24.05";
|
|
unstable.url = "nixpkgs/nixos-unstable";
|
|
typeshare.url = "github:1Password/typeshare";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, unstable, typeshare, ... }:
|
|
let
|
|
version = builtins.string 0 8 self.lastModifiedDate;
|
|
supportedSystems = [ "x86_64-linux" ];
|
|
in
|
|
{
|
|
devShell."x86_64-linux" =
|
|
let
|
|
pkgs = import nixpkgs { system = "x86_64-linux"; };
|
|
pkgs-unstable = import unstable { system = "x86_64-linux"; };
|
|
in
|
|
pkgs.mkShell {
|
|
name = "ld-tools-devshell";
|
|
buildInputs = [
|
|
pkgs.cargo-nextest
|
|
pkgs.clang
|
|
pkgs.crate2nix
|
|
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.gst_all_1.gstreamer.dev
|
|
pkgs.gst_all_1.gst-libav
|
|
pkgs.gst_all_1.gst-vaapi
|
|
pkgs.gtk4
|
|
pkgs.libadwaita
|
|
pkgs.librsvg
|
|
pkgs.nodejs
|
|
pkgs.openssl
|
|
pkgs.pipewire
|
|
pkgs.pkg-config
|
|
pkgs.rustup
|
|
pkgs.sqlite
|
|
pkgs.cargo-nextest
|
|
pkgs.wasm-pack
|
|
pkgs.sqlx-cli
|
|
pkgs.udev
|
|
pkgs.wasm-pack
|
|
typeshare.packages."x86_64-linux".default
|
|
pkgs.nodePackages_latest.typescript-language-server
|
|
];
|
|
LIBCLANG_PATH="${pkgs.llvmPackages.libclang.lib}/lib";
|
|
ENV = "dev";
|
|
};
|
|
|
|
packages."x86_64-linux" =
|
|
let
|
|
pkgs = import nixpkgs { system = "x86_64-linux"; };
|
|
|
|
gtkNativeInputs = [
|
|
pkgs.pkg-config
|
|
pkgs.gtk4
|
|
pkgs.libadwaita
|
|
pkgs.wrapGAppsHook4
|
|
];
|
|
|
|
cargoOverrides = pkgs: pkgs.buildRustCrate.override {
|
|
defaultCrateOverrides = pkgs.defaultCrateOverrides // {
|
|
gobject-sys = attrs: { nativeBuildInputs = gtkNativeInputs; };
|
|
gio-sys = attrs: { nativeBuildInputs = gtkNativeInputs; };
|
|
gdk-pixbuf-sys = attrs: { nativeBuildInputs = gtkNativeInputs; };
|
|
libadwaita-sys = attrs: { nativeBuildInputs = gtkNativeInputs; };
|
|
|
|
dashboard = attrs: { nativeBuildInputs = gtkNativeInputs; };
|
|
fitnesstrax = import ./fitnesstrax/app/override.nix { gtkNativeInputs = gtkNativeInputs; };
|
|
otg-gtk = import ./otg/gtk/override.nix { gtkNativeInputs = gtkNativeInputs; };
|
|
};
|
|
};
|
|
|
|
cargo_nix = pkgs.callPackage ./Cargo.nix {
|
|
nixpkgs = nixpkgs;
|
|
buildRustCrateForPkgs = cargoOverrides;
|
|
};
|
|
|
|
in rec {
|
|
cyberpunk-splash = cargo_nix.workspaceMembers.cyberpunk-splash.build;
|
|
dashboard = cargo_nix.workspaceMembers.dashboard.build;
|
|
file-service = cargo_nix.workspaceMembers.file-service.build;
|
|
fitnesstrax = cargo_nix.workspaceMembers.fitnesstrax.build;
|
|
otg-gtk = cargo_nix.workspaceMembers.otg-gtk.build;
|
|
|
|
all = pkgs.symlinkJoin {
|
|
name = "all";
|
|
paths = [
|
|
cyberpunk-splash
|
|
dashboard
|
|
file-service
|
|
fitnesstrax
|
|
otg-gtk
|
|
];
|
|
};
|
|
|
|
default = all;
|
|
};
|
|
};
|
|
}
|