spejsiot/default.nix

40 lines
927 B
Nix

{ pkgs ? import <nixpkgs> {} }:
let
esp = import (pkgs.fetchFromGitHub {
owner = "xvuko";
repo = "esp-nix";
rev = "1a100e3dce4fd72532ef16d3ec60e7eb2d98387a";
sha256 = "1yihw5p1n5s6l9zds9n566iai63zy3zhdlw70735fj504zdqjxv6";
}) {inherit pkgs; };
in
pkgs.stdenvNoCC.mkDerivation {
name = "spejsiot";
phases = ["unpackPhase" "buildPhase" "installPhase"];
src = ./.;
ESP_HOME = esp.esp-open-sdk;
SMING_RELEASE = "1";
buildPhase = ''
cp -r ${esp.sming} $NIX_BUILD_TOP/Sming
chmod +w -R $NIX_BUILD_TOP/Sming
export SMING_HOME=$(readlink -f $NIX_BUILD_TOP/Sming/Sming)
cd base-firmware
echo "const char * BUILD_ID=\"$out\";" > app/ver.c
make
'';
buildInputs = [ pkgs.python3 ];
installPhase = ''
mkdir -p $out
cp -r out/Esp8266/release/firmware $out/firmware
mkdir -p $out/bin/
ln -s ${esp.flash}/bin/flash $out/bin/flash
#make flash V=1
'';
}