FRET/flake.nix
2022-11-09 08:50:57 +01:00

66 lines
1.7 KiB
Nix

{
description = "A devShell example";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
rust-overlay.url = "github:oxalica/rust-overlay";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, rust-overlay, flake-utils, ... }:
flake-utils.lib.eachDefaultSystem (system:
let
overlays = [ (import rust-overlay) ];
pkgs = import nixpkgs {
inherit system overlays;
};
myrust = pkgs.rust-bin.selectLatestNightlyWith (toolchain: toolchain.default.override {
extensions = [ "rls" "rust-analysis" "rust-src" "rust-docs" ];
});
in
with pkgs;
rec {
devShell = mkShell.override {stdenv = llvmPackages_14.stdenv;} { # LibAFL needs LLVM
buildInputs = [
# rust-bin.nightly.latest.default
myrust
# für qemu
python3
ninja
pkgconfig
glib
pixman
# für analyse der in-/outputs
xxd
# FreeRTOS
gcc-arm-embedded
# generate bindings from RTOS to Rust
rust-bindgen
# compare libafl edges
packages.edge_compare
# Debugging
ddd
# visualization
graphviz
rstudioWrapper
R
];
shellHook = ''
'';
};
packages = {
edge_compare=rustPlatform.buildRustPackage rec {
pname = "edge_compare";
version = "0.1.0";
src = ./edge_compare;
cargoSha256 = "sha256-47THUU9aKhAwb2Tz8bJWDmVhDokpr+DOiFNZhmsN8Gk=";
};
};
}
);
}