Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 137 lines 3.5 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchFromGitLab, 5 fetchurl, 6 boost, 7 cmake, 8 ffmpeg, 9 libsForQt5, 10 gdal, 11 gfortran, 12 libXt, 13 makeWrapper, 14 ninja, 15 mpi, 16 python312, 17 tbb, 18 libGLU, 19 libGL, 20 withDocs ? true, 21}: 22 23let 24 version = "5.13.2"; 25 26 docFiles = [ 27 (fetchurl { 28 url = "https://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v${lib.versions.majorMinor version}&type=data&os=Sources&downloadFile=ParaViewTutorial-${version}.pdf"; 29 name = "Tutorial.pdf"; 30 hash = "sha256-jJ6YUT2rgVExfKv900LbSO+MDQ4u73K7cBScHxWoP+g="; 31 }) 32 (fetchurl { 33 url = "https://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v${lib.versions.majorMinor version}&type=data&os=Sources&downloadFile=ParaViewGettingStarted-${version}.pdf"; 34 name = "GettingStarted.pdf"; 35 hash = "sha256-ptPQA8By8Hj0qI5WRtw3ZhklelXeYeJwVaUdfd6msJM="; 36 }) 37 (fetchurl { 38 url = "https://www.paraview.org/paraview-downloads/download.php?submit=Download&version=v${lib.versions.majorMinor version}&type=data&os=Sources&downloadFile=ParaViewCatalystGuide-${version}.pdf"; 39 name = "CatalystGuide.pdf"; 40 hash = "sha256-Pl7X5cBj3OralkOw5A29CtXnA+agYr6kWHf/+KZNHow="; 41 }) 42 ]; 43 44in 45stdenv.mkDerivation rec { 46 pname = "paraview"; 47 inherit version; 48 49 src = fetchFromGitLab { 50 domain = "gitlab.kitware.com"; 51 owner = "paraview"; 52 repo = "paraview"; 53 rev = "v${version}"; 54 hash = "sha256-29PLXVpvj8RLkSDWQgj5QjBZ6l1/0NoVx/qcJXOSssU="; 55 fetchSubmodules = true; 56 }; 57 58 # Find the Qt platform plugin "minimal" 59 preConfigure = '' 60 export QT_PLUGIN_PATH=${libsForQt5.qtbase.bin}/${libsForQt5.qtbase.qtPluginPrefix} 61 ''; 62 63 cmakeFlags = [ 64 "-DPARAVIEW_ENABLE_FFMPEG=ON" 65 "-DPARAVIEW_ENABLE_GDAL=ON" 66 "-DPARAVIEW_ENABLE_MOTIONFX=ON" 67 "-DPARAVIEW_ENABLE_VISITBRIDGE=ON" 68 "-DPARAVIEW_ENABLE_XDMF3=ON" 69 "-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON" 70 "-DPARAVIEW_USE_MPI=ON" 71 "-DPARAVIEW_USE_PYTHON=ON" 72 "-DVTK_SMP_IMPLEMENTATION_TYPE=TBB" 73 "-DVTKm_ENABLE_MPI=ON" 74 "-DCMAKE_INSTALL_LIBDIR=lib" 75 "-DCMAKE_INSTALL_INCLUDEDIR=include" 76 "-DCMAKE_INSTALL_BINDIR=bin" 77 "-DOpenGL_GL_PREFERENCE=GLVND" 78 "-GNinja" 79 ]; 80 81 nativeBuildInputs = [ 82 cmake 83 makeWrapper 84 ninja 85 gfortran 86 libsForQt5.wrapQtAppsHook 87 ]; 88 89 buildInputs = [ 90 libGLU 91 libGL 92 libXt 93 mpi 94 tbb 95 boost 96 ffmpeg 97 gdal 98 libsForQt5.qtbase 99 libsForQt5.qtx11extras 100 libsForQt5.qttools 101 libsForQt5.qtxmlpatterns 102 libsForQt5.qtsvg 103 ]; 104 105 postInstall = 106 let 107 docDir = "$out/share/paraview-${lib.versions.majorMinor version}/doc"; 108 in 109 lib.optionalString withDocs '' 110 mkdir -p ${docDir}; 111 for docFile in ${lib.concatStringsSep " " docFiles}; do 112 cp $docFile ${docDir}/$(stripHash $docFile); 113 done; 114 ''; 115 116 propagatedBuildInputs = [ 117 (python312.withPackages ( 118 ps: with ps; [ 119 numpy 120 matplotlib 121 mpi4py 122 ] 123 )) 124 ]; 125 126 # 23k objects, >4h on a normal build slot 127 requiredSystemFeatures = [ "big-parallel" ]; 128 129 meta = { 130 homepage = "https://www.paraview.org"; 131 description = "3D Data analysis and visualization application"; 132 license = lib.licenses.bsd3; 133 maintainers = with lib.maintainers; [ guibert ]; 134 changelog = "https://www.kitware.com/paraview-${lib.concatStringsSep "-" (lib.versions.splitVersion version)}-release-notes"; 135 platforms = lib.platforms.linux; 136 }; 137}