summaryrefslogtreecommitdiff
path: root/meshmc/nix/wrapper.nix
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:45:07 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:45:07 +0300
commit31b9a8949ed0a288143e23bf739f2eb64fdc63be (patch)
tree8a984fa143c38fccad461a77792d6864f3e82cd3 /meshmc/nix/wrapper.nix
parent934382c8a1ce738589dee9ee0f14e1cec812770e (diff)
parentfad6a1066616b69d7f5fef01178efdf014c59537 (diff)
downloadProject-Tick-31b9a8949ed0a288143e23bf739f2eb64fdc63be.tar.gz
Project-Tick-31b9a8949ed0a288143e23bf739f2eb64fdc63be.zip
Add 'meshmc/' from commit 'fad6a1066616b69d7f5fef01178efdf014c59537'
git-subtree-dir: meshmc git-subtree-mainline: 934382c8a1ce738589dee9ee0f14e1cec812770e git-subtree-split: fad6a1066616b69d7f5fef01178efdf014c59537
Diffstat (limited to 'meshmc/nix/wrapper.nix')
-rw-r--r--meshmc/nix/wrapper.nix134
1 files changed, 134 insertions, 0 deletions
diff --git a/meshmc/nix/wrapper.nix b/meshmc/nix/wrapper.nix
new file mode 100644
index 0000000000..289c883d85
--- /dev/null
+++ b/meshmc/nix/wrapper.nix
@@ -0,0 +1,134 @@
+{
+ addDriverRunpath,
+ alsa-lib,
+ flite,
+ gamemode,
+ glfw3-minecraft,
+ jdk17,
+ jdk21,
+ jdk8,
+ kdePackages,
+ lib,
+ libGL,
+ libX11,
+ libXcursor,
+ libXext,
+ libXrandr,
+ libXxf86vm,
+ libjack2,
+ libpulseaudio,
+ libusb1,
+ mesa-demos,
+ openal,
+ pciutils,
+ pipewire,
+ meshmc-unwrapped,
+ stdenv,
+ symlinkJoin,
+ udev,
+ vulkan-loader,
+ xrandr,
+
+ additionalLibs ? [ ],
+ additionalPrograms ? [ ],
+ controllerSupport ? stdenv.hostPlatform.isLinux,
+ gamemodeSupport ? stdenv.hostPlatform.isLinux,
+ jdks ? [
+ jdk21
+ jdk17
+ jdk8
+ ],
+ msaClientID ? null,
+ textToSpeechSupport ? stdenv.hostPlatform.isLinux,
+}:
+
+assert lib.assertMsg (
+ controllerSupport -> stdenv.hostPlatform.isLinux
+) "controllerSupport only has an effect on Linux.";
+
+assert lib.assertMsg (
+ textToSpeechSupport -> stdenv.hostPlatform.isLinux
+) "textToSpeechSupport only has an effect on Linux.";
+
+let
+ meshmc' = meshmc-unwrapped.override { inherit msaClientID; };
+in
+
+symlinkJoin {
+ name = "meshmc-${meshmc'.version}";
+
+ paths = [ meshmc' ];
+
+ nativeBuildInputs = [ kdePackages.wrapQtAppsHook ];
+
+ buildInputs = [
+ kdePackages.qtbase
+ kdePackages.qtimageformats
+ kdePackages.qtsvg
+ ]
+ ++ lib.optional (
+ lib.versionAtLeast kdePackages.qtbase.version "6" && stdenv.hostPlatform.isLinux
+ ) kdePackages.qtwayland;
+
+ postBuild = ''
+ wrapQtAppsHook
+ '';
+
+ qtWrapperArgs =
+ let
+ runtimeLibs = [
+ (lib.getLib stdenv.cc.cc)
+ ## native versions
+ glfw3-minecraft
+ openal
+
+ ## openal
+ alsa-lib
+ libjack2
+ libpulseaudio
+ pipewire
+
+ ## glfw
+ libGL
+ libX11
+ libXcursor
+ libXext
+ libXrandr
+ libXxf86vm
+
+ udev # oshi
+
+ vulkan-loader # VulkanMod's lwjgl
+ ]
+ ++ lib.optional textToSpeechSupport flite
+ ++ lib.optional gamemodeSupport gamemode.lib
+ ++ lib.optional controllerSupport libusb1
+ ++ additionalLibs;
+
+ runtimePrograms = [
+ mesa-demos
+ pciutils # need lspci
+ xrandr # needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
+ ]
+ ++ additionalPrograms;
+
+ in
+ [ "--prefix MESHMC_JAVA_PATHS : ${lib.makeSearchPath "bin/java" jdks}" ]
+ ++ lib.optionals stdenv.hostPlatform.isLinux [
+ "--set LD_LIBRARY_PATH ${addDriverRunpath.driverLink}/lib:${lib.makeLibraryPath runtimeLibs}"
+ "--prefix PATH : ${lib.makeBinPath runtimePrograms}"
+ ];
+
+ meta = {
+ inherit (meshmc'.meta)
+ description
+ longDescription
+ homepage
+ changelog
+ license
+ maintainers
+ mainProgram
+ platforms
+ ;
+ };
+}