xtensa zig flake
This commit is contained in:
40
flake.nix
40
flake.nix
@@ -1,5 +1,5 @@
|
||||
{
|
||||
description = "Zig Master Development Environment";
|
||||
description = "Zig Host + Zig Xtensa (ESP32) Environment";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
@@ -11,18 +11,44 @@
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
zig = zig-overlay.packages.${system}.master;
|
||||
zig_host = zig-overlay.packages.${system}.master;
|
||||
zls = zls-overlay.packages.${system}.zls;
|
||||
|
||||
zig_xtensa = pkgs.stdenvNoCC.mkDerivation {
|
||||
pname = "zig-xtensa";
|
||||
version = "0.15.2";
|
||||
src = pkgs.fetchzip {
|
||||
url = "https://github.com/haivivi/embed-zig/releases/download/espressif-0.15.2/zig-x86_64-linux-gnu-baseline.tar.xz";
|
||||
# Opraveny hash podla hlásenia Nixu
|
||||
hash = "sha256-Wyc36nKM2PqljI4W8LsnEcVtrmchwQDoaUHAYOI0g1I=";
|
||||
stripRoot = false;
|
||||
};
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp -r . $out/
|
||||
# Symlink na binárku vo vnútri vnoreného adresára
|
||||
ln -s $out/zig-x86_64-linux-gnu-baseline/zig $out/bin/zig-xtensa
|
||||
'';
|
||||
};
|
||||
in {
|
||||
devShells.${system}.default = pkgs.mkShell {
|
||||
buildInputs = [
|
||||
zig
|
||||
packages = [
|
||||
zig_host
|
||||
zls
|
||||
zig_xtensa
|
||||
pkgs.esptool
|
||||
pkgs.espflash
|
||||
];
|
||||
shellHook = ''
|
||||
echo "Entering Zig Master Environment"
|
||||
echo "Zig: $(zig version)"
|
||||
echo "ZLS: $(zls --version)"
|
||||
echo ">>> Zig Master (host): $(zig version)"
|
||||
echo ">>> Zig Xtensa (esp32): $(zig-xtensa version 2>/dev/null || echo 'Executable ready')"
|
||||
|
||||
export PATH=$HOME/.rustup/toolchains/esp/xtensa-esp-elf/esp-14.2.0_20240906/xtensa-esp-elf/bin:$PATH
|
||||
|
||||
if command -v xtensa-esp32-elf-gcc >/dev/null; then
|
||||
echo ">>> Xtensa GCC: $(xtensa-esp32-elf-gcc --version | head -n 1)"
|
||||
fi
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user