Merge pull request #296016 from amarshall/blender-usd

blender: enable USD support; openusd: cleanup

authored by Dmitry Kalinkin and committed by GitHub 127f03b7 7431fec5

+130 -96
+4
pkgs/applications/misc/blender/default.nix
··· 84 84 let 85 85 python3Packages = python310Packages; 86 86 python3 = python3Packages.python; 87 + pyPkgsOpenusd = python3Packages.openusd.override { withOsl = false; }; 87 88 88 89 libdecor' = libdecor.overrideAttrs (old: { 89 90 # Blender uses private APIs, need to patch to expose them ··· 171 172 "-DWITH_PYTHON_INSTALL_REQUESTS=OFF" 172 173 "-DWITH_SDL=OFF" 173 174 "-DWITH_TBB=ON" 175 + "-DWITH_USD=ON" 174 176 175 177 # Blender supplies its own FindAlembic.cmake (incompatible with the Alembic-supplied config file) 176 178 "-DALEMBIC_INCLUDE_DIR=${lib.getDev alembic}/include" ··· 237 239 (opensubdiv.override { inherit cudaSupport; }) 238 240 potrace 239 241 pugixml 242 + pyPkgsOpenusd 240 243 python3 241 244 tbb 242 245 zlib ··· 292 295 ps.numpy 293 296 ps.requests 294 297 ps.zstandard 298 + pyPkgsOpenusd 295 299 ]; 296 300 297 301 blenderExecutable =
+121 -96
pkgs/development/python-modules/openusd/default.nix
··· 1 - { buildPythonPackage 2 - , fetchFromGitHub 3 - , lib 4 - , writeShellScriptBin 5 - , cmake 6 - , doxygen 7 - , draco 8 - , graphviz-nox 9 - , ninja 10 - , setuptools 11 - , pyqt6 12 - , pyopengl 13 - , jinja2 14 - , pyside6 15 - , boost 16 - , numpy 17 - , git 18 - , tbb 19 - , opensubdiv 20 - , openimageio 21 - , opencolorio 22 - , osl 23 - , ptex 24 - , embree 25 - , alembic 26 - , imath 27 - , flex 28 - , bison 29 - , qt6 30 - , python 31 - , darwin 1 + { 2 + alembic, 3 + bison, 4 + boost, 5 + buildPythonPackage, 6 + cmake, 7 + darwin, 8 + doxygen, 9 + draco, 10 + embree, 11 + fetchFromGitHub, 12 + flex, 13 + git, 14 + graphviz-nox, 15 + imath, 16 + jinja2, 17 + lib, 18 + libGL, 19 + libX11, 20 + ninja, 21 + numpy, 22 + opencolorio, 23 + openimageio, 24 + opensubdiv, 25 + osl, 26 + ptex, 27 + pyopengl, 28 + pyqt6, 29 + pyside6, 30 + python, 31 + qt6, 32 + setuptools, 33 + tbb, 34 + withDocs ? false, 35 + withOsl ? true, 36 + withTools ? false, 37 + withUsdView ? false, 38 + writeShellScriptBin, 32 39 }: 40 + 33 41 let 34 42 # Matches the pyside6-uic implementation 35 43 # https://code.qt.io/cgit/pyside/pyside-setup.git/tree/sources/pyside-tools/pyside_tool.py?id=e501cad66146a49c7a259579c7bb94bc93a67a08#n82 ··· 37 45 exec ${qt6.qtbase}/libexec/uic -g python "$@" 38 46 ''; 39 47 in 48 + 40 49 buildPythonPackage rec { 41 50 pname = "OpenUSD"; 42 51 version = "23.11"; 52 + 43 53 src = fetchFromGitHub { 44 54 owner = "PixarAnimationStudios"; 45 55 repo = pname; ··· 47 57 hash = "sha256-5zQrfB14kXs75WbL3s4eyhxELglhLNxU2L2aVXiyVjg="; 48 58 }; 49 59 50 - stdenv = if python.stdenv.isDarwin then 51 - darwin.apple_sdk_11_0.stdenv 52 - else 53 - python.stdenv; 60 + stdenv = if python.stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else python.stdenv; 54 61 55 - outputs = ["out" "doc"]; 62 + outputs = [ "out" ] ++ lib.optional withDocs "doc"; 56 63 57 64 format = "other"; 58 65 59 - propagatedBuildInputs = [ 60 - setuptools 61 - pyqt6 62 - pyopengl 63 - jinja2 64 - pyside6 65 - pyside-tools-uic 66 - boost 67 - numpy 68 - ]; 69 - 70 66 cmakeFlags = [ 67 + "-DPXR_BUILD_ALEMBIC_PLUGIN=ON" 68 + "-DPXR_BUILD_DRACO_PLUGIN=ON" 69 + "-DPXR_BUILD_EMBREE_PLUGIN=ON" 71 70 "-DPXR_BUILD_EXAMPLES=OFF" 71 + "-DPXR_BUILD_IMAGING=ON" 72 + "-DPXR_BUILD_MONOLITHIC=ON" # Seems to be commonly linked to monolithically 73 + "-DPXR_BUILD_TESTS=OFF" 72 74 "-DPXR_BUILD_TUTORIALS=OFF" 73 - "-DPXR_BUILD_USD_TOOLS=ON" 74 - "-DPXR_BUILD_IMAGING=ON" 75 75 "-DPXR_BUILD_USD_IMAGING=ON" 76 - "-DPXR_BUILD_USDVIEW=ON" 77 - "-DPXR_BUILD_DOCUMENTATION=ON" 78 - "-DPXR_BUILD_PYTHON_DOCUMENTATION=ON" 79 - "-DPXR_BUILD_EMBREE_PLUGIN=ON" 80 - "-DPXR_BUILD_ALEMBIC_PLUGIN=ON" 81 - "-DPXR_BUILD_DRACO_PLUGIN=ON" 82 - "-DPXR_BUILD_MONOLITHIC=ON" # Seems to be commonly linked to monolithically 83 - (lib.cmakeBool "PXR_ENABLE_OSL_SUPPORT" (!stdenv.isDarwin)) 76 + (lib.cmakeBool "PXR_BUILD_DOCUMENTATION" withDocs) 77 + (lib.cmakeBool "PXR_BUILD_PYTHON_DOCUMENTATION" withDocs) 78 + (lib.cmakeBool "PXR_BUILD_USDVIEW" withUsdView) 79 + (lib.cmakeBool "PXR_BUILD_USD_TOOLS" withTools) 80 + (lib.cmakeBool "PXR_ENABLE_OSL_SUPPORT" (!stdenv.isDarwin && withOsl)) 84 81 ]; 85 82 86 - nativeBuildInputs = [ 87 - cmake 88 - ninja 89 - git 90 - qt6.wrapQtAppsHook 91 - doxygen 92 - graphviz-nox 93 - ]; 94 - buildInputs = [ 95 - tbb 96 - opensubdiv 97 - openimageio 98 - opencolorio 99 - osl 100 - ptex 101 - embree 102 - alembic.dev 103 - imath 104 - flex 105 - bison 106 - boost 107 - draco 108 - qt6.qtbase 109 - ] 110 - ++ lib.optionals stdenv.isLinux [ qt6.qtwayland ] 111 - ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [ 112 - Cocoa 113 - ]) 114 - ; 83 + nativeBuildInputs = 84 + [ 85 + cmake 86 + ninja 87 + setuptools 88 + ] 89 + ++ lib.optionals withDocs [ 90 + git 91 + graphviz-nox 92 + doxygen 93 + ] 94 + ++ lib.optionals withUsdView [ qt6.wrapQtAppsHook ]; 115 95 116 - pythonImportsCheck = [ "pxr" "pxr.Usd" ]; 96 + buildInputs = 97 + [ 98 + alembic.dev 99 + bison 100 + boost 101 + draco 102 + embree 103 + flex 104 + imath 105 + opencolorio 106 + openimageio 107 + opensubdiv 108 + ptex 109 + tbb 110 + ] 111 + ++ lib.optionals stdenv.isLinux [ 112 + libGL 113 + libX11 114 + ] 115 + ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [ Cocoa ]) 116 + ++ lib.optionals withOsl [ osl ] 117 + ++ lib.optionals withUsdView [ qt6.qtbase ] 118 + ++ lib.optionals (withUsdView && stdenv.isLinux) [ 119 + qt6.qtbase 120 + qt6.qtwayland 121 + ]; 117 122 118 - postInstall = '' 119 - # Make python lib properly accessible 120 - target_dir=$out/${python.sitePackages} 121 - mkdir -p $(dirname $target_dir) 122 - mv $out/lib/python $target_dir 123 + propagatedBuildInputs = 124 + [ 125 + boost 126 + jinja2 127 + numpy 128 + pyopengl 129 + ] 130 + ++ lib.optionals (withTools || withUsdView) [ 131 + pyside-tools-uic 132 + pyside6 133 + ] 134 + ++ lib.optionals withUsdView [ pyqt6 ]; 123 135 124 - mv $out/docs $doc 136 + pythonImportsCheck = [ 137 + "pxr" 138 + "pxr.Usd" 139 + ]; 125 140 126 - rm $out/share -r # only examples 127 - rm $out/tests -r 128 - ''; 141 + postInstall = 142 + '' 143 + # Make python lib properly accessible 144 + target_dir=$out/${python.sitePackages} 145 + mkdir -p $(dirname $target_dir) 146 + mv $out/lib/python $target_dir 147 + '' 148 + + lib.optionalString withDocs '' 149 + mv $out/docs $doc 150 + '' 151 + + '' 152 + rm $out/share -r # only examples 153 + ''; 129 154 130 155 meta = { 131 156 description = "Universal Scene Description";
+5
pkgs/top-level/all-packages.nix
··· 2001 2001 2002 2002 openbugs = pkgsi686Linux.callPackage ../applications/science/machine-learning/openbugs { }; 2003 2003 2004 + openusd = python3Packages.openusd.override { 2005 + withTools = true; 2006 + withUsdView = true; 2007 + }; 2008 + 2004 2009 osquery = callPackage ../tools/system/osquery { }; 2005 2010 2006 2011 paperview = callPackage ../tools/X11/paperview { };