diff options
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/openusd/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/python-modules/openusd/default.nix | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/openusd/default.nix b/nixpkgs/pkgs/development/python-modules/openusd/default.nix new file mode 100644 index 000000000000..590bae1823c9 --- /dev/null +++ b/nixpkgs/pkgs/development/python-modules/openusd/default.nix @@ -0,0 +1,141 @@ +{ buildPythonPackage +, fetchFromGitHub +, lib +, writeShellScriptBin +, cmake +, doxygen +, draco +, graphviz-nox +, ninja +, setuptools +, pyqt6 +, pyopengl +, jinja2 +, pyside6 +, boost +, numpy +, git +, tbb +, opensubdiv +, openimageio +, opencolorio +, osl +, ptex +, embree +, alembic +, imath +, flex +, bison +, qt6 +, python +, darwin +}: +let + # Matches the pyside6-uic implementation + # https://code.qt.io/cgit/pyside/pyside-setup.git/tree/sources/pyside-tools/pyside_tool.py?id=e501cad66146a49c7a259579c7bb94bc93a67a08#n82 + pyside-tools-uic = writeShellScriptBin "pyside6-uic" '' + exec ${qt6.qtbase}/libexec/uic -g python "$@" + ''; +in +buildPythonPackage rec { + pname = "OpenUSD"; + version = "23.11"; + src = fetchFromGitHub { + owner = "PixarAnimationStudios"; + repo = pname; + rev = "refs/tags/v${version}"; + hash = "sha256-5zQrfB14kXs75WbL3s4eyhxELglhLNxU2L2aVXiyVjg="; + }; + + stdenv = if python.stdenv.isDarwin then + darwin.apple_sdk_11_0.stdenv + else + python.stdenv; + + outputs = ["out" "doc"]; + + format = "other"; + + propagatedBuildInputs = [ + setuptools + pyqt6 + pyopengl + jinja2 + pyside6 + pyside-tools-uic + boost + numpy + ]; + + cmakeFlags = [ + "-DPXR_BUILD_EXAMPLES=OFF" + "-DPXR_BUILD_TUTORIALS=OFF" + "-DPXR_BUILD_USD_TOOLS=ON" + "-DPXR_BUILD_IMAGING=ON" + "-DPXR_BUILD_USD_IMAGING=ON" + "-DPXR_BUILD_USDVIEW=ON" + "-DPXR_BUILD_DOCUMENTATION=ON" + "-DPXR_BUILD_PYTHON_DOCUMENTATION=ON" + "-DPXR_BUILD_EMBREE_PLUGIN=ON" + "-DPXR_BUILD_ALEMBIC_PLUGIN=ON" + "-DPXR_BUILD_DRACO_PLUGIN=ON" + "-DPXR_BUILD_MONOLITHIC=ON" # Seems to be commonly linked to monolithically + (lib.cmakeBool "PXR_ENABLE_OSL_SUPPORT" (!stdenv.isDarwin)) + ]; + + nativeBuildInputs = [ + cmake + ninja + git + qt6.wrapQtAppsHook + doxygen + graphviz-nox + ]; + buildInputs = [ + tbb + opensubdiv + openimageio + opencolorio + osl + ptex + embree + alembic.dev + imath + flex + bison + boost + draco + qt6.qtbase + ] + ++ lib.optionals stdenv.isLinux [ qt6.qtwayland ] + ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [ + Cocoa + ]) + ; + + pythonImportsCheck = [ "pxr" "pxr.Usd" ]; + + postInstall = '' + # Make python lib properly accessible + target_dir=$out/${python.sitePackages} + mkdir -p $(dirname $target_dir) + mv $out/lib/python $target_dir + + mv $out/docs $doc + + rm $out/share -r # only examples + rm $out/tests -r + ''; + + meta = { + description = "Universal Scene Description"; + longDescription = '' + Universal Scene Description (USD) is an efficient, scalable system + for authoring, reading, and streaming time-sampled scene description + for interchange between graphics applications. + ''; + homepage = "https://openusd.org/"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ shaddydc ]; + }; +} |