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
126 lines
3.6 KiB
Nix
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;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|