28 lines
1.2 KiB
Nix
28 lines
1.2 KiB
Nix
let
|
|
pkgs = import (fetchTarball { url = "https://github.com/NixOS/nixpkgs/archive/20.03.tar.gz"; sha256 = "0182ys095dfx02vl2a20j1hz92dx3mfgz2a6fhn31bqlp1wa8hlq"; }) { };
|
|
pyPackages = (python-packages: with python-packages; ([
|
|
solo-python
|
|
pytest
|
|
] ++ (with builtins; map (d: getAttr d python-packages) (filter (d: stringLength d > 0) (pkgs.lib.splitString "\n" (builtins.readFile ./tools/requirements.txt))))));
|
|
python-with-my-packages = pkgs.python3.withPackages pyPackages;
|
|
src = with pkgs.lib; builtins.filterSource (path: type: !(hasSuffix path "hex" || hasSuffix path "sha256" || baseNameOf path == "result")) ./.;
|
|
in
|
|
with pkgs; stdenv.mkDerivation {
|
|
name = "solo";
|
|
outputs = [ "out" ];
|
|
inherit src;
|
|
buildInputs = [ src gnumake gcc gcc-arm-embedded-8 git python-with-my-packages ];
|
|
phases = [ "unpackPhase" "configurePhase" "buildPhase" "installPhase" ];
|
|
installPhase = ''
|
|
mkdir -p $out/firmware $out/standalone/bin
|
|
make
|
|
cp main $out/standalone/bin/
|
|
cd targets/stm32l432
|
|
make cbor
|
|
make build-hacker
|
|
cp *.hex *.sha256 *.elf cubeconfig_stm32l442.ioc $out/firmware/
|
|
ln -s ${src} $out/src
|
|
'';
|
|
keepDebugInfo = true;
|
|
}
|