110 lines
2.8 KiB
Nix
110 lines
2.8 KiB
Nix
{
|
|
inputs = {
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
#esp-dev.url = "github:mirrexagon/nixpkgs-esp-dev";
|
|
esp-dev.url = "github:quentinmit/nixpkgs-esp-dev/tools";
|
|
};
|
|
|
|
outputs =
|
|
{
|
|
self,
|
|
flake-utils,
|
|
nixpkgs,
|
|
esp-dev,
|
|
...
|
|
}:
|
|
flake-utils.lib.eachDefaultSystem (
|
|
system:
|
|
let
|
|
overlays = [ esp-dev.overlays.default ];
|
|
|
|
pkgs = (import nixpkgs) {
|
|
inherit system overlays;
|
|
};
|
|
|
|
in
|
|
{
|
|
devShells = {
|
|
default = pkgs.mkShell {
|
|
name = "devShell";
|
|
PROJ_PATH = ".";
|
|
IDF_PATH = self.packages.${system}.esp-idf-full;
|
|
nativeBuildInputs = [
|
|
self.packages.${system}.esp-idf-full
|
|
pkgs.cmake
|
|
pkgs.pkg-config
|
|
pkgs.libopus
|
|
pkgs.opusfile
|
|
pkgs.ninja
|
|
];
|
|
};
|
|
esp-full = esp-dev.devShells.${system}.esp-idf-full;
|
|
};
|
|
packages = rec {
|
|
default = tangara-fw;
|
|
|
|
esp-idf-full =
|
|
# pkgs.esp-idf-full;
|
|
(
|
|
(pkgs.esp-idf-full.override {
|
|
toolsToInclude = [
|
|
"xtensa-esp-elf-gdb"
|
|
"riscv32-esp-elf-gdb"
|
|
"xtensa-esp-elf"
|
|
"esp-clang"
|
|
"riscv32-esp-elf"
|
|
"esp32ulp-elf"
|
|
"openocd-esp32"
|
|
"esp-rom-elfs"
|
|
];
|
|
})
|
|
// {
|
|
postInstall = ''
|
|
# make esp-idf cmake git version detection happy
|
|
cd $out
|
|
git init .
|
|
git config user.email "nixbld@localhost"
|
|
git config user.name "nixbld"
|
|
git commit --date="1970-01-01 00:00:00" --allow-empty -m "make idf happy"
|
|
'';
|
|
}
|
|
);
|
|
tangara-fw = pkgs.stdenv.mkDerivation (final: {
|
|
name = "tangara";
|
|
pname = final.name;
|
|
|
|
version = "uhh";
|
|
|
|
src = ./.;
|
|
|
|
PROJ_PATH = ./.;
|
|
IDF_COMPONENT_MANAGER = 0;
|
|
|
|
nativeBuildInputs = [
|
|
pkgs.cmake
|
|
pkgs.pkg-config
|
|
pkgs.libopus
|
|
pkgs.opusfile
|
|
pkgs.ninja
|
|
esp-idf-full
|
|
];
|
|
|
|
configurePhase = "mkdir $out;"; # " cp -r ${final.src} $out";
|
|
|
|
buildPhase = ''
|
|
cp -r ${final.src}/* ${final.src}/.* .
|
|
cp -r ${esp-idf-full} esp
|
|
export IDF_PATH=esp
|
|
. "$IDF_PATH/export.sh" || echo failure is okay
|
|
idf.py build
|
|
'';
|
|
|
|
installPhase = ''
|
|
cp -r . $out
|
|
'';
|
|
});
|
|
};
|
|
}
|
|
);
|
|
}
|