diff options
Diffstat (limited to 'pkgs/development/compilers/tinygo/default.nix')
-rw-r--r-- | pkgs/development/compilers/tinygo/default.nix | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/pkgs/development/compilers/tinygo/default.nix b/pkgs/development/compilers/tinygo/default.nix deleted file mode 100644 index 36412b7993a9..000000000000 --- a/pkgs/development/compilers/tinygo/default.nix +++ /dev/null @@ -1,128 +0,0 @@ -{ stdenv -, lib -, buildPackages -, buildGoModule -, fetchFromGitHub -, makeWrapper -, llvmPackages -, go -, xar -, binaryen -, avrdude -, gdb -, openocd -, runCommand -, tinygoTests ? [ "smoketest" ] -}: - -let - llvmMajor = lib.versions.major llvm.version; - inherit (llvmPackages) llvm clang compiler-rt lld; - - # only doing this because only on darwin placing clang.cc in nativeBuildInputs - # doesn't build - bootstrapTools = runCommand "tinygo-bootstrap-tools" { } '' - mkdir -p $out - ln -s ${lib.getBin clang.cc}/bin/clang $out/clang-${llvmMajor} - ''; -in - -buildGoModule rec { - pname = "tinygo"; - version = "0.31.2"; - - src = fetchFromGitHub { - owner = "tinygo-org"; - repo = "tinygo"; - rev = "v${version}"; - sha256 = "sha256-e0zXxIdAtJZXJdP/S6lHRnPm5Rsf638Fhox8XcqOWrk="; - fetchSubmodules = true; - }; - - vendorHash = "sha256-HZiyAgsTEBQv+Qp0T9RXTV1lkxvIGh7Q45rd45cfvjo="; - - patches = [ - ./0001-GNUmakefile.patch - ]; - - nativeCheckInputs = [ binaryen ]; - nativeBuildInputs = [ makeWrapper lld ]; - buildInputs = [ llvm clang.cc ] - ++ lib.optionals stdenv.isDarwin [ xar ]; - - doCheck = (stdenv.buildPlatform.canExecute stdenv.hostPlatform); - inherit tinygoTests; - - allowGoReference = true; - ldflags = [ - "-X github.com/tinygo-org/tinygo/goenv.TINYGOROOT=${placeholder "out"}/share/tinygo" - "-X github.com/tinygo-org/tinygo/goenv.clangResourceDir=${clang.cc.lib}/lib/clang/${llvmMajor}" - ]; - subPackages = [ "." ]; - - # Output contains static libraries for different arm cpus - # and stripping could mess up these so only strip the compiler - stripDebugList = [ "bin" ]; - - postPatch = '' - # Borrow compiler-rt builtins from our source - # See https://github.com/tinygo-org/tinygo/pull/2471 - mkdir -p lib/compiler-rt-builtins - cp -a ${compiler-rt.src}/compiler-rt/lib/builtins/* lib/compiler-rt-builtins/ - - substituteInPlace GNUmakefile \ - --replace "build/release/tinygo/bin" "$out/bin" \ - --replace "build/release/" "$out/share/" - ''; - - preBuild = '' - export PATH=${bootstrapTools}:$PATH - export HOME=$TMPDIR - - ldflags=("''$ldflags[@]/\"-buildid=\"") - ''; - - postBuild = '' - # Move binary - mkdir -p build - mv $GOPATH/bin/tinygo build/tinygo - - # Build our own custom wasi-libc. - # This is necessary because we modify the build a bit for our needs (disable - # heap, enable debug symbols, etc). - make wasi-libc \ - CLANG="${lib.getBin clang.cc}/bin/clang -resource-dir ${clang.cc.lib}/lib/clang/${llvmMajor}" \ - LLVM_AR=${lib.getBin llvm}/bin/llvm-ar \ - LLVM_NM=${lib.getBin llvm}/bin/llvm-nm - - make gen-device -j $NIX_BUILD_CORES - - export TINYGOROOT=$(pwd) - ''; - - checkPhase = lib.optionalString (tinygoTests != [ ] && tinygoTests != null) '' - make ''${tinygoTests[@]} TINYGO="$(pwd)/build/tinygo" MD5SUM=md5sum XTENSA=0 - ''; - - # GDB upstream does not support ARM darwin - runtimeDeps = [ go clang.cc lld avrdude openocd binaryen ] - ++ lib.optionals (!(stdenv.isDarwin && stdenv.isAarch64)) [ gdb ]; - - installPhase = '' - runHook preInstall - - make build/release - - wrapProgram $out/bin/tinygo \ - --prefix PATH : ${lib.makeBinPath runtimeDeps } - - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://tinygo.org/"; - description = "Go compiler for small places"; - license = licenses.bsd3; - maintainers = with maintainers; [ Madouura muscaln ]; - }; -} |