Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down Expand Up @@ -92,4 +93,3 @@ if(GLD STREQUAL "$ENV{STUDIO}")
GROUP_READ GROUP_WRITE
WORLD_READ)
endif()

36 changes: 25 additions & 11 deletions CMakeMacOSPresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -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}",
Expand All @@ -20,30 +20,44 @@
"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}"
}
},
{
"name": "macos-environment-houdini",
"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}",
Expand All @@ -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"
},
Expand All @@ -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": [
Expand Down
6 changes: 6 additions & 0 deletions building/macOS/Boost-no-numpy.patch
Original file line number Diff line number Diff line change
@@ -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 ""
120 changes: 91 additions & 29 deletions building/macOS/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -61,13 +63,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.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
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 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
INSTALL_COMMAND ""
DEPENDS ${CHAIN}
Expand Down Expand Up @@ -112,7 +115,7 @@ set(CHAIN MicroHttpd)

ExternalProject_Add(OpenSubdiv
GIT_REPOSITORY https://github.com/PixarAnimationStudios/OpenSubdiv
GIT_TAG 8ffa2b6566be10209529d7a0d1db02a0796b160c # v3_5_0
GIT_TAG 4951f30c00f395aa831a9fc42577cc28ce46fa81 # v3_7_0
BUILD_COMMAND make ${JOBS_ARG}
CMAKE_ARGS
${COMMON_CMAKE_ARGS}
Expand All @@ -123,41 +126,67 @@ ExternalProject_Add(OpenSubdiv
)
set(CHAIN OpenSubdiv)

ExternalProject_Add(Imath
GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/Imath
GIT_TAG 1e480d11cb98b032a2dece9b9a8730512effc7f6 # v3.2.2
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 4b7ce9c503d0b069f58f07f915f7682c4030cbf1 # v3.4.3
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 <BINARY_DIR> --config Release --parallel ${N}
INSTALL_COMMAND ${CMAKE_COMMAND} --install <BINARY_DIR> --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 7c03e1f084873cd1b3422c7ff7aec6ee681b3b38 # v13.0.0
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)
Expand Down Expand Up @@ -233,7 +262,7 @@ set(CHAIN embree)

ExternalProject_Add(OpenColorIO
GIT_REPOSITORY https://github.com/AcademySoftwareFoundation/OpenColorIO
GIT_TAG 056b7b0cb0d087961e9dba75104820e44faf52a1 # v2.0.2
GIT_TAG 592a122b37467c3376f2387fbbdbe7b571fad39f # v2.5.0
BUILD_COMMAND ${CMAKE_COMMAND} -E env ${POLICY_MIN_ENV} make ${JOBS_ARG}
CMAKE_ARGS
${COMMON_CMAKE_ARGS}
Expand All @@ -245,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)
Expand Down Expand Up @@ -286,33 +315,49 @@ 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
-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
-DUSE_WEBP=0
-DUSE_DCMTK=0
-DUSE_OPENJPEG=0
-DUSE_TESTS=0
DEPENDS ${CHAIN}
)
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"
INSTALL_COMMAND bash -c "rm -f ../OpenImageDenoise/lib/libtbb*.dylib"
COMMAND bash -c "ditto ../OpenImageDenoise ${InstallRoot}"
DEPENDS ${CHAIN}
)
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
Expand All @@ -327,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
Expand Down Expand Up @@ -379,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
Expand Down Expand Up @@ -432,4 +495,3 @@ ExternalProject_Add(GLFW
DEPENDS ${CHAIN}
)
set(CHAIN GLFW)

8 changes: 8 additions & 0 deletions building/macOS/houdini-usd-fixes/boost/asio/io_service.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// Compatibility shim for Boost 1.88, which folded io_service into io_context.
#pragma once

#include <boost/asio/io_context.hpp>

namespace boost::asio {
using io_service = io_context;
}
6 changes: 3 additions & 3 deletions building/macOS/pxr-houdini/pxrConfig.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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}")
Expand Down
Loading