From 579e0ecd4bb5cd67debcfee10d69c7bfa37d630c Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Fri, 20 Jun 2025 10:23:53 +0200 Subject: Adding basic nix files --- .gitignore | 1 + .nix/derivation.nix | 29 +++++++++++++++++++++++++++++ c++/lights_out.cpp | 9 +++++++-- default.nix | 8 ++++++++ 4 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 .nix/derivation.nix create mode 100644 default.nix diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fcfc4a1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +result* diff --git a/.nix/derivation.nix b/.nix/derivation.nix new file mode 100644 index 0000000..c3f76a3 --- /dev/null +++ b/.nix/derivation.nix @@ -0,0 +1,29 @@ +{ lib +, stdenv +}: + +stdenv.mkDerivation { + pname = "kel_lights_out"; + version = "0.0.0"; + + src = ./..; + + dontConfigure = true; + buildPhase = '' + HOME=$(pwd) + emcc c++/lights_out.cpp \ + -s WASM=1 \ + -s EXPORTED_FUNCTIONS='["_fake_main"]' \ + -s EXPORTED_RUNTIME_METHODS='["ccall", "cwrap"]' \ + -o lights_out.js + ''; + + # Silence the warnings for now + checkPhase = '' + ''; + + installPhase = '' + mkdir -p $out + cp lights_out.{wasm,js} $out/ + ''; +} diff --git a/c++/lights_out.cpp b/c++/lights_out.cpp index 9b8503f..810f403 100644 --- a/c++/lights_out.cpp +++ b/c++/lights_out.cpp @@ -91,8 +91,8 @@ bool lu_decompose_gf2(Mat& R, std::array& P){ return true; } - -int main(){ +extern "C"{ +int fake_main(){ Mat A; Vec b{ @@ -169,3 +169,8 @@ int main(){ return 0; } +} + +int main(){ + return fake_main(); +} diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..c2bb53f --- /dev/null +++ b/default.nix @@ -0,0 +1,8 @@ +{ pkgs ? import {} +, stdenv ? pkgs.emscriptenStdenv +, ... +}: + +pkgs.callPackage .nix/derivation.nix { + inherit stdenv; +} -- cgit v1.2.3