63 lines
1.2 KiB
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
|
|
)
|