{ mkDerivation , lib , fetchFromGitHub , libGLU , qtbase , qtscript , qtxmlpatterns , lib3ds , bzip2 , muparser , eigen , glew , gmp , levmar , qhull , cmake , cgal , boost , mpfr , xercesc , tbb , embree , vcg , libigl , corto , openctm , structuresynth }: mkDerivation rec { pname = "meshlab"; version = "2023.12"; src = fetchFromGitHub { owner = "cnr-isti-vclab"; repo = "meshlab"; rev = "MeshLab-${version}"; sha256 = "sha256-AdUAWS741RQclYaSE3Tz1/I0YSinNAnfSaqef+Tib8Y="; }; buildInputs = [ libGLU qtbase qtscript qtxmlpatterns lib3ds bzip2 muparser eigen glew gmp levmar qhull cgal boost mpfr xercesc tbb embree vcg libigl corto openctm structuresynth ]; nativeBuildInputs = [ cmake ]; preConfigure = '' substituteAll ${./meshlab.desktop} resources/linux/meshlab.desktop substituteInPlace src/external/libigl.cmake \ --replace-fail '$'{MESHLAB_EXTERNAL_DOWNLOAD_DIR}/libigl-2.4.0 ${libigl} substituteInPlace src/external/nexus.cmake \ --replace-fail '$'{NEXUS_DIR}/src/corto ${corto.src} substituteInPlace src/external/levmar.cmake \ --replace-fail '$'{LEVMAR_LINK} ${levmar.src} \ --replace-warn "MD5 ''${LEVMAR_MD5}" "" substituteInPlace src/external/ssynth.cmake \ --replace-fail '$'{SSYNTH_LINK} ${structuresynth.src} \ --replace-warn "MD5 ''${SSYNTH_MD5}" "" substituteInPlace src/common_gui/CMakeLists.txt \ --replace-warn "MESHLAB_LIB_INSTALL_DIR" "CMAKE_INSTALL_LIBDIR" ''; cmakeFlags = [ "-DVCGDIR=${vcg.src}" ]; postFixup = '' patchelf --add-needed $out/lib/meshlab/libmeshlab-common.so $out/bin/.meshlab-wrapped ''; meta = { description = "A system for processing and editing 3D triangular meshes"; mainProgram = "meshlab"; homepage = "https://www.meshlab.net/"; license = lib.licenses.gpl3Only; maintainers = with lib.maintainers; [ viric ]; platforms = with lib.platforms; linux; }; }