From b5f228c836aa88a73f94e89ef830ad9ad427f56d Mon Sep 17 00:00:00 2001 From: Will Cohen Date: Mon, 9 May 2022 10:56:23 -0400 Subject: [PATCH 1/2] emscriptenStdenv: fix cache location --- pkgs/development/em-modules/generic/default.nix | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkgs/development/em-modules/generic/default.nix b/pkgs/development/em-modules/generic/default.nix index 8bfbf6ec3099..a85972029416 100644 --- a/pkgs/development/em-modules/generic/default.nix +++ b/pkgs/development/em-modules/generic/default.nix @@ -1,4 +1,4 @@ -{ pkgs, lib, emscripten, python2 }: +{ pkgs, lib, emscripten, python3 }: { buildInputs ? [], nativeBuildInputs ? [] @@ -12,8 +12,8 @@ pkgs.stdenv.mkDerivation ( pname = "emscripten-${lib.getName args}"; version = lib.getVersion args; - buildInputs = [ emscripten python2 ] ++ buildInputs; - nativeBuildInputs = [ emscripten python2 ] ++ nativeBuildInputs; + buildInputs = [ emscripten python3 ] ++ buildInputs; + nativeBuildInputs = [ emscripten python3 ] ++ nativeBuildInputs; # fake conftest results with emscripten's python magic EMCONFIGURE_JS=2; @@ -25,6 +25,9 @@ pkgs.stdenv.mkDerivation ( emconfigure ./configure --prefix=$out + mkdir -p .emscriptencache + export EM_CACHE=$(pwd)/.emscriptencache + runHook postConfigure ''; @@ -32,6 +35,7 @@ pkgs.stdenv.mkDerivation ( runHook preBuild HOME=$TMPDIR + emmake make runHook postBuild From 0340075cc6a0e2c97e61abc6d0b11a02ede5ddd1 Mon Sep 17 00:00:00 2001 From: Will Cohen Date: Mon, 9 May 2022 10:57:18 -0400 Subject: [PATCH 2/2] emscriptenPackages.zlib: use emscriptenStdenv --- pkgs/top-level/emscripten-packages.nix | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/pkgs/top-level/emscripten-packages.nix b/pkgs/top-level/emscripten-packages.nix index d15db2b1d388..9a6b18809502 100644 --- a/pkgs/top-level/emscripten-packages.nix +++ b/pkgs/top-level/emscripten-packages.nix @@ -14,6 +14,8 @@ rec { propagatedBuildInputs = [ zlib ]; configurePhase = '' HOME=$TMPDIR + mkdir -p .emscriptencache + export EM_CACHE=$(pwd)/.emscriptencache emcmake cmake . $cmakeFlags -DCMAKE_INSTALL_PREFIX=$out -DCMAKE_INSTALL_INCLUDEDIR=$dev/include ''; checkPhase = '' @@ -54,6 +56,8 @@ rec { autoreconfPhase = "echo autoreconfPhase not used..."; configurePhase = '' HOME=$TMPDIR + mkdir -p .emscriptencache + export EM_CACHE=$(pwd)/.emscriptencache emconfigure ./configure --prefix=$out --without-python ''; checkPhase = '' @@ -102,6 +106,8 @@ rec { sed -e "s/\$(JSONC_LDFLAGS) \$(ZLIB_LDFLAGS) \$(LIBXML20_LDFLAGS)/\$(JSONC_LDFLAGS) \$(LIBXML20_LDFLAGS) \$(ZLIB_LDFLAGS) /g" -i Makefile.emEnv # https://gitlab.com/odfplugfest/xmlmirror/issues/11 sed -e "s/-o fastXmlLint.js/-s EXTRA_EXPORTED_RUNTIME_METHODS='[\"ccall\", \"cwrap\"]' -o fastXmlLint.js/g" -i Makefile.emEnv + mkdir -p .emscriptencache + export EM_CACHE=$(pwd)/.emscriptencache ''; buildPhase = '' @@ -137,16 +143,6 @@ rec { buildInputs = old.buildInputs ++ [ pkg-config ]; # we need to reset this setting! NIX_CFLAGS_COMPILE=""; - configurePhase = '' - # FIXME: Some tests require writing at $HOME - HOME=$TMPDIR - runHook preConfigure - - #export EMCC_DEBUG=2 - emconfigure ./configure --prefix=$out --shared - - runHook postConfigure - ''; dontStrip = true; outputs = [ "out" ]; buildPhase = '' @@ -161,7 +157,7 @@ rec { echo "Compiling a custom test" set -x emcc -O2 -s EMULATE_FUNCTION_POINTER_CASTS=1 test/example.c -DZ_SOLO \ - -L. libz.so.${old.version} -I . -o example.js + -L. libz.a -I . -o example.js echo "Using node to execute the test" ${pkgs.nodejs}/bin/node ./example.js