From 188d91a9ecb3ddf0f91f30d2968855391296eb34 Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Wed, 21 Oct 2020 23:10:45 -0400 Subject: [PATCH] docker build --- .gitignore | 3 ++ default.nix | 44 ++++++++++++++++++++++ docker.nix | 22 +++++++++++ src/pc/controller/controller_entry_point.c | 2 +- 4 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 default.nix create mode 100644 docker.nix diff --git a/.gitignore b/.gitignore index 303c45e..cb6c3f4 100644 --- a/.gitignore +++ b/.gitignore @@ -77,3 +77,6 @@ vblank input *.m64 .env + +# Nix +/result diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..7875b1f --- /dev/null +++ b/default.nix @@ -0,0 +1,44 @@ +{ pkgs ? import { } }: + +with pkgs; + +stdenv.mkDerivation rec { + pname = "sm64pc"; + version = "latest"; + + buildInputs = [ + gnumake + python3 + audiofile + pkg-config + SDL2 + libusb1 + glfw3 + libgcc + xorg.libX11 + xorg.libXrandr + libpulseaudio + alsaLib + glfw + libGL + unixtools.hexdump + clang_10 + ]; + + src = ./.; + + buildPhase = '' + chmod +x ./extract_assets.py + make -j + ''; + + installPhase = '' + mkdir -p $out/bin + cp ./build/us_pc/sm64.us.f3dex2e $out/bin/sm64pc + ''; + + meta = with stdenv.lib; { + description = "Super Mario 64 PC port, requires rom :)"; + license = licenses.unfree; + }; +} diff --git a/docker.nix b/docker.nix new file mode 100644 index 0000000..2345484 --- /dev/null +++ b/docker.nix @@ -0,0 +1,22 @@ +{ pkgs ? import { } }: + +with pkgs; + +let + site = callPackage ./default.nix { }; + + dockerImage = pkg: + pkgs.dockerTools.buildLayeredImage { + name = "ghcr.io/xe/sm64pc"; + tag = "latest"; + + contents = [ pkg mesa mesa.drivers mesa_glu mesa_noglu libGL_driver ]; + + config = { + Cmd = [ "${strace}/bin/strace" "${pkg}/bin/sm64pc" ]; + Env = [ "LD_LIBRARY_PATH=/lib" "LIBGL_DRIVERS_PATH=/lib/dri" ]; + WorkingDir = "/"; + }; + }; + +in dockerImage site diff --git a/src/pc/controller/controller_entry_point.c b/src/pc/controller/controller_entry_point.c index b932431..791a920 100644 --- a/src/pc/controller/controller_entry_point.c +++ b/src/pc/controller/controller_entry_point.c @@ -9,7 +9,7 @@ static struct ControllerAPI *controller_implementations[] = { &controller_recorded_tas, - &controller_gamebridge, + //&controller_gamebridge, &controller_sdl, &controller_keyboard, //&controller_tas_recorder,