monorepo/flake.nix

97 lines
3.1 KiB
Nix

{
description = "Luminescent Dreams Tools";
inputs = {
nixpkgs.url = "nixpkgs/nixos-22.11";
unstable.url = "nixpkgs/nixos-unstable";
pkgs-cargo2nix.url = "github:cargo2nix/cargo2nix";
crane.url = "github:ipetkov/crane";
};
outputs = { self, nixpkgs, unstable, pkgs-cargo2nix, crane, ... }:
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"; };
cargo2nix = pkgs-cargo2nix.packages."x86_64-linux";
in
pkgs.mkShell {
name = "ld-tools-devshell";
buildInputs = [
pkgs.clang
pkgs.entr
pkgs.glade
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.rustup
pkgs.crate2nix
];
LIBCLANG_PATH="${pkgs.llvmPackages.libclang.lib}/lib";
};
packages."x86_64-linux" =
let
pkgs = import nixpkgs { system = "x86_64-linux"; };
craneLib = crane.lib."x86_64-linux";
in rec {
kifu-core-deps = craneLib.buildDepsOnly {
pname = "kifu-core-deps";
version = "0.1.0";
src = craneLib.cleanCargoSource (craneLib.path ./.);
cargoExtraArgs = "-p kifu-core";
};
kifu-core = craneLib.buildPackage {
pname = "kifu-core";
version = "0.1.0";
src = craneLib.cleanCargoSource (craneLib.path ./.);
cargoExtraArgs = "-p kifu-core";
doInstallCargoArtifacts = true;
inherit kifu-core-deps;
};
kifu-gtk-deps = craneLib.buildDepsOnly {
pname = "kifu-gtk-deps";
version = "0.1.0";
src = craneLib.cleanCargoSource (craneLib.path ./.);
nativeBuildInputs = with pkgs; [
pkg-config
glib
gtk4
];
buildInputs = with pkgs; [
pkg-config
];
cargoExtraArgs = "-p kifu-gtk";
inherit kifu-core;
};
kifu-gtk = craneLib.buildPackage {
pname = "kifu-gtk";
version = "0.1.0";
src = craneLib.cleanCargoSource (craneLib.path ./.);
cargoExtraArgs = "-p kifu-gtk";
nativeBuildInputs = with pkgs; [
glib
gtk4
];
buildInputs = with pkgs; [
pkg-config
];
inherit kifu-gtk-deps;
};
};
};
}