HaXe: support nekotools boot - add haxelib
svn path=/nixpkgs/trunk/; revision=20674
This commit is contained in:
@@ -37,55 +37,103 @@ let
|
||||
# END
|
||||
}.src;
|
||||
|
||||
src_haxe = {
|
||||
# REGION AUTO UPDATE: { name="haxe"; type="cvs"; cvsRoot = ":pserver:anonymous@cvs.motion-twin.com:/cvsroot"; module = "haxe"; groups = "haxe_group"; }
|
||||
src= sourceFromHead "haxe-F_01-25-35.tar.gz"
|
||||
(fetchurl { url = "http://mawercer.de/~nix/repos/haxe-F_01-25-35.tar.gz"; sha256 = "8e5e5330e2fd7ffbbfe48d40bda03256aefbe30cf1be1d9c9065117b2b179f24"; });
|
||||
# END
|
||||
}.src;
|
||||
|
||||
|
||||
# the HaXe compiler
|
||||
haxe = stdenv.mkDerivation {
|
||||
name = "haxe-cvs";
|
||||
|
||||
buildInputs = [ocaml zlib makeWrapper];
|
||||
|
||||
src = src_haxe;
|
||||
|
||||
inherit zlib;
|
||||
|
||||
buildPhase = ''
|
||||
mkdir -p ocaml/{swflib,extc,extlib-dev,xml-light} neko/libs
|
||||
|
||||
# strange setup. install.ml seems to co the same repo again into haxe directory!
|
||||
tar xfz $src --strip-components=1 -C haxe
|
||||
|
||||
t(){ tar xfz $1 -C $2 --strip-components=2; }
|
||||
t ${src_haxe_swflib} ocaml/swflib
|
||||
t ${src_haxe_extc} ocaml/extc
|
||||
t ${src_haxe_extlib_dev} ocaml/extlib-dev
|
||||
t ${src_haxe_xml_light} ocaml/xml-light
|
||||
t ${src_haxe_neko_include} neko/libs
|
||||
|
||||
sed -e '/download();/d' \
|
||||
-e "s@/usr/lib/@''${zlib}/lib/@g" \
|
||||
doc/install.ml > install.ml
|
||||
|
||||
ocaml install.ml
|
||||
'';
|
||||
|
||||
# probably rpath should be set properly
|
||||
installPhase = ''
|
||||
ensureDir $out/lib/haxe
|
||||
cp -r bin $out/bin
|
||||
wrapProgram "$out/bin/haxe" \
|
||||
--set "LD_LIBRARY_PATH" $zlib/lib \
|
||||
--set HAXE_LIBRARY_PATH "''${HAXE_LIBRARY_PATH}''${HAXE_LIBRARY_PATH:-:}:$out/lib/haxe/std:."
|
||||
cp -r std $out/lib/haxe/
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "programming language targeting JavaScript, Flash, NekVM, PHP, C++";
|
||||
homepage = http://haxe.org;
|
||||
license = ["GPLv2" "BSD2" /*?*/ ]; # -> docs/license.txt
|
||||
maintainers = [args.lib.maintainers.marcweber];
|
||||
platforms = args.lib.platforms.linux;
|
||||
};
|
||||
};
|
||||
|
||||
# build a tool found in std/tools/${name} source directory
|
||||
# the .hxml files contain a recipe to cerate a binary.
|
||||
tool = { name, description }: stdenv.mkDerivation {
|
||||
|
||||
inherit name;
|
||||
|
||||
src = src_haxe;
|
||||
|
||||
buildPhase = ''
|
||||
cd std/tools/${name};
|
||||
haxe *.hxml
|
||||
ensureDir $out/bin
|
||||
mv ${name} $out/bin/
|
||||
'';
|
||||
|
||||
buildInputs = [haxe neko];
|
||||
|
||||
dontStrip=1;
|
||||
|
||||
installPhase=":";
|
||||
|
||||
meta = {
|
||||
inherit description;
|
||||
homepage = http://haxe.org;
|
||||
# license = "?"; TODO
|
||||
maintainers = [args.lib.maintainers.marcweber];
|
||||
platforms = args.lib.platforms.linux;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "haxe-cvs";
|
||||
{
|
||||
|
||||
# REGION AUTO UPDATE: { name="haxe"; type="cvs"; cvsRoot = ":pserver:anonymous@cvs.motion-twin.com:/cvsroot"; module = "haxe"; groups = "haxe_group"; }
|
||||
src= sourceFromHead "haxe-F_01-25-35.tar.gz"
|
||||
(fetchurl { url = "http://mawercer.de/~nix/repos/haxe-F_01-25-35.tar.gz"; sha256 = "8e5e5330e2fd7ffbbfe48d40bda03256aefbe30cf1be1d9c9065117b2b179f24"; });
|
||||
# END
|
||||
inherit haxe;
|
||||
|
||||
buildInputs = [ocaml zlib makeWrapper];
|
||||
|
||||
inherit zlib;
|
||||
|
||||
buildPhase = ''
|
||||
mkdir -p ocaml/{swflib,extc,extlib-dev,xml-light} neko/libs
|
||||
|
||||
# strange setup. install.ml seems to co the same repo again into haxe directory!
|
||||
tar xfz $src --strip-components=1 -C haxe
|
||||
|
||||
t(){ tar xfz $1 -C $2 --strip-components=2; }
|
||||
t ${src_haxe_swflib} ocaml/swflib
|
||||
t ${src_haxe_extc} ocaml/extc
|
||||
t ${src_haxe_extlib_dev} ocaml/extlib-dev
|
||||
t ${src_haxe_xml_light} ocaml/xml-light
|
||||
t ${src_haxe_neko_include} neko/libs
|
||||
|
||||
sed -e '/download();/d' \
|
||||
-e "s@/usr/lib/@''${zlib}/lib/@g" \
|
||||
doc/install.ml > install.ml
|
||||
|
||||
ocaml install.ml
|
||||
'';
|
||||
|
||||
# probably rpath should be set properly
|
||||
installPhase = ''
|
||||
ensureDir $out/lib/haxe
|
||||
cp -r bin $out/bin
|
||||
wrapProgram "$out/bin/haxe" \
|
||||
--set "LD_LIBRARY_PATH" $zlib/lib \
|
||||
--set HAXE_LIBRARY_PATH "''${HAXE_LIBRARY_PATH}''${HAXE_LIBRARY_PATH:-:}:$out/lib/haxe/std:."
|
||||
cp -r std $out/lib/haxe/
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "programming language targeting JavaScript, Flash, NekVM, PHP, C++";
|
||||
homepage = http://haxe.org;
|
||||
license = ["GPLv2" "BSD2" /*?*/ ]; # -> docs/license.txt
|
||||
maintainers = [args.lib.maintainers.marcweber];
|
||||
platforms = args.lib.platforms.linux;
|
||||
haxelib = tool {
|
||||
name = "haxelib";
|
||||
description = "haxelib is a HaXe library management tool similar to easyinstall or ruby gems";
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user