{ lib, buildGoModule, fetchFromGitHub, llvm, clang-unwrapped, lld, avrgcc , avrdude, openocd, gcc-arm-embedded, makeWrapper }: buildGoModule rec { pname = "tinygo"; version = "0.10.0"; src = fetchFromGitHub { owner = "tinygo-org"; repo = "tinygo"; rev = "v${version}"; sha256 = "03di8500dqk25giiajglcdf2gbc0jidsn8qsw2sxmkmnd1np7gyd"; }; modSha256 = "0r3lfi1bj550sf3b7ysz62c2c33f8zfli8208xixj3jadycb6r3z"; enableParallelBuilding = true; subPackages = [ "." ]; buildInputs = [ llvm clang-unwrapped makeWrapper ]; propagatedBuildInputs = [ lld avrgcc avrdude openocd gcc-arm-embedded ]; postInstall = '' mkdir -p $out/share/tinygo cp -a lib src targets $out/share/tinygo wrapProgram $out/bin/tinygo --prefix "TINYGOROOT" : "$out/share/tinygo" ln -sf $out/bin $out/share/tinygo ''; meta = with lib; { homepage = "https://tinygo.org/"; description = "Go compiler for small places"; license = licenses.bsd3; maintainers = with maintainers; [ chiiruno ]; platforms = platforms.all; }; }