Compare commits
5 commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 57ded93e2a | |||
| 3934181769 | |||
| 34f240e539 | |||
| 6e05f96131 | |||
| 58d972c3f4 |
2 changed files with 99 additions and 45 deletions
16
flake.lock
generated
16
flake.lock
generated
|
|
@ -1,5 +1,20 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"crane": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770419512,
|
||||||
|
"narHash": "sha256-o8Vcdz6B6bkiGUYkZqFwH3Pv1JwZyXht3dMtS7RchIo=",
|
||||||
|
"owner": "ipetkov",
|
||||||
|
"repo": "crane",
|
||||||
|
"rev": "2510f2cbc3ccd237f700bb213756a8f35c32d8d7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ipetkov",
|
||||||
|
"repo": "crane",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"fenix": {
|
"fenix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
|
|
@ -128,6 +143,7 @@
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"crane": "crane",
|
||||||
"fenix": "fenix",
|
"fenix": "fenix",
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"naersk": "naersk",
|
"naersk": "naersk",
|
||||||
|
|
|
||||||
128
flake.nix
128
flake.nix
|
|
@ -6,6 +6,7 @@
|
||||||
naersk.url = "github:nix-community/naersk";
|
naersk.url = "github:nix-community/naersk";
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
fenix.url = "github:nix-community/fenix";
|
fenix.url = "github:nix-community/fenix";
|
||||||
|
crane.url = "github:ipetkov/crane";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
|
|
@ -19,7 +20,21 @@
|
||||||
overlays = [ fenix.overlays.default ];
|
overlays = [ fenix.overlays.default ];
|
||||||
# overlays = [cargo2nix.overlays.default];
|
# overlays = [cargo2nix.overlays.default];
|
||||||
};
|
};
|
||||||
|
inherit (pkgs) lib;
|
||||||
|
craneLib = (crane.mkLib pkgs).overrideToolchain fenix.packages.${system}.stable.toolchain;
|
||||||
naersk' = pkgs.callPackage naersk { };
|
naersk' = pkgs.callPackage naersk { };
|
||||||
|
|
||||||
|
unfilteredRoot = ./.; # The original, unfiltered source
|
||||||
|
src = lib.fileset.toSource {
|
||||||
|
root = unfilteredRoot;
|
||||||
|
fileset = lib.fileset.unions [
|
||||||
|
# Default files from crane (Rust and cargo files)
|
||||||
|
(craneLib.fileset.commonCargoSources unfilteredRoot)
|
||||||
|
# Include all the .sql migrations as well
|
||||||
|
./migrations
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
nbi = with pkgs; [
|
nbi = with pkgs; [
|
||||||
# Rust tools
|
# Rust tools
|
||||||
alejandra
|
alejandra
|
||||||
|
|
@ -35,7 +50,6 @@
|
||||||
vulkan-loader
|
vulkan-loader
|
||||||
wayland
|
wayland
|
||||||
wayland-protocols
|
wayland-protocols
|
||||||
libxkbcommon
|
|
||||||
pkg-config
|
pkg-config
|
||||||
sccache
|
sccache
|
||||||
];
|
];
|
||||||
|
|
@ -49,13 +63,12 @@
|
||||||
cmake
|
cmake
|
||||||
clang
|
clang
|
||||||
libclang
|
libclang
|
||||||
|
libxkbcommon
|
||||||
makeWrapper
|
makeWrapper
|
||||||
vulkan-headers
|
vulkan-headers
|
||||||
vulkan-loader
|
vulkan-loader
|
||||||
vulkan-tools
|
vulkan-tools
|
||||||
libGL
|
libGL
|
||||||
cargo-flamegraph
|
|
||||||
bacon
|
|
||||||
|
|
||||||
fontconfig
|
fontconfig
|
||||||
glib
|
glib
|
||||||
|
|
@ -72,53 +85,78 @@
|
||||||
mupdf
|
mupdf
|
||||||
# yt-dlp
|
# yt-dlp
|
||||||
|
|
||||||
just
|
] ++ pkgs.lib.optionals pkgs.stdenv.isDarwin [
|
||||||
sqlx-cli
|
# Additional darwin specific inputs can be set here
|
||||||
cargo-watch
|
pkgs.libiconv
|
||||||
];
|
];
|
||||||
|
|
||||||
|
ldLibPaths = "$LD_LIBRARY_PATH:${
|
||||||
|
with pkgs;
|
||||||
|
lib.makeLibraryPath [
|
||||||
|
alsa-lib
|
||||||
|
gst_all_1.gst-libav
|
||||||
|
gst_all_1.gstreamer
|
||||||
|
gst_all_1.gst-plugins-bad
|
||||||
|
gst_all_1.gst-plugins-good
|
||||||
|
gst_all_1.gst-plugins-ugly
|
||||||
|
gst_all_1.gst-plugins-base
|
||||||
|
gst_all_1.gst-plugins-rs
|
||||||
|
gst_all_1.gst-vaapi
|
||||||
|
glib
|
||||||
|
fontconfig
|
||||||
|
vulkan-loader
|
||||||
|
wayland
|
||||||
|
wayland-protocols
|
||||||
|
libxkbcommon
|
||||||
|
mupdf
|
||||||
|
libclang
|
||||||
|
]
|
||||||
|
}";
|
||||||
|
|
||||||
|
commonArgs = {
|
||||||
|
inherit src;
|
||||||
|
strictDeps = true;
|
||||||
|
nativeBuildInputs = nbi;
|
||||||
|
buildInputs = bi;
|
||||||
|
LD_LIBRARY_PATH = ldLibPaths;
|
||||||
|
};
|
||||||
|
|
||||||
|
cargoArtifacts = craneLib.buildDepsOnly commonArgs;
|
||||||
|
|
||||||
|
lumina = craneLib.buildPackage (
|
||||||
|
commonArgs
|
||||||
|
// {
|
||||||
|
inherit cargoArtifacts;
|
||||||
|
|
||||||
|
nativeBuildInputs = (commonArgs.nativeBuildInputs or [ ]) ++ [
|
||||||
|
pkgs.sqlx-cli
|
||||||
|
];
|
||||||
|
|
||||||
|
preBuild = ''
|
||||||
|
export DATABASE_URL=sqlite:./db.sqlite3
|
||||||
|
sqlx database create
|
||||||
|
sqlx migrate run
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
in
|
in
|
||||||
rec {
|
rec {
|
||||||
devShell =
|
checks = {
|
||||||
pkgs.mkShell.override
|
inherit lumina;
|
||||||
{
|
|
||||||
# stdenv = pkgs.stdenvAdapters.useMoldLinker pkgs.clangStdenv;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
nativeBuildInputs = nbi;
|
|
||||||
buildInputs = bi;
|
|
||||||
LD_LIBRARY_PATH = "$LD_LIBRARY_PATH:${
|
|
||||||
with pkgs;
|
|
||||||
pkgs.lib.makeLibraryPath [
|
|
||||||
pkgs.alsa-lib
|
|
||||||
pkgs.gst_all_1.gst-libav
|
|
||||||
pkgs.gst_all_1.gstreamer
|
|
||||||
pkgs.gst_all_1.gst-plugins-bad
|
|
||||||
pkgs.gst_all_1.gst-plugins-good
|
|
||||||
pkgs.gst_all_1.gst-plugins-ugly
|
|
||||||
pkgs.gst_all_1.gst-plugins-base
|
|
||||||
pkgs.gst_all_1.gst-plugins-rs
|
|
||||||
pkgs.gst_all_1.gst-vaapi
|
|
||||||
pkgs.glib
|
|
||||||
pkgs.fontconfig
|
|
||||||
pkgs.vulkan-loader
|
|
||||||
pkgs.wayland
|
|
||||||
pkgs.wayland-protocols
|
|
||||||
pkgs.libxkbcommon
|
|
||||||
pkgs.mupdf
|
|
||||||
pkgs.libclang
|
|
||||||
]
|
|
||||||
}";
|
|
||||||
# LIBCLANG_PATH = "${pkgs.clang}";
|
|
||||||
DATABASE_URL = "sqlite:///home/chris/.local/share/lumina/library-db.sqlite3";
|
|
||||||
};
|
|
||||||
defaultPackage = naersk'.buildPackage {
|
|
||||||
src = ./.;
|
|
||||||
};
|
};
|
||||||
packages = {
|
devShells.default = craneLib.devShell {
|
||||||
default = naersk'.buildPackage {
|
checks = self.checks.${system};
|
||||||
src = ./.;
|
inputsFrom = [ lumina ];
|
||||||
};
|
packages = with pkgs; [
|
||||||
|
sqlx-cli
|
||||||
|
cargo-flamegraph
|
||||||
|
bacon
|
||||||
|
just
|
||||||
|
cargo-watch
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
packages.default = lumina;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue