mirror of
https://github.com/limine-bootloader/limine
synced 2024-11-29 20:03:19 +03:00
39c30996fe
The build method was full of workarounds, plus I do not really see the point in having this upstream given Limine is now downstream in nixpkgs. For everthing else the 'nix develop' environment suffices.
64 lines
1.9 KiB
Nix
64 lines
1.9 KiB
Nix
# 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.
|
|
|
|
{
|
|
description = "Limine";
|
|
|
|
inputs = {
|
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
|
flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs";
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
|
|
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
};
|
|
|
|
outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, flake-parts }:
|
|
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?
|
|
|
|
# gcc toolchain (comes as default, here only for completeness)
|
|
binutils
|
|
gcc
|
|
gnumake
|
|
|
|
# llvm toolchain (with TOOLCHAIN_FOR_TARGET=llvm)
|
|
llvmPackages.bintools
|
|
llvmPackages.clang
|
|
llvmPackages.lld
|
|
|
|
# Nix
|
|
nixpkgs-fmt
|
|
|
|
# Misc
|
|
# typos is not yet frequently updated in the stable channel
|
|
nixpkgs-unstable.legacyPackages.${pkgs.system}.typos
|
|
];
|
|
};
|
|
};
|
|
|
|
# `$ nix fmt`
|
|
formatter = pkgs.nixpkgs-fmt;
|
|
};
|
|
};
|
|
}
|