From ac9ef6f6cb595abbb427fe376b68a50b4d0d4e65 Mon Sep 17 00:00:00 2001 From: Jean-Francois Panisset Date: Thu, 14 Aug 2025 06:25:27 +0000 Subject: [PATCH] VFX 2025 build fixes for oiio, osl Signed-off-by: Jean-Francois Panisset --- ci-materialx/README.md | 2 +- ci-usd/README.md | 2 +- ci-vfxall/README.md | 4 +-- .../conan/recipes/materialx/conandata.yml | 6 ++++ .../oiio/patches/2.5.19.0-cmake-targets.patch | 36 ++++++++++++------- packages/vfx2/Dockerfile | 4 +++ python/aswfdocker/data/versions.yaml | 2 +- scripts/vfx/build_osl.sh | 30 ++++++++++++++++ 8 files changed, 69 insertions(+), 17 deletions(-) diff --git a/ci-materialx/README.md b/ci-materialx/README.md index dc9e34f2..45f383cd 100644 --- a/ci-materialx/README.md +++ b/ci-materialx/README.md @@ -35,7 +35,7 @@ Contains: ## [aswf/ci-materialx:2024.3](https://hub.docker.com/r/aswf/ci-materialx/tags?page=1&name=2024.3) Contains: -* materialx-1.39.2 +* materialx-1.39.1 * numpy-1.24.3 * vfxplatform-2024 diff --git a/ci-usd/README.md b/ci-usd/README.md index 9e7e73f4..0e12437f 100644 --- a/ci-usd/README.md +++ b/ci-usd/README.md @@ -193,7 +193,7 @@ Contains: * alembic-1.8.8 * ocio-2.3.2 * oiio-2.5.19.0 -* materialx-1.39.2 +* materialx-1.39.1 * numpy-1.24.3 * hdf5-1.14.6 * vfxplatform-2024 diff --git a/ci-vfxall/README.md b/ci-vfxall/README.md index ba001fb3..c2a72021 100644 --- a/ci-vfxall/README.md +++ b/ci-vfxall/README.md @@ -342,7 +342,7 @@ Contains: * ocio-2.3.2 * openfx-1.5s * openvdb-11.0.0 -* materialx-1.39.2 +* materialx-1.39.1 * usd-24.08 * osl-1.13.11.0 * otio-0.17.0 @@ -369,7 +369,7 @@ Contains: * ocio-2.3.2 * openfx-1.5s * openvdb-11.0.0 -* materialx-1.39.2 +* materialx-1.39.1 * usd-24.08 * osl-1.13.11.0 * otio-0.17.0 diff --git a/packages/conan/recipes/materialx/conandata.yml b/packages/conan/recipes/materialx/conandata.yml index 9a3b2187..3e31e8e8 100644 --- a/packages/conan/recipes/materialx/conandata.yml +++ b/packages/conan/recipes/materialx/conandata.yml @@ -41,7 +41,13 @@ patches: - patch_file: "patches/pybind11-cmake.patch" patch_description: "CMake: Must call find_package() on Python3 before pybind11" patch_type: "conan" + - patch_file: "patches/1.39.3-cmake-libraries.patch" + patch_descriptions: "MaterialX support files in share/MaterialX" + patch_type: "conan" "1.39.1": - patch_file: "patches/pybind11-cmake.patch" patch_description: "CMake: Must call find_package() on Python3 before pybind11" patch_type: "conan" + - patch_file: "patches/1.39.3-cmake-libraries.patch" + patch_descriptions: "MaterialX support files in share/MaterialX" + patch_type: "conan" diff --git a/packages/conan/recipes/oiio/patches/2.5.19.0-cmake-targets.patch b/packages/conan/recipes/oiio/patches/2.5.19.0-cmake-targets.patch index a182eb53..82919fcf 100644 --- a/packages/conan/recipes/oiio/patches/2.5.19.0-cmake-targets.patch +++ b/packages/conan/recipes/oiio/patches/2.5.19.0-cmake-targets.patch @@ -331,12 +331,14 @@ index 6556cd2eb..b9c4cd958 100644 endif () # If an external copy wasn't found and we requested that missing # packages be built, or we we are forcing a local copy to be built, then -@@ -378,7 +414,7 @@ macro (find_or_download_fmt) +@@ -378,7 +414,9 @@ macro (find_or_download_fmt) set (fmt_VERSION "${FMT_VERSION_MAJOR}.${FMT_VERSION_MINOR}.${FMT_VERSION_PATCH}") list (APPEND CFP_ALL_BUILD_DEPS_FOUND "${pkgname} ${${pkgname}_VERSION}") else () - get_target_property(FMT_INCLUDE_DIR fmt::fmt-header-only INTERFACE_INCLUDE_DIRECTORIES) + get_target_property(FMT_INCLUDE_DIR fmt::fmt INTERFACE_INCLUDE_DIRECTORIES) ++ # Get rid of generator expression from Conan ++ string(REGEX REPLACE "^\\$<\\$:(.*)>$" "\\1" FMT_INCLUDE_DIR "${FMT_INCLUDE_DIR}") set (OIIO_USING_FMT_LOCAL FALSE) checked_find_package (fmt REQUIRED VERSION_MIN 7.0) @@ -495,7 +497,7 @@ diff --git src/libutil/CMakeLists.txt src/libutil/CMakeLists.txt index f873b3eed..cf5d4e74c 100644 --- src/libutil/CMakeLists.txt +++ src/libutil/CMakeLists.txt -@@ -20,20 +20,13 @@ target_link_libraries (OpenImageIO_Util +@@ -20,15 +20,15 @@ target_link_libraries (OpenImageIO_Util ${GCC_ATOMIC_LIBRARIES} ${OPENIMAGEIO_IMATH_DEPENDENCY_VISIBILITY} ${OPENIMAGEIO_IMATH_TARGETS} @@ -507,17 +509,13 @@ index f873b3eed..cf5d4e74c 100644 $ ${CMAKE_DL_LIBS} ) - --if (INTERNALIZE_FMT OR OIIO_USING_FMT_LOCAL) + + if (INTERNALIZE_FMT OR OIIO_USING_FMT_LOCAL) - add_dependencies(OpenImageIO_Util fmt_internal_target) --else () -- target_link_libraries (OpenImageIO_Util -- PUBLIC fmt::fmt-header-only) --endif () -- - if (WIN32) - add_definitions(-DWIN32_LEAN_AND_MEAN -DNOMINMAX -DNOGDI -DVC_EXTRALEAN) - target_link_libraries (OpenImageIO_Util PRIVATE psapi) ++ add_dependencies(OpenImageIO_Util fmt::fmt) + else () + target_link_libraries (OpenImageIO_Util + PUBLIC fmt::fmt-header-only) diff --git src/ptex.imageio/CMakeLists.txt src/ptex.imageio/CMakeLists.txt index 16634fedb..82060ac29 100644 --- src/ptex.imageio/CMakeLists.txt @@ -538,3 +536,17 @@ index 16634fedb..82060ac29 100644 + INCLUDE_DIRS ${ptex_INCLUDE_DIRS} DEFINITIONS "-DUSE_PTEX") endif () + +diff --git src/cmake/Config.cmake.in src/cmake/Config.cmake.in +index 16634fedb..82060ac29 10064 +--- src/cmake/Config.cmake.in ++++ src/cmake/Config.cmake.in +@@ -21,7 +21,7 @@ + endif () + endif () + +-if (NOT @OIIO_USING_FMT_LOCAL@ AND NOT @INTERNALIZE_FMT@) ++if (1) + find_dependency(fmt) + endif () + diff --git a/packages/vfx2/Dockerfile b/packages/vfx2/Dockerfile index 0402034e..28575ff6 100644 --- a/packages/vfx2/Dockerfile +++ b/packages/vfx2/Dockerfile @@ -15,6 +15,7 @@ ARG ASWF_BOOST_VERSION ARG ASWF_CMAKE_VERSION ARG ASWF_CPPUNIT_VERSION ARG ASWF_EXPAT_VERSION +ARG ASWF_FMT_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GLEW_VERSION ARG ASWF_GLFW_VERSION @@ -125,6 +126,8 @@ ARG ASWF_PYSTRING_VERSION ENV ASWF_PYSTRING_VERSEION=${ASWF_PYSTRING_VERSION} ARG ASWF_EXPAT_VERSION ENV ASWF_EXPAT_VERSION=${ASWF_EXPAT_VERSION} +ARG ASWF_FMT_VERSION +ENV ASWF_FMT_VERSION=${ASWF_FMT_VERSION} ARG ASWF_FREETYPE_VERSION ENV ASWF_FREETYPE_VERSION=${ASWF_FREETYPE_VERSION} ARG ASWF_MINIZIP_NG_VERSION @@ -180,6 +183,7 @@ COPY < . [requires] expat/${ASWF_EXPAT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +fmt/${ASWF_FMT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} onetbb/${ASWF_ONETBB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} partio/${ASWF_PARTIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} pybind11/${ASWF_PYBIND11_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/python/aswfdocker/data/versions.yaml b/python/aswfdocker/data/versions.yaml index 8f63578d..fc3dc3cd 100644 --- a/python/aswfdocker/data/versions.yaml +++ b/python/aswfdocker/data/versions.yaml @@ -620,7 +620,7 @@ versions: ASWF_CXX_STANDARD: "17" # ASWF packages ASWF_IMATH_VERSION: "3.1.12" - ASWF_MATERIALX_VERSION: "1.39.2" + ASWF_MATERIALX_VERSION: "1.39.1" ASWF_OCIO_CONFIGS_VERSION: "1.0_r2" ASWF_OCIO_VERSION: "2.3.2" ASWF_OIIO_VERSION: "2.5.19.0" diff --git a/scripts/vfx/build_osl.sh b/scripts/vfx/build_osl.sh index ca5d3af7..745ee7a1 100755 --- a/scripts/vfx/build_osl.sh +++ b/scripts/vfx/build_osl.sh @@ -11,6 +11,36 @@ fi tar -zxf "$DOWNLOADS_DIR/osl-${ASWF_OSL_VERSION}.tar.gz" cd "OpenShadingLanguage-${ASWF_OSL_VERSION}" +if [[ $ASWF_OSL_VERSION == 1.13.11.0 ]]; then +# Serialize CUDA builds to avoid race condition + +cat << 'EOF' | patch -p1 +diff --git a/src/testshade/CMakeLists.txt b/src/testshade/CMakeLists.txt +index d99dd79ac..bfda2778a 100644 +--- a/src/testshade/CMakeLists.txt ++++ b/src/testshade/CMakeLists.txt +@@ -80,6 +80,9 @@ + target_link_libraries (testshade + PRIVATE + oslexec oslquery) ++if (OSL_USE_OPTIX) ++ add_dependencies(testshade testshade_ptx) ++endif () + + install (TARGETS testshade RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) + +@@ -96,6 +99,7 @@ + if (NOT CODECOV) + # The 'libtestshade' library + add_library ( "libtestshade" ${testshade_srcs} ) ++ add_dependencies(libtestshade testshade) + + set_target_properties (libtestshade + PROPERTIES +EOF + +fi + if [[ $ASWF_DTS_VERSION == 9 && $ASWF_CUDA_VERSION == 10* ]]; then CUDA_COMPUTE_VERSION=compute_30 else