2024-03-19 14:48:53 +01:00
|
|
|
# This flake is supposed to enable a convenient development environment.
|
|
|
|
# It is independent of any packaging in nixpkgs.
|
|
|
|
#
|
|
|
|
# See https://github.com/limine-bootloader/limine/issues/330 for more details
|
|
|
|
# regarding the packaging in nixpkgs.
|
|
|
|
|
|
|
|
{
|
2024-01-31 16:43:26 +01:00
|
|
|
description = "Limine";
|
2024-03-19 14:48:53 +01:00
|
|
|
|
|
|
|
inputs = {
|
|
|
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
|
|
|
flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs";
|
|
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
|
2024-04-04 10:24:53 +02:00
|
|
|
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
2024-03-19 14:48:53 +01:00
|
|
|
};
|
|
|
|
|
2024-04-04 10:24:53 +02:00
|
|
|
outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, flake-parts }:
|
2024-03-19 14:48:53 +01:00
|
|
|
flake-parts.lib.mkFlake { inherit inputs; } {
|
|
|
|
flake = { };
|
|
|
|
# Don't artificially limit users at this point. If a build fails, they
|
|
|
|
# will notice it soon enough.
|
|
|
|
systems = nixpkgs.lib.systems.flakeExposed;
|
|
|
|
perSystem = { config, pkgs, ... }:
|
|
|
|
{
|
|
|
|
devShells = {
|
|
|
|
default = pkgs.mkShell {
|
|
|
|
packages = with pkgs; [
|
|
|
|
# Dependencies for ./bootstrap
|
|
|
|
autoconf
|
|
|
|
automake
|
|
|
|
|
|
|
|
# General build dependencies
|
|
|
|
cacert
|
|
|
|
git
|
|
|
|
mtools
|
|
|
|
nasm
|
|
|
|
pkg-config # Checked for by ./configure but seems unused?
|
|
|
|
|
2024-04-04 10:09:53 +02:00
|
|
|
# gcc toolchain (comes as default, here only for completeness)
|
2024-03-19 14:48:53 +01:00
|
|
|
binutils
|
|
|
|
gcc
|
2024-01-31 16:43:26 +01:00
|
|
|
gnumake
|
2024-03-19 14:48:53 +01:00
|
|
|
|
|
|
|
# llvm toolchain (with TOOLCHAIN_FOR_TARGET=llvm)
|
|
|
|
llvmPackages.bintools
|
|
|
|
llvmPackages.clang
|
|
|
|
llvmPackages.lld
|
|
|
|
|
|
|
|
# Nix
|
|
|
|
nixpkgs-fmt
|
2024-04-04 10:24:53 +02:00
|
|
|
|
|
|
|
# Misc
|
|
|
|
# typos is not yet frequently updated in the stable channel
|
|
|
|
nixpkgs-unstable.legacyPackages.${pkgs.system}.typos
|
2024-03-19 14:48:53 +01:00
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
# `$ nix fmt`
|
|
|
|
formatter = pkgs.nixpkgs-fmt;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|