{ lib, stdenv, fetchFromGitHub, fetchgit , cmake, pkg-config, makeWrapper , qt6 , openssl , python3 , libhwy , libjxl }: stdenv.mkDerivation (self: { pname = "maretf-distancealpha"; version = "2026-10-25"; src = fetchFromGitHub { owner = "partyvan"; repo = "maretf"; rev = "51674470b41cf0b6d5aff1cb263e08037815c4a4"; fetchSubmodules = true; hash = "sha256-Dzbd39xiK5X4yzTBbP4hTdLhPR5+7EhBoq26OtjBHmc="; }; nativeBuildInputs = [ cmake makeWrapper qt6.wrapQtAppsHook python3 ]; buildInputs = [ openssl pkg-config qt6.qtbase qt6.qttools libhwy ]; patchPhase = '' sed -i '/add_sourcepp_remote_library(libtommath/s/)/ EXCLUDE_FROM_ALL)/' ext/sourcepp/ext/_ext.cmake sed -i '/add_sourcepp_remote_library(libtomcrypt/s/)/ EXCLUDE_FROM_ALL)/' ext/sourcepp/ext/_ext.cmake ''; webp-src = fetchFromGitHub { owner = "webmproject"; repo = "libwebp"; rev = "1844042d1ca751e62e61df7617dba19c98588339"; hash = "sha256-wWdLM+BzQVV+0f3I9bJmiF+/f1otbANMt/JZKBsSHXM="; }; cmakeFlags = with self; [ (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_BCDEC" "${ fetchFromGitHub { owner = "craftablescience"; repo = "bcdec"; rev = "c3542bb56443d2b1f596127200b062b6ee2888c2"; hash = "sha256-58A4VkiNVYj1mDh0Hpyw65x7gcm1fIoUgTsm2iRNwKA="; } }") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_BUFFERSTREAM" "${ fetchFromGitHub { owner = "craftablescience"; repo = "bufferstream"; rev = "dd1b4da701430bf7540f247482b05cb4df93ddae"; hash = "sha256-+pthSz3T9OLwnkLNToTQdowN57EmXmERjW053jhRIFI="; } }") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_CMP_COMPRESSONATOR" "${ fetchFromGitHub { owner = "craftablescience"; repo = "compressonator-clean"; rev = "deb05dff448817b4b7a35f34fc293d6ebd913951"; hash = "sha256-OFT5ZDoKHeE/DnJkdCE9TjGem1MKnzNoVKmDNuGtOZk="; } }") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_TSL_HAT_TRIE" "${ fetchFromGitHub { owner = "Tessil"; repo = "hat-trie"; rev = "f1380d704eccf753db5f9df175789fff8ff353e0"; hash = "sha256-5L3qSlwYc2G60GPFrEz06eAWdUcdBQTVBLLOf1sLP0c="; } }") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_LIBJXL" "${ # there's technically a pinned dep but it has its own # brainded dependency fetching ****SHELL SCRIPT**** # yes you read that correctly ****FUCKING SHELL SCRIPT**** # and i so utterly beyond cannot be fucked deciphering it libjxl.src }") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_LIBTOMMATH" "${ fetchFromGitHub { owner = "craftablescience"; repo = "libtommath"; rev = "d0c643ffb76db2ff7592e8f0834f671d25cf8159"; hash = "sha256-EiGLTMU1QuJpGrHn718O7dKBLrJn8ixkah5hFMc+d9Y="; } }") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_LIBTOMCRYPT" "${ fetchFromGitHub { owner = "libtom"; repo = "libtomcrypt"; rev = "6c6d5104de66f3ca0dfd7b68540ef86869982b07"; hash = "sha256-yyuFhkjZYjzf+aH87igCkIYsz0hXmKa8r8w3vOx3HEk="; } }") # yes, fucking really. (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_LIBWEBP" "${webp-src}") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_WEBP" "${webp-src}") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_MINIZ" "${ fetchFromGitHub { owner = "richgel999"; repo = "miniz"; rev = "2948eebafc5b9f1c69bebed80333e403a09bd62d"; hash = "sha256-RSgNWSX+hiz8FLheh+vS6xHLL+Hkt5tbB6IvllWBt+c="; } }") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_MINIZIP-NG" "/build/minizip-ngtmp") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_BZIP2" "/build/bzip2tmp") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_ZLIB" "${ fetchFromGitHub { owner = "zlib-ng"; repo = "zlib-ng"; rev = "2.3.3"; hash = "sha256-6GlHCnx9dQtmViPnvHnMS+l9Z+g6M8ynrSxLhLtmAKU="; } }") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_GOOGLETEST" "${ fetchFromGitHub { owner = "google"; repo = "googletest"; tag = "release-1.12.1"; hash = "sha256-W+OxRTVtemt2esw4P7IyGWXOonUN5ZuscjvzqkYvZbM="; } }") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_LIBLZMA" "${ fetchFromGitHub { owner = "tukaani-project"; repo = "xz"; tag = "v5.8.4"; hash = "sha256-C4D4MB/1Pj57IUrLFkrf+cLs2rjtVO0V5uIRFORyidg="; } }") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_ZSTD" "${ fetchFromGitHub { owner = "facebook"; repo = "zstd"; tag = "v1.5.7"; hash = "sha256-tNFWIT9ydfozB8dWcmTMuZLCQmQudTFJIkSr0aG7S44="; } }") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_PPMD" "${ fetchFromGitHub{ owner = "ip7z"; repo = "7zip"; tag = "26.02"; hash = "sha256-MmnsCM4guQ5DuWDE5MslI8QIIbkUtZnddVPgAuCRWQU="; } }") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_QOI" "${ fetchFromGitHub { owner = "phoboslab"; repo = "qoi"; rev = "ffb2d2cb74a1de60819b21b939f7209aa53e91c1"; hash = "sha256-iA5ohbiafJxqRuMrJ/JfcDOOzcI3HstfK1W8HRpJKIw="; } }") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_TINYEXR" "${ fetchFromGitHub { owner = "syoyo"; repo = "tinyexr"; rev = "010383f267cba709568319fabe5c13b4b2c3188e"; hash = "sha256-XwN2YHoU6Rn7ny7+tQmV/AoMw4yfpXd/sybCcKrJ+lo="; } }") (lib.cmakeBool "MZ_OPENSSL" true) # the build explodes due to bzip2 being a target twice or something. # i'm not just going to drop everything and acquire a sufficient # understanding of cmake to actually remedy this (i think i'd # actually rather eat the contents of a sharps container like a # bowl of cereal, singing what shall we do with the drunken sailor) # so either this gets unfucked in the fetchcontent tree of a future # release or you're just out of luck. soz (lib.cmakeBool "MZ_BZIP2" false) (lib.cmakeBool "MARETF_BUILD_INSTALLER" true) (lib.cmakeFeature "CPACK_GENERATOR" "DEB") ]; postUnpack = '' cp -r ${fetchgit { url = "https://gitlab.com/bzip2/bzip2"; rev = "66c46b8c9436613fd81bc5d03f63a61933a4dcc3"; hash = "sha256-JuwmLBwtUPW9Wt31wIX5NMCu0VTxt16XaBQ2c5rFTY4="; }} /build/bzip2tmp chmod -R +w /build/bzip2tmp cp -r ${fetchFromGitHub { owner = "craftablescience"; repo = "minizip-ng"; rev = "2235fcc1d77e0f660b3101e2a30f81f82dfdc7f3"; hash = "sha256-xDIxhJQPdfWeOFd3XUX0CwTR7NUe4b+oNfYOEWs9iOQ="; }} /build/minizip-ngtmp chmod -R +w /build/minizip-ngtmp ''; LANG = "C.UTF-8"; postFixup = '' substituteInPlace $out/share/thumbnailers/maretf.thumbnailer \ --replace "maretf_thumbnailer" "$out/bin/maretf_thumbnailer" \ --replace "image/x-vtf;" "image/x-vtf;image/vnd.valve.source.texture;" ''; meta = { description = "MareTF branch with support for distance mapping"; homepage = "https://github.com/partyvan/MareTF"; mainProgram = "maretf"; license = lib.licenses.mit; platforms = [ "x86_64-linux" ]; }; })