58 lines
1.6 KiB
Nix
58 lines
1.6 KiB
Nix
{
|
|
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
|
|
outputs = {
|
|
self,
|
|
nixpkgs,
|
|
}: let
|
|
supportedSystems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"];
|
|
forEachSupportedSystem = f:
|
|
nixpkgs.lib.genAttrs supportedSystems (system:
|
|
f {
|
|
pkgs = import nixpkgs {
|
|
inherit system;
|
|
config.allowUnfree = true;
|
|
config.segger-jlink.acceptLicense = true;
|
|
config.permittedInsecurePackages = [
|
|
"segger-jlink-qt4-796s"
|
|
];
|
|
};
|
|
});
|
|
in {
|
|
devShells = forEachSupportedSystem ({pkgs}: {
|
|
default =
|
|
pkgs.mkShell.override
|
|
{
|
|
# Override stdenv in order to change compiler:
|
|
# stdenv = pkgs.clangStdenv;
|
|
# stdenv = pkgs.pkgsCross.arm-embedded.stdenv;
|
|
}
|
|
{
|
|
packages = with pkgs;
|
|
[
|
|
# pkgsCross.arm-embedded.stdenv.cc
|
|
# pkgsCross.arm-embedded.buildPackages.gdb
|
|
gcc-arm-embedded-13 # replaces above packages since gcc compiles libc in arm, not thumb2
|
|
glibc_multi
|
|
segger-jlink
|
|
killall
|
|
zip
|
|
clang-tools
|
|
cmake
|
|
codespell
|
|
conan
|
|
cppcheck
|
|
python312
|
|
python312Packages.pyserial
|
|
python312Packages.compiledb # generates compile_commands.json for Makefiles
|
|
python312Packages.ropper
|
|
]
|
|
++ (
|
|
if system == "aarch64-darwin"
|
|
then []
|
|
else [gdb]
|
|
);
|
|
};
|
|
});
|
|
};
|
|
}
|