haxe: 3.4.6 -> 4.2.1
haxe_4_2: init at 4.2.1 haxe_3_4, haxe_3_2 still exist. Co-authored-by: Daniel Firth <dan.firth@homotopic.tech>
This commit is contained in:
parent
dc376c7e75
commit
2fd41fd203
@ -1,20 +1,44 @@
|
|||||||
{ lib, stdenv, fetchgit, coreutils, ocamlPackages, zlib, pcre, neko }:
|
{ lib, stdenv, fetchFromGitHub, coreutils, ocaml-ng, zlib, pcre, neko, mbedtls }:
|
||||||
|
|
||||||
let inherit (ocamlPackages) ocaml camlp4; in
|
|
||||||
|
|
||||||
let
|
let
|
||||||
generic = { version, sha256, prePatch }:
|
ocamlDependencies = version:
|
||||||
|
if lib.versionAtLeast version "4.0"
|
||||||
|
then with ocaml-ng.ocamlPackages; [
|
||||||
|
ocaml
|
||||||
|
findlib
|
||||||
|
sedlex_2
|
||||||
|
xml-light
|
||||||
|
ptmap
|
||||||
|
camlp5
|
||||||
|
sha
|
||||||
|
dune_2
|
||||||
|
luv
|
||||||
|
ocaml_extlib
|
||||||
|
] else with ocaml-ng.ocamlPackages_4_05; [
|
||||||
|
ocaml
|
||||||
|
camlp4
|
||||||
|
];
|
||||||
|
|
||||||
|
defaultPatch = ''
|
||||||
|
substituteInPlace extra/haxelib_src/src/haxelib/client/Main.hx \
|
||||||
|
--replace '"neko"' '"${neko}/bin/neko"'
|
||||||
|
'';
|
||||||
|
|
||||||
|
generic = { sha256, version, prePatch ? defaultPatch }:
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
pname = "haxe";
|
pname = "haxe";
|
||||||
inherit version;
|
inherit version;
|
||||||
|
|
||||||
buildInputs = [ocaml zlib pcre neko camlp4];
|
buildInputs = [ zlib pcre neko ]
|
||||||
|
++ lib.optional (lib.versionAtLeast version "4.1") [ mbedtls ]
|
||||||
|
++ ocamlDependencies version;
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchFromGitHub {
|
||||||
url = "https://github.com/HaxeFoundation/haxe.git";
|
owner = "HaxeFoundation";
|
||||||
inherit sha256;
|
repo = "haxe";
|
||||||
|
rev = version;
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
rev = "refs/tags/${version}";
|
inherit sha256;
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit prePatch;
|
inherit prePatch;
|
||||||
@ -78,7 +102,7 @@ let
|
|||||||
description = "Programming language targeting JavaScript, Flash, NekoVM, PHP, C++";
|
description = "Programming language targeting JavaScript, Flash, NekoVM, PHP, C++";
|
||||||
homepage = "https://haxe.org";
|
homepage = "https://haxe.org";
|
||||||
license = with licenses; [ gpl2 bsd2 /*?*/ ]; # -> docs/license.txt
|
license = with licenses; [ gpl2 bsd2 /*?*/ ]; # -> docs/license.txt
|
||||||
maintainers = [ maintainers.marcweber ];
|
maintainers = [ maintainers.marcweber maintainers.locallycompact ];
|
||||||
platforms = platforms.linux ++ platforms.darwin;
|
platforms = platforms.linux ++ platforms.darwin;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -89,15 +113,20 @@ in {
|
|||||||
sha256 = "1x9ay5a2llq46fww3k07jxx8h1vfpyxb522snc6702a050ki5vz3";
|
sha256 = "1x9ay5a2llq46fww3k07jxx8h1vfpyxb522snc6702a050ki5vz3";
|
||||||
prePatch = ''
|
prePatch = ''
|
||||||
sed -i -e 's|"/usr/lib/haxe/std/";|"'"$out/lib/haxe/std/"'";\n&|g' main.ml
|
sed -i -e 's|"/usr/lib/haxe/std/";|"'"$out/lib/haxe/std/"'";\n&|g' main.ml
|
||||||
sed -i -e 's|"neko"|"${neko}/bin/neko"|g' extra/haxelib_src/src/tools/haxelib/Main.hx
|
substituteInPlace extra/haxelib_src/src/tools/haxelib/Main.hx \
|
||||||
|
--replace '"neko"' '"${neko}/bin/neko"'
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
haxe_3_4 = generic {
|
haxe_3_4 = generic {
|
||||||
version = "3.4.6";
|
version = "3.4.6";
|
||||||
sha256 = "1myc4b8fwp0f9vky17wv45n34a583f5sjvajsc93f5gm1wanp4if";
|
sha256 = "1myc4b8fwp0f9vky17wv45n34a583f5sjvajsc93f5gm1wanp4if";
|
||||||
prePatch = ''
|
prePatch = ''
|
||||||
|
${defaultPatch}
|
||||||
sed -i -re 's!(let +prefix_path += +).*( +in)!\1"'"$out/"'"\2!' src/main.ml
|
sed -i -re 's!(let +prefix_path += +).*( +in)!\1"'"$out/"'"\2!' src/main.ml
|
||||||
sed -i -e 's|"neko"|"${neko}/bin/neko"|g' extra/haxelib_src/src/haxelib/client/Main.hx
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
haxe_4_2 = generic {
|
||||||
|
version = "4.2.1";
|
||||||
|
sha256 = "sha256-0j6M21dh8DB1gC/bPYNJrVuDbJyqQbP+61ItO5RBUcA=";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -10399,10 +10399,13 @@ in
|
|||||||
graphviz = graphviz-nox;
|
graphviz = graphviz-nox;
|
||||||
});
|
});
|
||||||
|
|
||||||
inherit (callPackage ../development/compilers/haxe {
|
inherit (callPackage ../development/compilers/haxe { })
|
||||||
ocamlPackages = ocaml-ng.ocamlPackages_4_05;
|
haxe_4_2
|
||||||
}) haxe_3_2 haxe_3_4;
|
haxe_3_4
|
||||||
haxe = haxe_3_4;
|
haxe_3_2
|
||||||
|
;
|
||||||
|
|
||||||
|
haxe = haxe_4_2;
|
||||||
haxePackages = recurseIntoAttrs (callPackage ./haxe-packages.nix { });
|
haxePackages = recurseIntoAttrs (callPackage ./haxe-packages.nix { });
|
||||||
inherit (haxePackages) hxcpp;
|
inherit (haxePackages) hxcpp;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user