diff --git a/pkgs/applications/misc/ericw-tools/default.nix b/pkgs/applications/misc/ericw-tools/default.nix new file mode 100644 index 000000000000..dadd235319b3 --- /dev/null +++ b/pkgs/applications/misc/ericw-tools/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, fetchFromGitHub +, gtest, fmt +, cmake, ninja, installShellFiles +}: + +stdenv.mkDerivation rec { + pname = "ericw-tools"; + version = "0.18.1"; + + src = fetchFromGitHub { + owner = "ericwa"; + repo = "ericw-tools"; + rev = "v${version}"; + sha256 = "11sap7qv0rlhw8q25azvhgjcwiql3zam09q0gim3i04cg6fkh0vp"; + }; + postUnpack = '' + pushd source/3rdparty + ln -s ${fmt.src} fmt + ln -s ${gtest.src} googletest + popd + ''; + + nativeBuildInputs = [ cmake ninja installShellFiles ]; + + outputs = [ "out" "doc" "man" ]; + installPhase = '' + runHook preInstall + + mkdir -p $out/bin + for TOOL in bspinfo bsputil light qbsp vis ; do + cp -a $TOOL/$TOOL $out/bin/ + done + + installManPage ../man/*.? + + mkdir -p $doc/share/doc/ericw-tools + cp -a ../README.md ../changelog.txt $doc/share/doc/ericw-tools/ + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://ericwa.github.io/ericw-tools/"; + description = "Map compile tools for Quake and Hexen 2"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ astro ]; + }; +} diff --git a/pkgs/applications/misc/trenchbroom/default.nix b/pkgs/applications/misc/trenchbroom/default.nix new file mode 100644 index 000000000000..b6ff02116914 --- /dev/null +++ b/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 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9d0489d106db..18f376abf1bb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4714,6 +4714,8 @@ with pkgs; endlessh = callPackage ../servers/endlessh { }; + ericw-tools = callPackage ../applications/misc/ericw-tools { }; + cryfs = callPackage ../tools/filesystems/cryfs { }; encfs = callPackage ../tools/filesystems/encfs { @@ -9712,6 +9714,10 @@ with pkgs; trebleshot = libsForQt5.callPackage ../applications/networking/trebleshot { }; + trenchbroom = libsForQt5.callPackage ../applications/misc/trenchbroom { + inherit (xorg) libXxf86vm; + }; + trickle = callPackage ../tools/networking/trickle {}; inherit (nodePackages) triton;