summaryrefslogtreecommitdiff
path: root/c++/.nix/derivation.nix
blob: e3f712d1318fdf263c0c86b8781f51fa55c323dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{ lib
, stdenv
, pname
, version
}:

stdenv.mkDerivation {
	inherit pname version;

	src = ./..;

	dontConfigure = true;
	buildPhase = ''
		HOME=$(pwd)
		EM_CACHE=$TMPDIR/emscripten_cache
    emcc lights_out.cpp \
      -s WASM=1 \
      -s EXPORTED_FUNCTIONS='["_solve_lights_out_dispatch","_malloc","_free"]' \
      -s EXPORTED_RUNTIME_METHODS='["ccall","cwrap","HEAPU8"]' \
      -o lights_out.js
	'';

	# Silence the warnings for now
	checkPhase = ''
	'';

	installPhase = ''
		mkdir -p $out
		cp lights_out.{wasm,js} $out/
	'';
}