packages/shells/zephyr/default.nix

63 lines
1.2 KiB
Nix

{
lib,
mkShell,
zephyrPackages,
cmake,
ninja,
gnumake,
python3,
toolchains ? with zephyrPackages.toolchains; [ arm-zephyr-eabi ],
enableWest ? false,
zephyrSrc ? zephyrPackages.src,
modules ? [ ],
extraPackages ? [ ],
extraAttrs ? { },
}:
let
zephyr-sdk = zephyrPackages.sdk.override { inherit toolchains; };
in
mkShell (
{
packages =
[
cmake
ninja
gnumake
python3
]
++ (
with python3.pkgs;
[
# requirements-base.txt
pyelftools
pyyaml
pykwalify
canopen
packaging
progress
psutil
pylink-square
pyserial
requests
anytree
intelhex
]
++ lib.optional enableWest python3.pkgs.west
++ extraPackages
);
ZEPHYR_TOOLCHAIN_VARIANT = "zephyr";
ZEPHYR_SDK_INSTALL_DIR = "${zephyr-sdk}";
}
// lib.optionalAttrs (zephyrSrc != null) {
ZEPHYR_BASE = "${zephyrSrc}";
shellHook = ''
PATH="${zephyrSrc}/scripts:$PATH"
'';
}
// lib.optionalAttrs (modules != [ ]) {
ZEPHYR_MODULES = lib.concatStringsSep ";" (map (pkg: pkg.passthru.modulePath) modules);
}
// extraAttrs
)