# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 PYTHON_COMPAT=( python3_{9..14} ) inherit cmake python-single-r1 DESCRIPTION="Universal Scene Description" HOMEPAGE="https://openusd.org/" SRC_URI="https://github.com/PixarAnimationStudios/OpenUSD/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" S="${WORKDIR}/OpenUSD-${PV}" LICENSE="TOST-1.0" SLOT="0" KEYWORDS="~amd64" IUSE="alembic doc draco embree +examples hdf +imaging materialx opencolorio openimageio +opengl osl ptex +python test +tools +usdview" REQUIRED_USE=" python? ( ${PYTHON_REQUIRED_USE} ) embree? ( imaging ) opencolorio? ( imaging ) openimageio? ( imaging ) ptex? ( imaging ) tools? ( python ) usdview? ( imaging opengl python ) hdf? ( alembic ) " RESTRICT="!test? ( test )" RDEPEND=" >=dev-cpp/tbb-2020.3 python? ( ${PYTHON_DEPS} $(python_gen_cond_dep ' dev-python/numpy[${PYTHON_USEDEP}] ') ) imaging? ( >=media-libs/opensubdiv-3.6.1 =dev-python/pyside-6.3.1 >=dev-python/pyopengl-3.1.5 ) opengl? ( virtual/opengl ) materialx? ( >=media-libs/materialx-1.39.4 ) osl? ( >=media-libs/osl-1.13.11 ) ptex? ( >=media-libs/ptex-2.4.2 ) openimageio? ( >=media-libs/openimageio-3.0 ) opencolorio? ( >=media-libs/opencolorio-2.2.1 ) embree? ( >=media-libs/embree-4.3.3 ) alembic? ( hdf? ( media-gfx/alembic[hdf5] sci-libs/hdf5:=[hl] ) >=media-gfx/alembic-1.8.5 dev-libs/imath ) draco? ( >=media-libs/draco-1.5.6 ) " DEPEND="${RDEPEND}" BDEPEND=" doc? ( app-text/doxygen media-gfx/graphviz ) " PATCHES=( "${FILESDIR}"/${PN}-26.11.1-hdf5-c-only.patch ) src_prepare() { cmake_src_prepare local flags='CMAKE_CXX_FLAGS_${config} ${CMAKE_CXX_FLAGS_${config}}' local quoted='CMAKE_CXX_FLAGS_${config} "${CMAKE_CXX_FLAGS_${config}}"' sed -i -e "s|${flags}|${quoted}|g" \ pxr/external/boost/python/CMakeLists.txt || die "Failed to patch Boost.Python CMakeLists" } src_configure() { use python && python_setup # Create a mock pyside6-uic to work around Gentoo's PySide6 libexec path and whatnot if use usdview; then local qt6_libexec for d in /usr/lib64/qt6/libexec /usr/lib/qt6/libexec /usr/libexec/qt6; do if [[ -x "${d}/uic" ]]; then qt6_libexec="${d}" break fi done if [[ -z "${qt6_libexec}" ]]; then die "Could not find Qt6 uic. Ensure dev-qt/qtbase:6 is properly installed." fi mkdir -p "${T}/bin" || die cat > "${T}/bin/pyside6-uic" < "${T}/99openusd" <<-EOF PXR_PLUGINPATH_NAME="/usr/share/usd/plugin" EOF doenvd "${T}/99openusd" use python && python_optimize }