monorepo/flake.nix

124 lines
3.9 KiB
Nix
Raw Normal View History

2022-12-31 17:07:58 +00:00
{
description = "Lumenescent Dreams Tools";
inputs = {
nixpkgs.url = "nixpkgs/nixos-23.11";
unstable.url = "nixpkgs/nixos-unstable";
2023-04-21 02:50:48 +00:00
typeshare.url = "github:1Password/typeshare";
2022-12-31 17:07:58 +00:00
};
2024-01-10 15:34:41 +00:00
outputs = { self, nixpkgs, unstable, typeshare, ... }:
2022-12-31 17:07:58 +00:00
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"; };
cargo_nix = pkgs.callPackage ./Cargo.nix {
nixpkgs = pkgs;
};
l10n-codegen-rust = pkgs.stdenv.mkDerivation {
name = "l10n-codegen-rust";
src = ./.;
installPhase = ''
mkdir -p $out/bin
cp ${cargo_nix.workspaceMembers.l10n.build}/bin/codegen-rust $out/bin/l10n-codegen-rust
'';
};
2022-12-31 17:07:58 +00:00
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
2023-02-06 14:36:02 +00:00
pkgs.gtk4
pkgs.libadwaita
2024-01-25 14:03:17 +00:00
pkgs.librsvg
pkgs.nodejs
2022-12-31 17:07:58 +00:00
pkgs.openssl
pkgs.pipewire
2023-02-06 14:36:02 +00:00
pkgs.pkg-config
pkgs.rustup
pkgs.sqlite
2024-01-10 15:34:41 +00:00
pkgs.cargo-nextest
pkgs.wasm-pack
2023-10-03 17:31:43 +00:00
pkgs.sqlx-cli
pkgs.udev
pkgs.wasm-pack
2023-04-21 02:50:48 +00:00
typeshare.packages."x86_64-linux".default
l10n-codegen-rust
2022-12-31 17:07:58 +00:00
];
LIBCLANG_PATH="${pkgs.llvmPackages.libclang.lib}/lib";
ENV = "dev";
2022-12-31 17:07:58 +00:00
};
2024-01-10 15:34:41 +00:00
packages."x86_64-linux" =
let
pkgs = import nixpkgs { system = "x86_64-linux"; };
gtkNativeInputs = [
pkgs.pkg-config
pkgs.gtk4
pkgs.libadwaita
pkgs.wrapGAppsHook4
2024-01-10 15:34:41 +00:00
];
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; };
2024-02-10 17:28:12 +00:00
fitnesstrax = import ./fitnesstrax/app/override.nix { gtkNativeInputs = gtkNativeInputs; };
kifu-gtk = import ./kifu/gtk/override.nix { gtkNativeInputs = gtkNativeInputs; };
xdg-test = import ./xdg-test/override.nix { wrapGAppsHook4 = pkgs.wrapGAppsHook4; };
2024-01-10 15:34:41 +00:00
};
};
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;
kifu-gtk = cargo_nix.workspaceMembers.kifu-gtk.build;
xdg-test = cargo_nix.workspaceMembers.xdg-test.build;
2024-01-10 15:34:41 +00:00
all = pkgs.symlinkJoin {
name = "all";
paths = [
cyberpunk-splash
dashboard
file-service
fitnesstrax
# kifu-gtk
xdg-test
2024-01-10 15:34:41 +00:00
];
};
default = all;
};
2022-12-31 17:07:58 +00:00
};
}