{ autoPatchelfHook, gmp, gnutls, hidapi, libftdi1, libusb, libxml2, pixman, python38, readline, cmake, dtc, fetchurl, glib, glibcLocales, lib, libfaketime, nettle, python3, stdenv, unzip, which, xz, ... }: let hosttools.version = "0.9"; in stdenv.mkDerivation rec { pname = "zephyr-sdk"; version = "0.16.1"; src = let getHash = arch: { "linux-x86_64" = "sha256-UTONUapM6iUWZBzg2dwLUbdjd58A3EVkorwN1xPfIsc="; "linux-aarch64" = "sha256-BiuytcR8pW3Sm3+S3X8Hpc4iulE3WdK2lgvGWFMesAw="; "macos-x86_64" = "sha256-sEbHviuQ7qMPH9kHr+DwgCFnAw62NWCxKfJj2aV1Tdo="; "macos-aarch64" = "sha256-Vf/Gtzdv21x7+20zyEYEnmwPitYmL4ZClPxC1AWbGiY="; } .${arch}; getArch = { "x86_64-linux" = "linux-x86_64"; "aarch64-linux" = "linux-aarch64"; "x86_64-darwin" = "macos-x86_64"; "aarch64-darwin" = "macos-aarch64"; } .${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported."); getUrl = arch: "https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${version}/${pname}-${version}_${arch}.tar.xz"; in fetchurl { url = getUrl getArch; sha256 = getHash getArch; }; nativeBuildInputs = [ autoPatchelfHook glib glibcLocales libfaketime python3.pythonForBuild unzip which xz ]; buildInputs = [ cmake dtc gmp gnutls hidapi libftdi1 libusb libxml2 nettle pixman python38 readline ]; postUnpack = '' $sourceRoot/zephyr-sdk-$(uname -m)-hosttools-standalone-${hosttools.version}.sh \ -y -p -d $sourceRoot rm -f $sourceRoot/{setup,zephyr-sdk-$(uname -m)-hosttools-standalone-*}.sh \ $sourceRoot/{version,environment-setup}-$(uname -m)-pokysdk-linux ''; patchPhase = '' patchShebangs . substituteInPlace cmake/zephyr/host-tools.cmake \ --replace "/usr/share" "/share" \ --replace "/sysroots/\*-pokysdk-linux" "" sed '/SYSROOT_DIR/d' cmake/zephyr/target.cmake sed '/CROSS_COMPILE/d' cmake/zephyr/target.cmake ''; dontConfigure = true; dontBuild = true; installPhase = '' runHook preInstall mkdir -p $out/{share,lib} find ./sysroots/$(uname -m)-pokysdk-linux/usr/bin -type l -exec unlink {} \; mv ./sysroots/$(uname -m)-pokysdk-linux/usr/{bin,libexec,share} $out/ mv ./sysroots/$(uname -m)-pokysdk-linux/usr/synopsys/bin/qemu-system-* $out/bin/ mv ./sysroots/$(uname -m)-pokysdk-linux/usr/xilinx/bin/qemu-system-aarch64 \ $out/bin/qemu-system-xilinx-aarch64 mv ./sysroots/$(uname -m)-pokysdk-linux/usr/xilinx/bin/qemu-system-microblazeel \ $out/bin/qemu-system-xilinx-microblazeel mv ./cmake $out mv ./*zephyr* $out mv ./sdk_* $out runHook postInstall ''; setupHook = ./setup-hook.sh; meta = with lib; { description = "Zephyr SDK (Toolchains, Development Tools)"; homepage = "https://github.com/zephyrproject-rtos/sdk-ng/"; license = licenses.asl20; platforms = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"]; }; }