trenchbroom: 2022.1 -> 2023.1

Astro 199d7bd5 e74e6844

+60 -9
+60 -9
pkgs/applications/misc/trenchbroom/default.nix
··· 1 - { lib, stdenv, fetchFromGitHub 2 - , cmake, ninja, git, pandoc, pkg-config 3 - , libGL, libGLU, freeimage 1 + { lib, stdenv, fetchFromGitHub, writeText 2 + , cmake, ninja, curl, git, pandoc, pkg-config, unzip, zip 3 + , libGL, libGLU, freeimage, freetype, assimp 4 4 , catch2, fmt, glew, miniz, tinyxml-2, xorg 5 5 , qtbase, wrapQtAppsHook 6 6 , copyDesktopItems, makeDesktopItem ··· 8 8 9 9 stdenv.mkDerivation rec { 10 10 pname = "TrenchBroom"; 11 - version = "2022.1"; 11 + version = "2023.1"; 12 12 13 13 src = fetchFromGitHub { 14 14 owner = "TrenchBroom"; 15 15 repo = "TrenchBroom"; 16 16 rev = "v${version}"; 17 - sha256 = "sha256-FNpYBfKnY9foPq1+21+382KKXieHksr3tCox251iJn4="; 17 + sha256 = "sha256-62xcFKSqxPS+J54+kLo/hewM+Wu/rVBGD8oiECDCJpA="; 18 18 fetchSubmodules = true; 19 19 }; 20 + # Manually simulate a vcpkg installation so that it can link the libraries 21 + # properly. 22 + postUnpack = 23 + let 24 + vcpkg_target = "x64-linux"; 25 + 26 + vcpkg_pkgs = [ 27 + "assimp" 28 + "catch2" 29 + "fmt" 30 + "freeimage" 31 + "freetype" 32 + "glew" 33 + "miniz" 34 + "tinyxml2" 35 + ]; 36 + 37 + updates_vcpkg_file = writeText "update_vcpkg_trenchbroom" ( 38 + lib.concatMapStringsSep "\n" (name: '' 39 + Package : ${name} 40 + Architecture : ${vcpkg_target} 41 + Version : 1.0 42 + Status : is installed 43 + '') vcpkg_pkgs); 44 + in '' 45 + export VCPKG_ROOT="$TMP/vcpkg" 46 + 47 + mkdir -p $VCPKG_ROOT/.vcpkg-root 48 + mkdir -p $VCPKG_ROOT/installed/${vcpkg_target}/lib 49 + mkdir -p $VCPKG_ROOT/installed/vcpkg/updates 50 + ln -s ${updates_vcpkg_file} $VCPKG_ROOT/installed/vcpkg/status 51 + mkdir -p $VCPKG_ROOT/installed/vcpkg/info 52 + ${lib.concatMapStrings (name: '' 53 + touch $VCPKG_ROOT/installed/vcpkg/info/${name}_1.0_${vcpkg_target}.list 54 + '') vcpkg_pkgs} 55 + 56 + ln -s ${assimp.lib}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/ 57 + ln -s ${catch2}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/ 58 + ln -s ${fmt}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/ 59 + ln -s ${freeimage}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/ 60 + ln -s ${freetype}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/ 61 + ln -s ${glew.out}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/ 62 + ln -s ${miniz}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/ 63 + ln -s ${tinyxml-2}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/ 64 + ''; 20 65 postPatch = '' 21 66 substituteInPlace common/src/Version.h.in \ 22 67 --subst-var-by APP_VERSION_YEAR ${lib.versions.major version} \ 23 68 --subst-var-by APP_VERSION_NUMBER ${lib.versions.minor version} \ 24 69 --subst-var-by GIT_DESCRIBE v${version} 70 + substituteInPlace app/CMakeLists.txt \ 71 + --replace 'set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")' 'set(CPACK_PACKAGING_INSTALL_PREFIX "'$out'")' 25 72 ''; 26 73 27 - nativeBuildInputs = [ cmake git pandoc wrapQtAppsHook copyDesktopItems pkg-config ]; 74 + nativeBuildInputs = [ cmake ninja curl git pandoc wrapQtAppsHook copyDesktopItems pkg-config unzip zip ]; 28 75 buildInputs = [ 29 - libGL libGLU xorg.libXxf86vm freeimage qtbase catch2 fmt glew miniz tinyxml-2 30 - xorg.libSM 76 + libGL libGLU xorg.libXxf86vm xorg.libSM 77 + freeimage freetype qtbase catch2 fmt 78 + glew miniz tinyxml-2 assimp 31 79 ]; 32 80 QT_PLUGIN_PATH = "${qtbase}/${qtbase.qtPluginPrefix}"; 33 81 QT_QPA_PLATFORM = "offscreen"; 34 82 35 83 cmakeFlags = [ 84 + "-DCMAKE_MAKE_PROGRAM=ninja" 85 + "-DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake" 86 + "-DVCPKG_MANIFEST_INSTALL=OFF" 36 87 # https://github.com/TrenchBroom/TrenchBroom/issues/4002#issuecomment-1125390780 37 88 "-DCMAKE_PREFIX_PATH=cmake/packages" 38 89 ]; 39 90 ninjaFlags = [ 40 91 "TrenchBroom" 41 92 ]; 42 - preBuild = "export HOME=$(mktemp -d)"; 43 93 44 94 postInstall = '' 45 95 pushd $out/share/TrenchBroom/icons ··· 71 121 description = "Level editor for Quake-engine based games"; 72 122 license = licenses.gpl3Only; 73 123 maintainers = with maintainers; [ astro ]; 124 + platforms = [ "x86_64-linux" ]; 74 125 }; 75 126 }