diff --git a/pkgs/by-name/od/odin/package.nix b/pkgs/by-name/od/odin/package.nix new file mode 100644 index 000000000000..0cf308987bbd --- /dev/null +++ b/pkgs/by-name/od/odin/package.nix @@ -0,0 +1,98 @@ +{ + fetchFromGitHub, + lib, + libiconv, + llvmPackages, + MacOSX-SDK, + makeBinaryWrapper, + nix-update-script, + Security, + which, +}: + +let + inherit (llvmPackages) stdenv; +in +stdenv.mkDerivation rec { + pname = "odin"; + version = "dev-2024-07"; + + src = fetchFromGitHub { + owner = "odin-lang"; + repo = "Odin"; + rev = version; + hash = "sha256-FeiVTLwgP0x1EZqqiYkGbKALhZWC4xE6a/3PPcEElAc="; + }; + + postPatch = + lib.optionalString stdenv.isDarwin '' + substituteInPlace src/linker.cpp \ + --replace-fail '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk' ${MacOSX-SDK} + '' + + '' + substituteInPlace build_odin.sh \ + --replace-fail '-framework System' '-lSystem' + patchShebangs build_odin.sh + ''; + + LLVM_CONFIG = "${llvmPackages.llvm.dev}/bin/llvm-config"; + + dontConfigure = true; + + buildFlags = [ "release" ]; + + nativeBuildInputs = [ + makeBinaryWrapper + which + ]; + + buildInputs = lib.optionals stdenv.isDarwin [ + libiconv + Security + ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + cp odin $out/bin/odin + + mkdir -p $out/share + cp -r base $out/share/base + cp -r core $out/share/core + cp -r vendor $out/share/vendor + + wrapProgram $out/bin/odin \ + --prefix PATH : ${ + lib.makeBinPath ( + with llvmPackages; + [ + bintools + llvm + clang + lld + ] + ) + } \ + --set-default ODIN_ROOT $out/share + + runHook postInstall + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Fast, concise, readable, pragmatic and open sourced programming language"; + downloadPage = "https://github.com/odin-lang/Odin"; + homepage = "https://odin-lang.org/"; + license = lib.licenses.bsd3; + mainProgram = "odin"; + maintainers = with lib.maintainers; [ + astavie + luc65r + znaniye + ]; + platforms = lib.platforms.unix; + broken = stdenv.hostPlatform.isMusl; + }; +} diff --git a/pkgs/development/compilers/odin/default.nix b/pkgs/development/compilers/odin/default.nix deleted file mode 100644 index d8a608508c55..000000000000 --- a/pkgs/development/compilers/odin/default.nix +++ /dev/null @@ -1,81 +0,0 @@ -{ lib -, fetchFromGitHub -, llvmPackages -, makeBinaryWrapper -, libiconv -, MacOSX-SDK -, Security -, which -}: - -let - inherit (llvmPackages) stdenv; -in stdenv.mkDerivation rec { - pname = "odin"; - version = "dev-2024-06"; - - src = fetchFromGitHub { - owner = "odin-lang"; - repo = "Odin"; - rev = version; - hash = "sha256-Ba+244L855y+XzLcaf1fgQhHVDv2Q77GPapRAYmCQfg="; - }; - - nativeBuildInputs = [ - makeBinaryWrapper which - ]; - - buildInputs = lib.optionals stdenv.isDarwin [ - libiconv - Security - ]; - - LLVM_CONFIG = "${llvmPackages.llvm.dev}/bin/llvm-config"; - - postPatch = lib.optionalString stdenv.isDarwin '' - substituteInPlace src/linker.cpp \ - --replace-fail '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk' ${MacOSX-SDK} - '' + '' - substituteInPlace build_odin.sh \ - --replace-fail '-framework System' '-lSystem' - patchShebangs build_odin.sh - ''; - - dontConfigure = true; - - buildFlags = [ - "release" - ]; - - installPhase = '' - runHook preInstall - - mkdir -p $out/bin - cp odin $out/bin/odin - - mkdir -p $out/share - cp -r base $out/share/base - cp -r core $out/share/core - cp -r vendor $out/share/vendor - - wrapProgram $out/bin/odin \ - --prefix PATH : ${lib.makeBinPath (with llvmPackages; [ - bintools - llvm - clang - lld - ])} \ - --set-default ODIN_ROOT $out/share - - runHook postInstall - ''; - - meta = with lib; { - description = "Fast, concise, readable, pragmatic and open sourced programming language"; - mainProgram = "odin"; - homepage = "https://odin-lang.org/"; - license = licenses.bsd3; - maintainers = with maintainers; [ luc65r astavie znaniye ]; - platforms = platforms.x86_64 ++ [ "aarch64-darwin" ]; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 91ad123886da..703bdaf0af14 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -27445,7 +27445,7 @@ with pkgs; octomap = callPackage ../development/libraries/octomap { }; - odin = callPackage ../development/compilers/odin { + odin = callPackage ../by-name/od/odin/package.nix { inherit (pkgs.darwin.apple_sdk_11_0) MacOSX-SDK; inherit (pkgs.darwin.apple_sdk_11_0.frameworks) Security; llvmPackages = llvmPackages_18;