mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-06 04:53:27 +00:00
7c66fb1ec5
They said they haven't used Nix in a while and is not interested in maintaining cemu-ti (presumably other packages too), so I asked to take over his role. I removed luc65r from the meta.maintainers attribtes, and adopted the packages I wanted to adopt. I chose to adopt the TI graphing calculator-related packages as I am part of Cemetech.
96 lines
2.0 KiB
Nix
96 lines
2.0 KiB
Nix
{
|
|
fetchFromGitHub,
|
|
lib,
|
|
libiconv,
|
|
llvmPackages,
|
|
MacOSX-SDK,
|
|
makeBinaryWrapper,
|
|
nix-update-script,
|
|
Security,
|
|
which,
|
|
}:
|
|
|
|
let
|
|
inherit (llvmPackages) stdenv;
|
|
in
|
|
stdenv.mkDerivation {
|
|
pname = "odin";
|
|
version = "0-unstable-2024-10-12";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "odin-lang";
|
|
repo = "Odin";
|
|
rev = "af9ae4897ad9e526d74489ddd12cfae179639ff3";
|
|
hash = "sha256-ky3jiVk2KfOW4JjXqiCTdnbEu7bnmTVupw2r5fwyB00=";
|
|
};
|
|
|
|
postPatch =
|
|
lib.optionalString stdenv.hostPlatform.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.hostPlatform.isDarwin [
|
|
libiconv
|
|
Security
|
|
];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out/bin
|
|
cp odin $out/bin/odin
|
|
|
|
mkdir -p $out/share
|
|
cp -r {base,core,vendor,shared} $out/share
|
|
|
|
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
|
|
znaniye
|
|
];
|
|
platforms = lib.platforms.unix;
|
|
broken = stdenv.hostPlatform.isMusl;
|
|
};
|
|
}
|