about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/misc/trenchbroom/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/misc/trenchbroom/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/misc/trenchbroom/default.nix65
1 files changed, 65 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/misc/trenchbroom/default.nix b/nixpkgs/pkgs/applications/misc/trenchbroom/default.nix
new file mode 100644
index 000000000000..b6ff02116914
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/trenchbroom/default.nix
@@ -0,0 +1,65 @@
+{ lib, stdenv, fetchFromGitHub
+, cmake, ninja, git, pandoc
+, libGL, libGLU, libXxf86vm, freeimage
+, qtbase, wrapQtAppsHook
+, copyDesktopItems, makeDesktopItem
+}:
+
+stdenv.mkDerivation rec {
+  pname = "TrenchBroom";
+  version = "2021.1";
+
+  src = fetchFromGitHub {
+    owner = "TrenchBroom";
+    repo = "TrenchBroom";
+    rev = "v${version}";
+    sha256 = "06j68kp7g57hclyp8ilh2wd4vr5w8r718cicdp1cap48fcxlqfxv";
+    fetchSubmodules = true;
+  };
+  postPatch = ''
+    substituteInPlace common/src/Version.h.in \
+      --subst-var-by APP_VERSION_YEAR ${lib.versions.major version} \
+      --subst-var-by APP_VERSION_NUMBER ${lib.versions.minor version} \
+      --subst-var-by GIT_DESCRIBE v${version}
+  '';
+
+  nativeBuildInputs = [ cmake git pandoc wrapQtAppsHook copyDesktopItems ];
+  buildInputs = [ libGL libGLU libXxf86vm freeimage qtbase ];
+  QT_PLUGIN_PATH = "${qtbase}/${qtbase.qtPluginPrefix}";
+  QT_QPA_PLATFORM = "offscreen";
+  ninjaFlags = [
+    "TrenchBroom"
+  ];
+  preBuild = "export HOME=$(mktemp -d)";
+
+  postInstall = ''
+    pushd $out/share/TrenchBroom/icons
+
+    for F in icon_*.png; do
+      SIZE=$(echo $F|sed -e s/icon_// -e s/.png//)
+      DIR=$out/share/icons/hicolor/$SIZE"x"$SIZE/apps
+      mkdir -p $DIR
+      ln -s ../../../../TrenchBroom/icons/$F $DIR/trenchbroom.png
+    done
+
+    popd
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "TrenchBroom";
+      desktopName = "TrenchBroom level editor";
+      icon = "trenchbroom";
+      comment = meta.description;
+      categories = "Development";
+      exec = "trenchbroom";
+    })
+  ];
+
+  meta = with lib; {
+    homepage = "https://trenchbroom.github.io/";
+    description = "Level editor for Quake-engine based games";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ astro ];
+  };
+}