diff options
author | Ralph Amissah <ralph.amissah@gmail.com> | 2023-06-04 18:18:21 -0400 |
---|---|---|
committer | Ralph Amissah <ralph.amissah@gmail.com> | 2023-06-04 19:21:34 -0400 |
commit | 446c0feadf7ca4a3289a5a0c9e0bbe0e74801f12 (patch) | |
tree | 50ce50da1ed20937182fe82fd7b27ff680648dae /nix-overlays/ldc/binary.nix | |
parent | dub nix (diff) |
nix use overlays when convenient
Diffstat (limited to 'nix-overlays/ldc/binary.nix')
-rw-r--r-- | nix-overlays/ldc/binary.nix | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/nix-overlays/ldc/binary.nix b/nix-overlays/ldc/binary.nix new file mode 100644 index 0000000..dd4d51c --- /dev/null +++ b/nix-overlays/ldc/binary.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, libxml2 +, version, hashes }: + +let + inherit (stdenv) hostPlatform; + OS = if hostPlatform.isDarwin then "osx" else hostPlatform.parsed.kernel.name; + ARCH = if hostPlatform.isDarwin && hostPlatform.isAarch64 then "arm64" else hostPlatform.parsed.cpu.name; +in stdenv.mkDerivation { + pname = "ldc-bootstrap"; + inherit version; + + src = fetchurl rec { + name = "ldc2-${version}-${OS}-${ARCH}.tar.xz"; + url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/${name}"; + sha256 = hashes."${OS}-${ARCH}" or (throw "missing bootstrap sha256 for ${OS}-${ARCH}"); + }; + + dontConfigure = true; + dontBuild = true; + + nativeBuildInputs = lib.optionals hostPlatform.isLinux [ + autoPatchelfHook + ] ++ lib.optional hostPlatform.isDarwin fixDarwinDylibNames; + + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ libxml2 stdenv.cc.cc ]; + + propagatedBuildInputs = [ curl tzdata ]; + + installPhase = '' + mkdir -p $out + + mv bin etc import lib LICENSE README $out/ + ''; + + meta = with lib; { + description = "The LLVM-based D Compiler"; + homepage = "https://github.com/ldc-developers/ldc"; + # from https://github.com/ldc-developers/ldc/blob/master/LICENSE + license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ]; + maintainers = with maintainers; [ ThomasMader lionello ]; + platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; + }; +} |