walnux/flake.nix
Côme VINCENT bd90132cd6 tools/nix: split flake into root and Documentation
Root flake now only contains dependencies needed for building the NuttX
firmware. The Documentation flake contains the dependencies needed for
running `make html`.

Updated the documentation accordingly.

Signed-off-by: Côme VINCENT <44554692+comejv@users.noreply.github.com>
2025-08-12 20:17:23 +08:00

64 lines
1.4 KiB
Nix

{
description = "NuttX : devShell flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
documentation.url = "path:./Documentation";
};
outputs =
{
self,
nixpkgs,
flake-utils,
documentation,
...
}:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs { inherit system; };
in
{
# Default devShell
devShells.default = pkgs.mkShell {
buildInputs = [
# Build tools
pkgs.cmake
pkgs.ninja
pkgs.gnumake
pkgs.clang-tools
# ARM toolchain
pkgs.gcc-arm-embedded
# NuttX dependencies
pkgs.automake
pkgs.bison
pkgs.flex
pkgs.genromfs
pkgs.gettext
pkgs.gperf
pkgs.kconfig-frontends
pkgs.libelf
pkgs.expat.dev
pkgs.gmp.dev
pkgs.isl
pkgs.libmpc
pkgs.mpfr.dev
pkgs.ncurses.dev
pkgs.zlib
pkgs.python313Packages.kconfiglib
];
shellHook = ''
export CMAKE_EXPORT_COMPILE_COMMANDS=ON
echo "Welcome to NuttX devShell"
'';
};
# Documentation devShell
devShells.docs = documentation.devShells.${system}.default;
}
);
}