aboutsummaryrefslogtreecommitdiff
path: root/pkgs/development/em-modules
diff options
context:
space:
mode:
authorJoachim Schiele <js@lastlog.de>2016-06-13 00:34:50 +0200
committerJoachim Schiele <js@lastlog.de>2016-07-04 12:02:37 +0200
commitc514693eb62539545745b71cb0ac52733a9966ad (patch)
tree1824702a466c7e9d8eefb493bc1f7094b1cd4e2c /pkgs/development/em-modules
parentc90242e657d46704d2d1b581693ffbe1aac205e3 (diff)
adds support to build emscripten packages using nix:
example usage: - nix-env -I nixpkgs=../somewhere/nixpkgs -f default.nix -iA emscriptenPackages.libxml2 - nix-env -I nixpkgs=../somewhere/nixpkgs -f default.nix -iA emscriptenPackages.json_c - nix-env -I nixpkgs=../somewhere/nixpkgs -f default.nix -iA emscriptenPackages.zlib - nix-env -I nixpkgs=../somewhere/nixpkgs -f default.nix -iA emscriptenPackages.xmlmirror
Diffstat (limited to 'pkgs/development/em-modules')
-rw-r--r--pkgs/development/em-modules/generic/default.nix59
1 files changed, 59 insertions, 0 deletions
diff --git a/pkgs/development/em-modules/generic/default.nix b/pkgs/development/em-modules/generic/default.nix
new file mode 100644
index 000000000000..16b8f1df595e
--- /dev/null
+++ b/pkgs/development/em-modules/generic/default.nix
@@ -0,0 +1,59 @@
+{ pkgs, lib, emscripten }:
+
+{ buildInputs ? [], nativeBuildInputs ? []
+
+, enableParallelBuilding ? true
+
+, meta ? {}, ... } @ args:
+
+pkgs.stdenv.mkDerivation (
+ args //
+ {
+
+ name = "emscripten-${args.name}";
+ buildInputs = [ emscripten ] ++ buildInputs;
+ nativeBuildInputs = [ emscripten ] ++ nativeBuildInputs;
+
+ # fake conftest results with emscripten's python magic
+ EMCONFIGURE_JS=2;
+
+ configurePhase = args.configurePhase or ''
+ # FIXME: Some tests require writing at $HOME
+ HOME=$TMPDIR
+ runHook preConfigure
+
+ # probably requires autotools as dependency
+ ./autogen.sh
+ emconfigure ./configure --prefix=$out
+
+ runHook postConfigure
+ '';
+
+ buildPhase = args.buildPhase or ''
+ runHook preBuild
+
+ HOME=$TMPDIR
+ emmake make
+
+ runHook postBuild
+ '';
+
+ checkPhase = args.checkPhase or ''
+ runHook preCheck
+
+ runHook postCheck
+ '';
+
+ enableParallelBuilding = args.enableParallelBuilding or true;
+
+ meta = {
+ # Add default meta information
+ platforms = lib.platforms.all;
+ # Do not build this automatically
+ hydraPlatforms = [];
+ } // meta // {
+ # add an extra maintainer to every package
+ maintainers = (meta.maintainers or []) ++
+ [ lib.maintainers.qknight ];
+ };
+})