packages/shells/zephyr/default.nix

35 lines
1 KiB
Nix

{ lib, mkShell, zephyr, cmake, ninja, gnumake, python3
, toolchains ? with zephyr.toolchains; [ arm-zephyr-eabi ], enableWest ? false
, zephyrSrc ? zephyr.src, modules ? [ ], extraPackages ? [ ], extraAttrs ? { }
}:
let zephyr-sdk = zephyr.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)