Files
sword_rs/flake.nix
T
Greg Hellings 8efb783ab8 Version 0.1.1 updates
Update the code version to 0.1.1
No actual code changes, just updating pins and other stuff
Updating nix pins and versions
Attempting to fix Gitlab CI
2025-06-29 22:33:35 -05:00

126 lines
3.6 KiB
Nix

# github.com/brianmcgee has lots of great ideas for going above and beyond for this
{
description = "Greg's homepage";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
flake-root.url = "github:srid/flake-root";
hooks = {
url = "github:cachix/git-hooks.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
naersk = {
url = "github:nix-community/naersk";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{ flake-parts, ... }@inputs:
flake-parts.lib.mkFlake { inherit inputs; } {
imports = [
inputs.flake-root.flakeModule
];
flake = {
# Universal things
overlays.default = _final: _prev: { };
};
systems = [
"x86_64-linux"
"aarch64-linux"
"aarch64-darwin"
];
perSystem =
{ pkgs, self', ... }@inputs':
let
naersk-lib = pkgs.callPackage inputs.naersk { };
in
{
_module.args.pkgs = import inputs.nixpkgs {
inherit (inputs') system;
overlays = [ ];
};
devShells.default = pkgs.mkShell rec {
# These will just be available
packages = with pkgs; [
cargo
clippy
libgcc
lldb
rustc.llvm
rustc
rustfmt
pre-commit
sword
];
buildInputs = self'.checks.pre-commit.enabledPackages;
nativeBuildInputs = with pkgs; [
pkg-config
];
RUST_SRC_PATH = pkgs.rustPlatform.rustLibSrc;
inherit (self'.checks.pre-commit) shellHook;
# This is also used when building with iced
# let
# lib_path = builtins.foldl' (a: b: "${a}:${b}/lib") "${pkgs.vulkan-loader}/lib" packages;
# in
# ''
# export LD_LIBRARY_PATH="${lib_path}"
# ''
};
checks = {
pre-commit = inputs.hooks.lib.${inputs'.system}.run {
src = ./.;
excludes = [ ".*\\.txt" ];
settings.rust = {
check.cargoDeps = pkgs.rustPlatform.importCargoLock { lockFile = ./Cargo.lock; };
cargoManifestPath = "./Cargo.toml";
};
hooks = {
check-added-large-files.enable = true;
check-case-conflicts.enable = true;
check-merge-conflicts.enable = true;
check-symlinks.enable = true;
deadnix.enable = true;
end-of-file-fixer.enable = true;
fix-byte-order-marker.enable = true;
mixed-line-endings.enable = true;
nixfmt-rfc-style.enable = true;
trim-trailing-whitespace.enable = true;
# Rust hooks
cargo-check.enable = true;
clippy = {
enable = true;
extraPackages = [
pkgs.pkg-config
pkgs.sword
];
};
rustfmt.enable = true;
};
};
};
# This is not special, this is just flakes
packages = rec {
default = rustpkg;
rustpkg = naersk-lib.buildPackage {
src = ./.;
buildInputs = with pkgs; [
sword
];
nativeBuildInputs = with pkgs; [
pkg-config
];
doCheck = true;
};
};
};
};
}