From f39e146cf83d7c68362388313715c83a7f90a822 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Sat, 29 Aug 2026 16:06:35 +0200 Subject: [PATCH 1/2] Refresh macOS dependency versions Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- building/macOS/CMakeLists.txt | 84 +++++++++++++++++++++++++---------- 1 file changed, 61 insertions(+), 23 deletions(-) diff --git a/building/macOS/CMakeLists.txt b/building/macOS/CMakeLists.txt index 00085e2..7ddd663 100644 --- a/building/macOS/CMakeLists.txt +++ b/building/macOS/CMakeLists.txt @@ -61,13 +61,14 @@ ExternalProject_Add(Blosc set(CHAIN Blosc) ExternalProject_Add(Boost - URL https://archives.boost.io/release/1.78.0/source/boost_1_78_0.tar.gz - https://downloads.sourceforge.net/project/boost/boost/1.78.0/boost_1_78_0.tar.gz - URL_HASH SHA256=94ced8b72956591c4775ae2207a9763d3600b30d9d7446562c552f0a14a63be7 - UPDATE_COMMAND ./bootstrap.sh --prefix=${InstallRoot} --with-libraries=python,filesystem,system,thread,regex,date_time,chrono,program_options,iostreams --with-toolset=clang linkflags="-arch ${BOOST_ARCH}" + URL https://archives.boost.io/release/1.85.0/source/boost_1_85_0.tar.gz + https://downloads.sourceforge.net/project/boost/boost/1.85.0/boost_1_85_0.tar.gz + URL_HASH SHA256=be0d91732d5b0cc6fbb275c7939974457e79b54d6f07ce2e3dfdd68bef883b0b + UPDATE_COMMAND ./bootstrap.sh --prefix=${InstallRoot} --with-toolset=clang linkflags="-arch ${BOOST_ARCH}" CONFIGURE_COMMAND "" PATCH_COMMAND patch -p3 -N < ${THIS_DIR}/Boost.patch || true - BUILD_COMMAND ./b2 install ${JOBS_ARG} --user-config=${THIS_DIR}/user-config.jam variant=release link=shared threading=multi define=BOOST_UNORDERED_HAVE_PIECEWISE_CONSTRUCT=0 + COMMAND /usr/bin/perl -0pi -e "s/boost-install boost_python boost_numpy/boost-install boost_python/" libs/python/build/Jamfile + BUILD_COMMAND ./b2 install ${JOBS_ARG} --user-config=${THIS_DIR}/user-config.jam --with-python --with-iostreams --with-atomic --with-chrono --with-date_time --with-filesystem --with-program_options --with-regex --with-system --with-thread variant=release link=shared threading=multi architecture=arm address-model=64 define=BOOST_UNORDERED_HAVE_PIECEWISE_CONSTRUCT=0 BUILD_IN_SOURCE 1 INSTALL_COMMAND "" DEPENDS ${CHAIN} @@ -112,7 +113,7 @@ set(CHAIN MicroHttpd) ExternalProject_Add(OpenSubdiv GIT_REPOSITORY https://github.com/PixarAnimationStudios/OpenSubdiv - GIT_TAG 8ffa2b6566be10209529d7a0d1db02a0796b160c # v3_5_0 + GIT_TAG d303eb5071fd3ce148e37d8f7fcd8f212143fe1a # v3_6_0 BUILD_COMMAND make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} @@ -123,41 +124,67 @@ ExternalProject_Add(OpenSubdiv ) set(CHAIN OpenSubdiv) +ExternalProject_Add(Imath + GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/Imath + GIT_TAG c0396a055a01bc537d32f435aee11a9b7ed6f0b5 # v3.1.12 + BUILD_COMMAND make ${JOBS_ARG} + CMAKE_ARGS + ${COMMON_CMAKE_ARGS} + -DCMAKE_BUILD_TYPE=Release + -DBUILD_TESTING=OFF + -DIMATH_INSTALL_PKG_CONFIG=ON + DEPENDS ${CHAIN} +) +set(CHAIN Imath) + ExternalProject_Add(OpenEXR GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/openexr - GIT_TAG 8bc3741131db146ad08a5b83af9e6e48f0e94a03 # v2.5.7 - PATCH_COMMAND patch IlmBase/Half/CMakeLists.txt ${THIS_DIR}/../Imath_include_paths.patch + GIT_TAG 55d1a1404cec5b4b187009d9f7fe55a5622ac4e5 # v3.3.2 BUILD_COMMAND make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} - -DBoost_ROOT=${InstallRoot} - -DBUILD_SHARED_LIBS=OFF + -DImath_ROOT=${InstallRoot} + -DImath_DIR=${InstallRoot}/lib/cmake/Imath + -DCMAKE_BUILD_TYPE=Release + -DBUILD_SHARED_LIBS=ON + -DOPENEXR_BUILD_TOOLS=OFF + -DOPENEXR_BUILD_EXAMPLES=OFF + -DOPENEXR_BUILD_TESTS=OFF + -DOPENEXR_BUILD_PYTHON=OFF + -DOPENEXR_INSTALL_EXAMPLES=OFF DEPENDS ${CHAIN} ) set(CHAIN OpenEXR) ExternalProject_Add(TBB - URL https://github.com/oneapi-src/oneTBB/archive/2020_U3.tar.gz - URL_HASH SHA256=2103cc6238c935664f87680618f6684d57501d4a2fa8ea8f6c97ad6ff7dc722a - BUILD_IN_SOURCE 1 - CONFIGURE_COMMAND "" - BUILD_COMMAND make ${JOBS_ARG} arch=arm64 - INSTALL_COMMAND bash -c "cp build/*_release/libtbb*.* ${InstallRoot}/lib" - COMMAND bash -c "cp -r include/tbb ${InstallRoot}/include" + GIT_REPOSITORY https://github.com/oneapi-src/oneTBB.git + GIT_TAG 45587e94dfb6dfe00220c5f520020a5bc745e92f # v2022.1.0 + BUILD_COMMAND ${CMAKE_COMMAND} --build --config Release --parallel ${N} + INSTALL_COMMAND ${CMAKE_COMMAND} --install --config Release + CMAKE_ARGS + ${COMMON_CMAKE_ARGS} + -DCMAKE_BUILD_TYPE=Release + -DTBB_TEST=OFF + -DTBB_EXAMPLES=OFF + -DTBB_STRICT=OFF DEPENDS ${CHAIN} ) set(CHAIN TBB) ExternalProject_Add(OpenVDB GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/openvdb - GIT_TAG ab935574cdb25c3df66b068fce2a3b0a74281c54 # v9.1.0 - PATCH_COMMAND patch -p1 -N < ${THIS_DIR}/OpenVDB.patch || true + GIT_TAG f552aab85926ecd22abffdb0165815023c375447 # v12.0.1 BUILD_COMMAND make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} -DBlosc_ROOT=${InstallRoot} -DBoost_ROOT=${InstallRoot} -DTBB_ROOT=${InstallRoot} + -DCMAKE_BUILD_TYPE=Release + -DOPENVDB_BUILD_BINARIES=OFF + -DOPENVDB_BUILD_UNITTESTS=OFF + -DOPENVDB_BUILD_PYTHON_MODULE=OFF + -DOPENVDB_BUILD_NANOVDB=OFF DEPENDS ${CHAIN} ) set(CHAIN OpenVDB) @@ -233,7 +260,7 @@ set(CHAIN embree) ExternalProject_Add(OpenColorIO GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/OpenColorIO - GIT_TAG 056b7b0cb0d087961e9dba75104820e44faf52a1 # v2.0.2 + GIT_TAG ebd076ae6c4362d089edfbc63d8fbf3d7538ea01 # v2.4.1 BUILD_COMMAND ${CMAKE_COMMAND} -E env ${POLICY_MIN_ENV} make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} @@ -286,18 +313,30 @@ set(CHAIN pybind11) ExternalProject_Add(OpenImageIO GIT_REPOSITORY https://github.com/OpenImageIO/oiio - GIT_TAG 331a323468928c8017ad048b26d47c4e57a724a7 # 2.3.20.0 + GIT_TAG 372c57696909513a8ea97180cb34b925c4fe09e3 # v2.5.18.0 BUILD_COMMAND make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} -DBoost_ROOT=${InstallRoot} -DIMath_ROOT=${InstallRoot} + -DImath_DIR=${InstallRoot}/lib/cmake/Imath -DDISABLE_CMAKE_SEARCH_PATHS=TRUE -DCMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH=TRUE -DOpenEXR_ROOT=${InstallRoot} + -DOpenEXR_DIR=${InstallRoot}/lib/cmake/OpenEXR + -DOpenColorIO_ROOT=${InstallRoot} + -DTBB_ROOT=${InstallRoot} + -DCMAKE_BUILD_TYPE=Release -DUSE_QT=0 -DUSE_PYTHON=1 -DPython_EXECUTABLE=/usr/bin/python3 + -DUSE_OPENVDB=0 + -DUSE_FFMPEG=0 + -DUSE_OPENCV=0 + -DUSE_WEBP=0 + -DUSE_DCMTK=0 + -DUSE_OPENJPEG=0 + -DUSE_TESTS=0 DEPENDS ${CHAIN} ) set(CHAIN OpenImageIO) @@ -307,7 +346,7 @@ ExternalProject_Add(OpenImageDenoise URL_HASH SHA256=16cdaddabeb0f2af22fc8e466317c1a14a54b6ec03db2ac343e17fad40c70f3f BUILD_COMMAND "" CONFIGURE_COMMAND "" - INSTALL_COMMAND bash -c "rm -f ../OpenImageDenoise/lib/libtbb.dylib" + INSTALL_COMMAND bash -c "rm -f ../OpenImageDenoise/lib/libtbb*.dylib" COMMAND bash -c "ditto ../OpenImageDenoise ${InstallRoot}" DEPENDS ${CHAIN} ) @@ -432,4 +471,3 @@ ExternalProject_Add(GLFW DEPENDS ${CHAIN} ) set(CHAIN GLFW) - From 11c63bfad6b82fefb419eaceb0be285784d21837 Mon Sep 17 00:00:00 2001 From: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> Date: Mon, 31 Aug 2026 15:29:16 +0200 Subject: [PATCH 2/2] Add Houdini 22 macOS toolchain configuration Signed-off-by: Jakub Svoboda <132791205+rolledhand@users.noreply.github.com> --- CMakeLists.txt | 2 +- CMakeMacOSPresets.json | 36 +++++++--- building/macOS/Boost-no-numpy.patch | 6 ++ building/macOS/CMakeLists.txt | 52 ++++++++++---- .../boost/asio/io_service.hpp | 8 +++ building/macOS/pxr-houdini/pxrConfig.cmake | 6 +- .../pxr-houdini/pxrTargets-release.cmake | 46 +++++++------ building/macOS/pxr-houdini/pxrTargets.cmake | 68 +++++++++++-------- building/macOS/user-config.jam | 8 +-- moonray/hydra/CMakeLists.txt | 5 +- 10 files changed, 154 insertions(+), 83 deletions(-) create mode 100644 building/macOS/Boost-no-numpy.patch create mode 100644 building/macOS/houdini-usd-fixes/boost/asio/io_service.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index b17664f..88d6e47 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,7 @@ list(APPEND CMAKE_MESSAGE_CONTEXT ${PROJECT_NAME}) if(NOT DEFINED CMAKE_INSTALL_PREFIX OR ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr/local") set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/release) endif() + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/cmake) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/rats/cmake) @@ -92,4 +93,3 @@ if(GLD STREQUAL "$ENV{STUDIO}") GROUP_READ GROUP_WRITE WORLD_READ) endif() - diff --git a/CMakeMacOSPresets.json b/CMakeMacOSPresets.json index 0524fa1..a4d98a5 100644 --- a/CMakeMacOSPresets.json +++ b/CMakeMacOSPresets.json @@ -5,8 +5,8 @@ "name": "macos-environment", "hidden": true, "environment": { - "DEPS_ROOT" : "${sourceParentDir}/installs", - "BUILD_DIR" : "${sourceParentDir}/build", + "DEPS_ROOT" : "/Applications/MoonRay/installs", + "BUILD_DIR" : "/Applications/MoonRay/build", "Boost_ROOT" : "$env{DEPS_ROOT}", "Libuuid_ROOT" : "$env{DEPS_ROOT}", "CppUnit_ROOT" : "$env{DEPS_ROOT}", @@ -20,17 +20,31 @@ "OPTIX_ROOT" : "$env{DEPS_ROOT}/optix", "PXR_USD_LOCATION" : "$env{DEPS_ROOT}", "PXR_INCLUDE_DIRS" : "$env{DEPS_ROOT}/include", + "PXR_BOOST_PYTHON_LIB" : "/Applications/Houdini/Houdini22.0.408/Frameworks/Houdini.framework/Versions/Current/Libraries/libhboost_python313-mt-a64.dylib", "Random123_ROOT" : "$env{DEPS_ROOT}", "ZLIB_ROOT" : "$env{DEPS_ROOT}", - "OIIO_PYTHON" : "$env{DEPS_ROOT}/lib/python3.9/site-packages" + "OIIO_PYTHON" : "$env{DEPS_ROOT}/lib/python3.13/site-packages" }, "cacheVariables": { "CMAKE_PREFIX_PATH": "$env{DEPS_ROOT}", - "CMAKE_CXX_FLAGS": "-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION -I${sourceParentDir}/building/macOS/houdini-usd-fixes", + "CMAKE_CXX_FLAGS": "-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION -DFMT_USE_NONTYPE_TEMPLATE_ARGS=0 -DFMT_USE_CONSTEXPR=0 -DFMT_CONSTEVAL= -I/Applications/MoonRay/source/openmoonray/building/macOS/houdini-usd-fixes", "CMAKE_IGNORE_PATH": "/opt/homebrew", "CMAKE_IGNORE_PREFIX_PATH": "/opt/homebrew", "CMAKE_POLICY_VERSION_MINIMUM": "3.5", - "Python_EXECUTABLE": "/usr/bin/python3" + "Python_EXECUTABLE": "/Applications/Houdini/Houdini22.0.408/Frameworks/Python.framework/Versions/3.13/Resources/Python.app/Contents/MacOS/Python", + "CMAKE_CXX_STANDARD": "20", + "BUILD_QT_APPS": "OFF", + "BUILD_MATERIALX_SHADERS": "ON", + "BUILD_TESTING": "OFF", + "SCENERDL2_BUILD_TESTING": "OFF", + "MOONRAY_BUILD_TESTING": "OFF", + "ARRAS4_CORE_BUILD_TESTING": "OFF", + "MOONRAY_USE_METAL": "OFF", + "BUILD_MOONRAY_SDR_PLUGINS": "OFF", + "BUILD_HD_COMMANDS": "OFF", + "Vulkan_INCLUDE_DIR": "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Resources/toolkit/include", + "Vulkan_LIBRARY": "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries/libvulkan.dylib", + "CMAKE_ISPC_COMPILER": "$env{ISPC}" } }, { @@ -38,12 +52,12 @@ "hidden": true, "inherits": "macos-environment", "environment": { - "PREFIX_PXR" : "${sourceParentDir}/building/macOS/pxr-houdini", - "HOUDINI_INSTALL_DIR" : "/Applications/Houdini/Houdini20.0.751", + "PREFIX_PXR" : "/Applications/MoonRay/source/openmoonray/building/macOS/pxr-houdini", + "HOUDINI_INSTALL_DIR" : "/Applications/Houdini/Houdini22.0.408", "PXR_LIB_PREFIX" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries", "PXR_INCLUDE_PREFIX" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Resources/toolkit/include", "PXR_DEPS_PREFIX" : "$env{DEPS_ROOT}", - "PXR_BOOST_PYTHON_LIB" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries/libhboost_python39-mt-a64.dylib" + "PXR_BOOST_PYTHON_LIB" : "$env{HOUDINI_INSTALL_DIR}/Frameworks/Houdini.framework/Versions/Current/Libraries/libhboost_python313-mt-a64.dylib" }, "cacheVariables": { "CMAKE_PREFIX_PATH": "$env{DEPS_ROOT};$env{PREFIX_PXR}", @@ -57,7 +71,7 @@ "binaryDir": "$env{BUILD_DIR}", "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", - "CMAKE_INSTALL_PREFIX": "${sourceParentDir}/installs/openmoonray" + "CMAKE_INSTALL_PREFIX": "/Applications/MoonRay/installs/openmoonray" }, "generator": "Xcode" }, @@ -68,9 +82,9 @@ "binaryDir": "$env{BUILD_DIR}", "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", - "CMAKE_INSTALL_PREFIX": "${sourceParentDir}/installs/openmoonray" + "CMAKE_INSTALL_PREFIX": "/Applications/MoonRay/installs/openmoonray" }, - "generator": "Xcode" + "generator": "Unix Makefiles" } ], "buildPresets": [ diff --git a/building/macOS/Boost-no-numpy.patch b/building/macOS/Boost-no-numpy.patch new file mode 100644 index 0000000..f9cef76 --- /dev/null +++ b/building/macOS/Boost-no-numpy.patch @@ -0,0 +1,6 @@ +diff --git a/libs/python/build/Jamfile b/libs/python/build/Jamfile +--- a/libs/python/build/Jamfile ++++ b/libs/python/build/Jamfile +@@ -136,1 +136,1 @@ +-if [ python.configured ] && [ python.numpy ] ++if "" diff --git a/building/macOS/CMakeLists.txt b/building/macOS/CMakeLists.txt index 7ddd663..640a814 100644 --- a/building/macOS/CMakeLists.txt +++ b/building/macOS/CMakeLists.txt @@ -37,8 +37,10 @@ set(THIS_DIR ${CMAKE_CURRENT_SOURCE_DIR}) # User configurable settings set(InstallRoot ${rootSrcDir}/../../../../installs CACHE FILEPATH "Install root for dependencies") -set(PythonVer 3.9.6 CACHE STRING "Python version (n.m), e.g. 3.6") -set(PythonRoot /usr CACHE FILEPATH "Location of Python install") +set(HoudiniInstallRoot "/Applications/Houdini/Houdini22.0.408" CACHE PATH "Houdini installation root") +set(PythonVer 3.13.10 CACHE STRING "Python version (n.m), e.g. 3.6") +set(PythonRoot "${HoudiniInstallRoot}/Frameworks/Python.framework/Versions/3.13" CACHE FILEPATH "Location of Python install") +set(HoudiniPython "${PythonRoot}/Resources/Python.app/Contents/MacOS/Python" CACHE FILEPATH "Houdini Python executable") # Arguments shared by every CMake-based dependency: policy floor for CMake 4, # find dependencies only in ${InstallRoot}, never in homebrew, and install @@ -61,12 +63,12 @@ ExternalProject_Add(Blosc set(CHAIN Blosc) ExternalProject_Add(Boost - URL https://archives.boost.io/release/1.85.0/source/boost_1_85_0.tar.gz - https://downloads.sourceforge.net/project/boost/boost/1.85.0/boost_1_85_0.tar.gz - URL_HASH SHA256=be0d91732d5b0cc6fbb275c7939974457e79b54d6f07ce2e3dfdd68bef883b0b + URL https://archives.boost.io/release/1.88.0/source/boost_1_88_0.tar.gz + https://downloads.sourceforge.net/project/boost/boost/1.88.0/boost_1_88_0.tar.gz UPDATE_COMMAND ./bootstrap.sh --prefix=${InstallRoot} --with-toolset=clang linkflags="-arch ${BOOST_ARCH}" CONFIGURE_COMMAND "" PATCH_COMMAND patch -p3 -N < ${THIS_DIR}/Boost.patch || true + COMMAND patch -p1 -N < ${THIS_DIR}/Boost-no-numpy.patch || true COMMAND /usr/bin/perl -0pi -e "s/boost-install boost_python boost_numpy/boost-install boost_python/" libs/python/build/Jamfile BUILD_COMMAND ./b2 install ${JOBS_ARG} --user-config=${THIS_DIR}/user-config.jam --with-python --with-iostreams --with-atomic --with-chrono --with-date_time --with-filesystem --with-program_options --with-regex --with-system --with-thread variant=release link=shared threading=multi architecture=arm address-model=64 define=BOOST_UNORDERED_HAVE_PIECEWISE_CONSTRUCT=0 BUILD_IN_SOURCE 1 @@ -113,7 +115,7 @@ set(CHAIN MicroHttpd) ExternalProject_Add(OpenSubdiv GIT_REPOSITORY https://github.com/PixarAnimationStudios/OpenSubdiv - GIT_TAG d303eb5071fd3ce148e37d8f7fcd8f212143fe1a # v3_6_0 + GIT_TAG 4951f30c00f395aa831a9fc42577cc28ce46fa81 # v3_7_0 BUILD_COMMAND make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} @@ -126,7 +128,7 @@ set(CHAIN OpenSubdiv) ExternalProject_Add(Imath GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/Imath - GIT_TAG c0396a055a01bc537d32f435aee11a9b7ed6f0b5 # v3.1.12 + GIT_TAG 1e480d11cb98b032a2dece9b9a8730512effc7f6 # v3.2.2 BUILD_COMMAND make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} @@ -139,7 +141,7 @@ set(CHAIN Imath) ExternalProject_Add(OpenEXR GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/openexr - GIT_TAG 55d1a1404cec5b4b187009d9f7fe55a5622ac4e5 # v3.3.2 + GIT_TAG 4b7ce9c503d0b069f58f07f915f7682c4030cbf1 # v3.4.3 BUILD_COMMAND make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} @@ -173,7 +175,7 @@ set(CHAIN TBB) ExternalProject_Add(OpenVDB GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/openvdb - GIT_TAG f552aab85926ecd22abffdb0165815023c375447 # v12.0.1 + GIT_TAG 7c03e1f084873cd1b3422c7ff7aec6ee681b3b38 # v13.0.0 BUILD_COMMAND make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} @@ -260,7 +262,7 @@ set(CHAIN embree) ExternalProject_Add(OpenColorIO GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/OpenColorIO - GIT_TAG ebd076ae6c4362d089edfbc63d8fbf3d7538ea01 # v2.4.1 + GIT_TAG 592a122b37467c3376f2387fbbdbe7b571fad39f # v2.5.0 BUILD_COMMAND ${CMAKE_COMMAND} -E env ${POLICY_MIN_ENV} make ${JOBS_ARG} CMAKE_ARGS ${COMMON_CMAKE_ARGS} @@ -272,7 +274,7 @@ ExternalProject_Add(OpenColorIO -DOCIO_BUILD_PYTHON=OFF -DBUILD_SHARED_LIBS=ON -DOCIO_BUILD_STATIC=OFF - -DCMAKE_CXX_STANDARD=17 + -DCMAKE_CXX_STANDARD=20 DEPENDS ${CHAIN} ) set(CHAIN OpenColorIO) @@ -329,7 +331,10 @@ ExternalProject_Add(OpenImageIO -DCMAKE_BUILD_TYPE=Release -DUSE_QT=0 -DUSE_PYTHON=1 - -DPython_EXECUTABLE=/usr/bin/python3 + -DPython_EXECUTABLE=${HoudiniPython} + -DPython_ROOT=${PythonRoot} + -DPython_LIBRARIES=${PythonRoot}/lib/libpython3.13.dylib + -DPython_INCLUDE_DIR=${PythonRoot}/include/python3.13 -DUSE_OPENVDB=0 -DUSE_FFMPEG=0 -DUSE_OPENCV=0 @@ -342,8 +347,7 @@ ExternalProject_Add(OpenImageIO set(CHAIN OpenImageIO) ExternalProject_Add(OpenImageDenoise - URL https://github.com/OpenImageDenoise/oidn/releases/download/v2.2.0/oidn-2.2.0.arm64.macos.tar.gz - URL_HASH SHA256=16cdaddabeb0f2af22fc8e466317c1a14a54b6ec03db2ac343e17fad40c70f3f + URL https://github.com/OpenImageDenoise/oidn/releases/download/v2.3.3/oidn-2.3.3.arm64.macos.tar.gz BUILD_COMMAND "" CONFIGURE_COMMAND "" INSTALL_COMMAND bash -c "rm -f ../OpenImageDenoise/lib/libtbb*.dylib" @@ -352,6 +356,8 @@ ExternalProject_Add(OpenImageDenoise ) set(CHAIN OpenImageDenoise) +option(NO_QT "Skip building the Qt dependency" OFF) +if(NOT NO_QT) ExternalProject_Add(qt5 GIT_REPOSITORY https://code.qt.io/qt/qt5.git GIT_SUBMODULES_RECURSE false @@ -366,6 +372,22 @@ ExternalProject_Add(qt5 DEPENDS ${CHAIN} ) set(CHAIN qt5) +endif() + +ExternalProject_Add(MaterialX + GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/MaterialX + GIT_TAG 7b64921ef1d42f2d57871e9d2c43dc11f041f26b # v1.39.5 + BUILD_COMMAND make ${JOBS_ARG} + CMAKE_ARGS + ${COMMON_CMAKE_ARGS} + -DMATERIALX_BUILD_PYTHON=OFF + -DMATERIALX_BUILD_TESTS=OFF + -DMATERIALX_BUILD_VIEWER=OFF + -DMATERIALX_BUILD_GRAPH_EDITOR=OFF + -DCMAKE_BUILD_TYPE=Release + DEPENDS ${CHAIN} +) +set(CHAIN MaterialX) if(NOT NO_USD) ExternalProject_Add(USD @@ -418,6 +440,8 @@ set(CHAIN libuuid) ExternalProject_Add(OpenSSL GIT_REPOSITORY https://github.com/openssl/openssl.git + GIT_SHALLOW TRUE + GIT_SUBMODULES "" # GIT_TAG a92271e03a8d0dee507b6f1e7f49512568b2c7ad # 3.1.0 - contains a bug on Apple Silicon GIT_TAG 31157bc0b46e04227b8468d3e6915e4d0332777c # 3.0.8 CONFIGURE_COMMAND ./Configure darwin64-arm64 --prefix=${InstallRoot} --openssldir=${InstallRoot} -rpath ${InstallRoot}/lib diff --git a/building/macOS/houdini-usd-fixes/boost/asio/io_service.hpp b/building/macOS/houdini-usd-fixes/boost/asio/io_service.hpp new file mode 100644 index 0000000..47282e9 --- /dev/null +++ b/building/macOS/houdini-usd-fixes/boost/asio/io_service.hpp @@ -0,0 +1,8 @@ +// Compatibility shim for Boost 1.88, which folded io_service into io_context. +#pragma once + +#include + +namespace boost::asio { +using io_service = io_context; +} diff --git a/building/macOS/pxr-houdini/pxrConfig.cmake b/building/macOS/pxr-houdini/pxrConfig.cmake index 28237a8..7cf0ae0 100644 --- a/building/macOS/pxr-houdini/pxrConfig.cmake +++ b/building/macOS/pxr-houdini/pxrConfig.cmake @@ -17,12 +17,12 @@ get_filename_component(PXR_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) set(PXR_MAJOR_VERSION "0") -set(PXR_MINOR_VERSION "22") +set(PXR_MINOR_VERSION "26") set(PXR_PATCH_VERSION "5") -set(PXR_VERSION "2205") +set(PXR_VERSION "2605") include("${PXR_CMAKE_DIR}/pxrTargets.cmake") -set(libs "arch;tf;gf;js;trace;work;plug;vt;ar;kind;sdf;ndr;sdr;pcp;usd;usdGeom;usdVol;usdMedia;usdShade;usdLux;usdRender;usdHydra;usdRi;usdSkel;usdUI;usdUtils;usdPhysics;garch;hf;hio;cameraUtil;pxOsd;glf;hgi;hgiGL;hgiInterop;hd;hdSt;hdx;usdImaging;usdImagingGL;usdRiImaging;usdSkelImaging;usdVolImaging;usdAppUtils;usdviewq") +set(libs "arch;tf;gf;js;trace;work;plug;vt;ar;kind;sdf;sdr;pcp;usd;usdGeom;usdVol;usdMedia;usdShade;usdLux;usdRender;usdHydra;usdRi;usdSkel;usdUI;usdUtils;usdPhysics;garch;hf;hio;cameraUtil;pxOsd;glf;hgi;hgiGL;hgiInterop;hd;hdsi;hdSt;hdx;hdMtlx;usdImaging;usdImagingGL;usdSkelImaging;usdVolImaging;usdAppUtils;usdMtlx") set(PXR_LIBRARIES "") set(PXR_INCLUDE_DIRS "$ENV{PXR_INCLUDE_PREFIX}") string(REPLACE " " ";" libs "${libs}") diff --git a/building/macOS/pxr-houdini/pxrTargets-release.cmake b/building/macOS/pxr-houdini/pxrTargets-release.cmake index ae3a89d..e56ea95 100644 --- a/building/macOS/pxr-houdini/pxrTargets-release.cmake +++ b/building/macOS/pxr-houdini/pxrTargets-release.cmake @@ -118,16 +118,6 @@ set_target_properties(sdf PROPERTIES list(APPEND _IMPORT_CHECK_TARGETS sdf ) list(APPEND _IMPORT_CHECK_FILES_FOR_sdf "${_LIB_PREFIX}/libpxr_sdf.dylib" ) -# Import target "ndr" for configuration "Release" -set_property(TARGET ndr APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) -set_target_properties(ndr PROPERTIES - IMPORTED_LOCATION_RELEASE "${_LIB_PREFIX}/libpxr_ndr.dylib" - IMPORTED_SONAME_RELEASE "libpxr_ndr.dylib" - ) - -list(APPEND _IMPORT_CHECK_TARGETS ndr ) -list(APPEND _IMPORT_CHECK_FILES_FOR_ndr "${_LIB_PREFIX}/libpxr_ndr.dylib" ) - # Import target "sdr" for configuration "Release" set_property(TARGET sdr APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(sdr PROPERTIES @@ -378,6 +368,23 @@ set_target_properties(hd PROPERTIES list(APPEND _IMPORT_CHECK_TARGETS hd ) list(APPEND _IMPORT_CHECK_FILES_FOR_hd "${_LIB_PREFIX}/libpxr_hd.dylib" ) +# Import target "hdSt" for configuration "Release" +set_property(TARGET hdsi APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(hdsi PROPERTIES + IMPORTED_LOCATION_RELEASE "${_LIB_PREFIX}/libpxr_hdsi.dylib" + IMPORTED_SONAME_RELEASE "libpxr_hdsi.dylib" + ) +list(APPEND _IMPORT_CHECK_TARGETS hdsi ) +list(APPEND _IMPORT_CHECK_FILES_FOR_hdsi "${_LIB_PREFIX}/libpxr_hdsi.dylib" ) + +set_property(TARGET hdMtlx APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(hdMtlx PROPERTIES + IMPORTED_LOCATION_RELEASE "${_LIB_PREFIX}/libpxr_hdMtlx.dylib" + IMPORTED_SONAME_RELEASE "libpxr_hdMtlx.dylib" + ) +list(APPEND _IMPORT_CHECK_TARGETS hdMtlx ) +list(APPEND _IMPORT_CHECK_FILES_FOR_hdMtlx "${_LIB_PREFIX}/libpxr_hdMtlx.dylib" ) + # Import target "hdSt" for configuration "Release" set_property(TARGET hdSt APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(hdSt PROPERTIES @@ -398,6 +405,15 @@ set_target_properties(hdx PROPERTIES list(APPEND _IMPORT_CHECK_TARGETS hdx ) list(APPEND _IMPORT_CHECK_FILES_FOR_hdx "${_LIB_PREFIX}/libpxr_hdx.dylib" ) +# Import target "usdImaging" for configuration "Release" +set_property(TARGET usdMtlx APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(usdMtlx PROPERTIES + IMPORTED_LOCATION_RELEASE "${_LIB_PREFIX}/libpxr_usdMtlx.dylib" + IMPORTED_SONAME_RELEASE "libpxr_usdMtlx.dylib" + ) +list(APPEND _IMPORT_CHECK_TARGETS usdMtlx ) +list(APPEND _IMPORT_CHECK_FILES_FOR_usdMtlx "${_LIB_PREFIX}/libpxr_usdMtlx.dylib" ) + # Import target "usdImaging" for configuration "Release" set_property(TARGET usdImaging APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(usdImaging PROPERTIES @@ -418,16 +434,6 @@ set_target_properties(usdImagingGL PROPERTIES list(APPEND _IMPORT_CHECK_TARGETS usdImagingGL ) list(APPEND _IMPORT_CHECK_FILES_FOR_usdImagingGL "${_LIB_PREFIX}/libpxr_usdImagingGL.dylib" ) -# Import target "usdRiImaging" for configuration "Release" -set_property(TARGET usdRiImaging APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) -set_target_properties(usdRiImaging PROPERTIES - IMPORTED_LOCATION_RELEASE "${_LIB_PREFIX}/libpxr_usdRiImaging.dylib" - IMPORTED_SONAME_RELEASE "libpxr_usdRiImaging.dylib" - ) - -list(APPEND _IMPORT_CHECK_TARGETS usdRiImaging ) -list(APPEND _IMPORT_CHECK_FILES_FOR_usdRiImaging "${_LIB_PREFIX}/libpxr_usdRiImaging.dylib" ) - # Import target "usdSkelImaging" for configuration "Release" set_property(TARGET usdSkelImaging APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_target_properties(usdSkelImaging PROPERTIES diff --git a/building/macOS/pxr-houdini/pxrTargets.cmake b/building/macOS/pxr-houdini/pxrTargets.cmake index f3cd6fe..adfbb7a 100644 --- a/building/macOS/pxr-houdini/pxrTargets.cmake +++ b/building/macOS/pxr-houdini/pxrTargets.cmake @@ -17,14 +17,14 @@ cmake_policy(VERSION 2.6...3.21) # Commands may need to know the format version. set(CMAKE_IMPORT_FILE_VERSION 1) -SET(HPYTHONLIB $ENV{HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/3.9/lib/libpython3.9.dylib) -SET(HPYTHONINC $ENV{HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/3.9/include/python3.9) +SET(HPYTHONLIB $ENV{HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/3.13/lib/libpython3.13.dylib) +SET(HPYTHONINC $ENV{HOUDINI_INSTALL_DIR}/Frameworks/Python.framework/Versions/3.13/include/python3.13) # Protect against multiple inclusion, which would fail when already imported targets are added once more. set(_targetsDefined) set(_targetsNotDefined) set(_expectedTargets) -foreach(_expectedTarget arch tf gf js trace work plug vt ar kind sdf ndr sdr pcp usd usdGeom usdVol usdMedia usdShade usdLux usdRender usdHydra usdRi usdSkel usdUI usdUtils usdPhysics garch hf hio cameraUtil pxOsd glf hgi hgiGL hgiInterop hd hdSt hdx usdImaging usdImagingGL usdRiImaging usdSkelImaging usdVolImaging usdAppUtils usdviewq) +foreach(_expectedTarget arch tf gf js trace work plug vt ar kind sdf sdr pcp usd usdGeom usdVol usdMedia usdShade usdLux usdRender usdHydra usdRi usdSkel usdUI usdUtils usdPhysics garch hf hio cameraUtil pxOsd glf hgi hgiGL hgiInterop hd hdsi hdSt hdx hdMtlx usdImaging usdImagingGL usdSkelImaging usdVolImaging usdAppUtils usdMtlx usdviewq) list(APPEND _expectedTargets ${_expectedTarget}) if(NOT TARGET ${_expectedTarget}) list(APPEND _targetsNotDefined ${_expectedTarget}) @@ -161,23 +161,13 @@ set_target_properties(sdf PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" ) -# Create imported target ndr -add_library(ndr SHARED IMPORTED) - -set_target_properties(ndr PROPERTIES - INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" - INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" - INTERFACE_LINK_LIBRARIES "tf;plug;vt;work;ar;sdf;${_BOOST_PYTHON_LIB}" - INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" -) - # Create imported target sdr add_library(sdr SHARED IMPORTED) set_target_properties(sdr PROPERTIES INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" - INTERFACE_LINK_LIBRARIES "tf;vt;ar;ndr;sdf;${_BOOST_PYTHON_LIB}" + INTERFACE_LINK_LIBRARIES "tf;vt;ar;sdf;${_BOOST_PYTHON_LIB}" INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" ) @@ -235,7 +225,7 @@ add_library(usdShade SHARED IMPORTED) set_target_properties(usdShade PROPERTIES INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" - INTERFACE_LINK_LIBRARIES "tf;vt;sdf;ndr;sdr;usd;usdGeom" + INTERFACE_LINK_LIBRARIES "tf;vt;sdf;sdr;usd;usdGeom" ) # Create imported target usdLux @@ -244,7 +234,7 @@ add_library(usdLux SHARED IMPORTED) set_target_properties(usdLux PROPERTIES INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" - INTERFACE_LINK_LIBRARIES "tf;vt;ndr;sdf;usd;usdGeom;usdShade" + INTERFACE_LINK_LIBRARIES "tf;vt;sdf;usd;usdGeom;usdShade" ) # Create imported target usdRender @@ -409,6 +399,26 @@ set_target_properties(hd PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" ) +# Create imported target hdSt +add_library(hdsi SHARED IMPORTED) + +set_target_properties(hdsi PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" + INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" + INTERFACE_LINK_LIBRARIES "hd;tf;plug;vt;sdf;usd;usdGeom;usdShade;usdImaging" + INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" +) + +# Create imported target hdMtlx +add_library(hdMtlx SHARED IMPORTED) + +set_target_properties(hdMtlx PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" + INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" + INTERFACE_LINK_LIBRARIES "hd;hdsi;sdr;usd;usdShade;usdMtlx" + INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" +) + # Create imported target hdSt add_library(hdSt SHARED IMPORTED) @@ -428,6 +438,16 @@ set_target_properties(hdx PROPERTIES INTERFACE_LINK_LIBRARIES "plug;tf;vt;gf;work;garch;glf;pxOsd;hd;hdSt;hgi;hgiInterop;cameraUtil;sdf" ) +# Create imported target usdImaging +add_library(usdMtlx SHARED IMPORTED) + +set_target_properties(usdMtlx PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" + INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" + INTERFACE_LINK_LIBRARIES "usd;usdShade;usdGeom;${_BOOST_PYTHON_LIB}" + INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" +) + # Create imported target usdImaging add_library(usdImaging SHARED IMPORTED) @@ -448,16 +468,6 @@ set_target_properties(usdImagingGL PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${HPYTHONINC};${_DEPS_PREFIX}/include" ) -# Create imported target usdRiImaging -add_library(usdRiImaging SHARED IMPORTED) - -set_target_properties(usdRiImaging PROPERTIES - INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" - INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" - INTERFACE_LINK_LIBRARIES "gf;tf;plug;trace;vt;work;hd;pxOsd;sdf;usd;usdGeom;usdLux;usdShade;usdImaging;usdVol;ar;${_DEPS_PREFIX}/lib/libtbb${CMAKE_SHARED_LIBRARY_SUFFIX}" - INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" -) - # Create imported target usdSkelImaging add_library(usdSkelImaging SHARED IMPORTED) @@ -491,9 +501,9 @@ add_library(usdviewq SHARED IMPORTED) set_target_properties(usdviewq PROPERTIES INTERFACE_COMPILE_DEFINITIONS "PXR_PYTHON_ENABLED=1" - INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX}" - INTERFACE_LINK_LIBRARIES "tf;usd;usdGeom;${_BOOST_PYTHON_LIB}" - INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_DEPS_PREFIX}/include" + INTERFACE_INCLUDE_DIRECTORIES "${_INCLUDE_PREFIX};${HPYTHONINC}" + INTERFACE_LINK_LIBRARIES "tf;usd;usdGeom;hd;${_BOOST_PYTHON_LIB};${HPYTHONLIB}" + INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${HPYTHONINC};${_DEPS_PREFIX}/include" ) if(CMAKE_VERSION VERSION_LESS 2.8.12) diff --git a/building/macOS/user-config.jam b/building/macOS/user-config.jam index dd729f7..bf3dd2a 100644 --- a/building/macOS/user-config.jam +++ b/building/macOS/user-config.jam @@ -1,6 +1,6 @@ -using python : 3.9 - : "/Library/Developer/CommandLineTools/usr/bin/python3" - : "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/Headers" - : "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib" +using python : 3.13 + : "/Applications/Houdini/Houdini22.0.408/Frameworks/Python.framework/Versions/3.13/Resources/Python.app/Contents/MacOS/Python" + : "/Applications/Houdini/Houdini22.0.408/Frameworks/Python.framework/Versions/3.13/include/python3.13" + : "/Applications/Houdini/Houdini22.0.408/Frameworks/Python.framework/Versions/3.13/lib" ; using clang : : : -"arch arm64" "-arch arm64" ; diff --git a/moonray/hydra/CMakeLists.txt b/moonray/hydra/CMakeLists.txt index d088089..7efbd02 100644 --- a/moonray/hydra/CMakeLists.txt +++ b/moonray/hydra/CMakeLists.txt @@ -2,4 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 add_subdirectory(hdMoonray) -add_subdirectory(moonray_sdr_plugins) +option(BUILD_MOONRAY_SDR_PLUGINS "Build the legacy MoonRay SDR plugins" ON) +if(BUILD_MOONRAY_SDR_PLUGINS) + add_subdirectory(moonray_sdr_plugins) +endif()