Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Molenkamp <github@lazydodo.com>2022-04-19 19:08:51 +0300
committerBrecht Van Lommel <brecht@blender.org>2022-04-20 17:42:16 +0300
commitb9c37608a9e959a896f5358d4ab3d3d001a70833 (patch)
treed1736c251e580e01c01c9a04df5aed098f081bb2
parent7cb6fb01831e94cace6df1a61070e1e88a316ca4 (diff)
Build: upgrade many library dependencies to new versions for Blender 3.2
This only updates the build system, precompiled libraries for the various platforms will be committed over the coming week. New: fmt 8.0.0 level_zero v1.7.15 pystring v1.1.3 robinmap v0.6.2 webp 1.2.2 Updated: alembic 1.8.3 blosc 1.21.1 boost 1.78.0 embree 3.13.3 ffmpeg 5.0 fftw 3.3.10 flac 1.3.4 imath 3.1.4 ispc v1.17.0 jpeg 2.1.3 ogg 1.3.5 oidn 1.4.3 openal 1.21.1 opencolorio 2.1.1 openexr 3.1.4 openimageio v2.3.13.0 openjpeg 2.4.0 opensubdiv v3_4_4 openvdb 9.0.0 osl 1.11.17.0 sdl 2.0.20 tbb 2020_u3 tiff 4.3.0 usd 22.03 vorbis 1.3.7 vpx 1.11.0 x264 35fe20d1b zlib 1.2.12 Implemented by Ray Molenkamp, Sybren Stüvel and Brecht Van Lommel. Ref T95206
-rw-r--r--build_files/build_environment/CMakeLists.txt13
-rw-r--r--build_files/build_environment/cmake/alembic.cmake31
-rw-r--r--build_files/build_environment/cmake/blosc.cmake1
-rw-r--r--build_files/build_environment/cmake/boost.cmake21
-rw-r--r--build_files/build_environment/cmake/boost_build_options.cmake30
-rw-r--r--build_files/build_environment/cmake/download.cmake9
-rw-r--r--build_files/build_environment/cmake/embree.cmake39
-rw-r--r--build_files/build_environment/cmake/fmt.cmake14
-rw-r--r--build_files/build_environment/cmake/harvest.cmake19
-rw-r--r--build_files/build_environment/cmake/imath.cmake24
-rw-r--r--build_files/build_environment/cmake/jpeg.cmake38
-rw-r--r--build_files/build_environment/cmake/level-zero.cmake21
-rw-r--r--build_files/build_environment/cmake/nanovdb.cmake39
-rw-r--r--build_files/build_environment/cmake/opencolorio.cmake19
-rw-r--r--build_files/build_environment/cmake/openexr.cmake8
-rw-r--r--build_files/build_environment/cmake/openimagedenoise.cmake1
-rw-r--r--build_files/build_environment/cmake/openimageio.cmake50
-rw-r--r--build_files/build_environment/cmake/openjpeg.cmake10
-rw-r--r--build_files/build_environment/cmake/opensubdiv.cmake33
-rw-r--r--build_files/build_environment/cmake/openvdb.cmake33
-rw-r--r--build_files/build_environment/cmake/options.cmake23
-rw-r--r--build_files/build_environment/cmake/osl.cmake24
-rw-r--r--build_files/build_environment/cmake/pystring.cmake22
-rw-r--r--build_files/build_environment/cmake/robinmap.cmake22
-rw-r--r--build_files/build_environment/cmake/tiff.cmake8
-rw-r--r--build_files/build_environment/cmake/usd.cmake88
-rw-r--r--build_files/build_environment/cmake/versions.cmake168
-rw-r--r--build_files/build_environment/cmake/webp.cmake12
-rw-r--r--build_files/build_environment/patches/cmakelists_pystring.txt32
-rw-r--r--build_files/build_environment/patches/embree.diff16
-rw-r--r--build_files/build_environment/patches/ispc.diff75
-rw-r--r--build_files/build_environment/patches/level-zero.diff13
-rw-r--r--build_files/build_environment/patches/openvdb.diff45
-rw-r--r--build_files/build_environment/patches/osl.diff19
-rw-r--r--build_files/build_environment/patches/usd.diff231
-rw-r--r--build_files/build_environment/windows/build_deps.cmd13
36 files changed, 583 insertions, 681 deletions
diff --git a/build_files/build_environment/CMakeLists.txt b/build_files/build_environment/CMakeLists.txt
index 40e5c35f990..8f4738d1f1c 100644
--- a/build_files/build_environment/CMakeLists.txt
+++ b/build_files/build_environment/CMakeLists.txt
@@ -29,8 +29,9 @@ cmake_minimum_required(VERSION 3.5)
include(ExternalProject)
include(cmake/check_software.cmake)
-include(cmake/options.cmake)
include(cmake/versions.cmake)
+include(cmake/options.cmake)
+include(cmake/boost_build_options.cmake)
include(cmake/download.cmake)
if(ENABLE_MINGW64)
@@ -46,6 +47,7 @@ include(cmake/png.cmake)
include(cmake/jpeg.cmake)
include(cmake/blosc.cmake)
include(cmake/pthreads.cmake)
+include(cmake/imath.cmake)
include(cmake/openexr.cmake)
include(cmake/brotli.cmake)
include(cmake/freetype.cmake)
@@ -75,7 +77,6 @@ endif()
include(cmake/osl.cmake)
include(cmake/tbb.cmake)
include(cmake/openvdb.cmake)
-include(cmake/nanovdb.cmake)
include(cmake/python.cmake)
option(USE_PIP_NUMPY "Install NumPy using pip wheel instead of building from source" OFF)
if(APPLE AND ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64"))
@@ -94,12 +95,15 @@ include(cmake/pugixml.cmake)
include(cmake/ispc.cmake)
include(cmake/openimagedenoise.cmake)
include(cmake/embree.cmake)
+include(cmake/fmt.cmake)
+include(cmake/robinmap.cmake)
if(NOT APPLE)
include(cmake/xr_openxr.cmake)
endif()
# OpenColorIO and dependencies.
include(cmake/expat.cmake)
+include(cmake/pystring.cmake)
include(cmake/yamlcpp.cmake)
include(cmake/opencolorio.cmake)
@@ -107,8 +111,9 @@ if(BLENDER_PLATFORM_ARM)
include(cmake/sse2neon.cmake)
endif()
-if(WITH_WEBP)
- include(cmake/webp.cmake)
+include(cmake/webp.cmake)
+if(NOT APPLE)
+ include(cmake/level-zero.cmake)
endif()
if(NOT WIN32 OR ENABLE_MINGW64)
diff --git a/build_files/build_environment/cmake/alembic.cmake b/build_files/build_environment/cmake/alembic.cmake
index 29251afe58f..484a7849ace 100644
--- a/build_files/build_environment/cmake/alembic.cmake
+++ b/build_files/build_environment/cmake/alembic.cmake
@@ -1,30 +1,16 @@
# SPDX-License-Identifier: GPL-2.0-or-later
set(ALEMBIC_EXTRA_ARGS
- -DBUILDSTATIC=ON
- -DLINKSTATIC=ON
- -DILMBASE_ROOT=${LIBDIR}/openexr
- -DALEMBIC_ILMBASE_INCLUDE_DIRECTORY=${LIBDIR}/openexr/include/OpenEXR
- -DALEMBIC_ILMBASE_HALF_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}Half${OPENEXR_VERSION_POSTFIX}${LIBEXT}
- -DALEMBIC_ILMBASE_IMATH_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}Imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
- -DALEMBIC_ILMBASE_ILMTHREAD_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${LIBEXT}
- -DALEMBIC_ILMBASE_IEX_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
- -DALEMBIC_ILMBASE_IEXMATH_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}IexMath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
- -DUSE_PYILMBASE=0
- -DUSE_PYALEMBIC=0
- -DUSE_ARNOLD=0
- -DUSE_MAYA=0
- -DUSE_PRMAN=0
- -DUSE_HDF5=Off
- -DUSE_STATIC_HDF5=Off
- -DUSE_TESTS=Off
- -DALEMBIC_NO_OPENGL=1
+ -DImath_ROOT=${LIBDIR}/imath
+ -DUSE_PYALEMBIC=OFF
+ -DUSE_ARNOLD=OFF
+ -DUSE_MAYA=OFF
+ -DUSE_PRMAN=OFF
+ -DUSE_HDF5=OFF
+ -DUSE_TESTS=OFF
-DUSE_BINARIES=ON
- -DALEMBIC_ILMBASE_LINK_STATIC=On
+ -DALEMBIC_ILMBASE_LINK_STATIC=OFF
-DALEMBIC_SHARED_LIBS=OFF
- -DGLUT_INCLUDE_DIR=""
- -DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
- -DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
)
ExternalProject_Add(external_alembic
@@ -55,6 +41,5 @@ endif()
add_dependencies(
external_alembic
- external_zlib
external_openexr
)
diff --git a/build_files/build_environment/cmake/blosc.cmake b/build_files/build_environment/cmake/blosc.cmake
index 57817a075c7..7dfa8853a8a 100644
--- a/build_files/build_environment/cmake/blosc.cmake
+++ b/build_files/build_environment/cmake/blosc.cmake
@@ -24,7 +24,6 @@ ExternalProject_Add(external_blosc
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH ${BLOSC_HASH_TYPE}=${BLOSC_HASH}
PREFIX ${BUILD_DIR}/blosc
- PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/blosc/src/external_blosc < ${PATCH_DIR}/blosc.diff
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/blosc ${DEFAULT_CMAKE_FLAGS} ${BLOSC_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/blosc
)
diff --git a/build_files/build_environment/cmake/boost.cmake b/build_files/build_environment/cmake/boost.cmake
index ca60bf832f5..57088e59cee 100644
--- a/build_files/build_environment/cmake/boost.cmake
+++ b/build_files/build_environment/cmake/boost.cmake
@@ -1,22 +1,6 @@
# SPDX-License-Identifier: GPL-2.0-or-later
-set(BOOST_ADDRESS_MODEL 64)
-
-if(BLENDER_PLATFORM_ARM)
- set(BOOST_ARCHITECTURE arm)
-else()
- set(BOOST_ARCHITECTURE x86)
-endif()
-
if(WIN32)
- if(MSVC_VERSION GREATER_EQUAL 1920) # 2019
- set(BOOST_TOOLSET toolset=msvc-14.2)
- set(BOOST_COMPILER_STRING -vc142)
- else() # 2017
- set(BOOST_TOOLSET toolset=msvc-14.1)
- set(BOOST_COMPILER_STRING -vc141)
- endif()
-
set(BOOST_CONFIGURE_COMMAND bootstrap.bat)
set(BOOST_BUILD_COMMAND b2)
set(BOOST_BUILD_OPTIONS runtime-link=shared )
@@ -36,11 +20,6 @@ else()
set(BOOST_BUILD_COMMAND ./b2)
set(BOOST_BUILD_OPTIONS cxxflags=${PLATFORM_CXXFLAGS} --disable-icu boost.locale.icu=off)
set(BOOST_PATCH_COMMAND echo .)
- if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
- set(BOOST_ADDRESS_MODEL 64)
- else()
- set(BOOST_ADDRESS_MODEL 32)
- endif()
endif()
if(WITH_BOOST_PYTHON)
diff --git a/build_files/build_environment/cmake/boost_build_options.cmake b/build_files/build_environment/cmake/boost_build_options.cmake
new file mode 100644
index 00000000000..cc471078fcd
--- /dev/null
+++ b/build_files/build_environment/cmake/boost_build_options.cmake
@@ -0,0 +1,30 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+set(BOOST_ADDRESS_MODEL 64)
+if(BLENDER_PLATFORM_ARM)
+ set(BOOST_ARCHITECTURE arm)
+else()
+ set(BOOST_ARCHITECTURE x86)
+endif()
+
+if(WIN32)
+ if(MSVC_VERSION GREATER_EQUAL 1920) # 2019
+ set(BOOST_TOOLSET toolset=msvc-14.2)
+ set(BOOST_COMPILER_STRING -vc142)
+ else() # 2017
+ set(BOOST_TOOLSET toolset=msvc-14.1)
+ set(BOOST_COMPILER_STRING -vc141)
+ endif()
+endif()
+
+set(DEFAULT_BOOST_FLAGS
+ -DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
+ -DBoost_USE_MULTITHREADED=ON
+ -DBoost_USE_STATIC_LIBS=ON
+ -DBoost_USE_STATIC_RUNTIME=OFF
+ -DBOOST_ROOT=${LIBDIR}/boost
+ -DBoost_NO_SYSTEM_PATHS=ON
+ -DBoost_NO_BOOST_CMAKE=ON
+ -DBoost_ADDITIONAL_VERSIONS=${BOOST_VERSION_SHORT}
+ -DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/
+)
diff --git a/build_files/build_environment/cmake/download.cmake b/build_files/build_environment/cmake/download.cmake
index 5ca46c15d8d..80c53d05c28 100644
--- a/build_files/build_environment/cmake/download.cmake
+++ b/build_files/build_environment/cmake/download.cmake
@@ -71,9 +71,7 @@ download_source(FFMPEG)
download_source(FFTW)
download_source(ICONV)
download_source(SNDFILE)
-if(WITH_WEBP)
- download_source(WEBP)
-endif()
+download_source(WEBP)
download_source(SPNAV)
download_source(JEMALLOC)
download_source(XML2)
@@ -102,3 +100,8 @@ download_source(HARU)
download_source(ZSTD)
download_source(FLEX)
download_source(BROTLI)
+download_source(FMT)
+download_source(ROBINMAP)
+download_source(IMATH)
+download_source(PYSTRING)
+download_source(LEVEL_ZERO)
diff --git a/build_files/build_environment/cmake/embree.cmake b/build_files/build_environment/cmake/embree.cmake
index 229c1800e16..2eafc729111 100644
--- a/build_files/build_environment/cmake/embree.cmake
+++ b/build_files/build_environment/cmake/embree.cmake
@@ -17,6 +17,16 @@ set(EMBREE_EXTRA_ARGS
-DTBB_STATIC_LIB=${TBB_STATIC_LIBRARY}
)
+if(BLENDER_PLATFORM_ARM)
+ set(EMBREE_EXTRA_ARGS
+ ${EMBREE_EXTRA_ARGS}
+ -DEMBREE_MAX_ISA=NEON)
+else()
+ set(EMBREE_EXTRA_ARGS
+ ${EMBREE_EXTRA_ARGS}
+ -DEMBREE_MAX_ISA=AVX2)
+endif()
+
if(TBB_STATIC_LIBRARY)
set(EMBREE_EXTRA_ARGS
${EMBREE_EXTRA_ARGS}
@@ -37,26 +47,15 @@ else()
set(EMBREE_BUILD_DIR)
endif()
-if(BLENDER_PLATFORM_ARM)
- ExternalProject_Add(external_embree
- GIT_REPOSITORY ${EMBREE_ARM_GIT}
- GIT_TAG "blender-arm"
- DOWNLOAD_DIR ${DOWNLOAD_DIR}
- PREFIX ${BUILD_DIR}/embree
- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS}
- INSTALL_DIR ${LIBDIR}/embree
- )
-else()
- ExternalProject_Add(external_embree
- URL file://${PACKAGE_DIR}/${EMBREE_FILE}
- DOWNLOAD_DIR ${DOWNLOAD_DIR}
- URL_HASH ${EMBREE_HASH_TYPE}=${EMBREE_HASH}
- PREFIX ${BUILD_DIR}/embree
- PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/embree/src/external_embree < ${PATCH_DIR}/embree.diff
- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS}
- INSTALL_DIR ${LIBDIR}/embree
- )
-endif()
+ExternalProject_Add(external_embree
+ URL file://${PACKAGE_DIR}/${EMBREE_FILE}
+ DOWNLOAD_DIR ${DOWNLOAD_DIR}
+ URL_HASH ${EMBREE_HASH_TYPE}=${EMBREE_HASH}
+ PREFIX ${BUILD_DIR}/embree
+ PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/embree/src/external_embree < ${PATCH_DIR}/embree.diff
+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS}
+ INSTALL_DIR ${LIBDIR}/embree
+)
add_dependencies(
external_embree
diff --git a/build_files/build_environment/cmake/fmt.cmake b/build_files/build_environment/cmake/fmt.cmake
new file mode 100644
index 00000000000..74cb9e0c8ad
--- /dev/null
+++ b/build_files/build_environment/cmake/fmt.cmake
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+set(FMT_EXTRA_ARGS
+ -DFMT_TEST=Off
+)
+
+ExternalProject_Add(external_fmt
+ URL file://${PACKAGE_DIR}/${FMT_FILE}
+ DOWNLOAD_DIR ${DOWNLOAD_DIR}
+ URL_HASH ${FMT_HASH_TYPE}=${FMT_HASH}
+ PREFIX ${BUILD_DIR}/fmt
+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/fmt ${DEFAULT_CMAKE_FLAGS} ${FMT_EXTRA_ARGS}
+ INSTALL_DIR ${LIBDIR}/fmt
+)
diff --git a/build_files/build_environment/cmake/harvest.cmake b/build_files/build_environment/cmake/harvest.cmake
index 28f921b30d8..2e23c23998a 100644
--- a/build_files/build_environment/cmake/harvest.cmake
+++ b/build_files/build_environment/cmake/harvest.cmake
@@ -14,8 +14,8 @@ if(WIN32)
if(BUILD_MODE STREQUAL Release)
add_custom_target(Harvest_Release_Results
COMMAND # jpeg rename libfile + copy include
- ${CMAKE_COMMAND} -E copy ${LIBDIR}/jpg/lib/jpeg-static.lib ${HARVEST_TARGET}/jpeg/lib/libjpeg.lib &&
- ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/jpg/include/ ${HARVEST_TARGET}/jpeg/include/ &&
+ ${CMAKE_COMMAND} -E copy ${LIBDIR}/jpeg/lib/jpeg-static.lib ${HARVEST_TARGET}/jpeg/lib/libjpeg.lib &&
+ ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/jpeg/include/ ${HARVEST_TARGET}/jpeg/include/ &&
# png
${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_static.lib ${HARVEST_TARGET}/png/lib/libpng.lib &&
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/png/include/ ${HARVEST_TARGET}/png/include/ &&
@@ -67,6 +67,8 @@ harvest(brotli/include brotli/include "*.h")
harvest(brotli/lib brotli/lib "*.a")
harvest(boost/include boost/include "*")
harvest(boost/lib boost/lib "*.a")
+harvest(imath/include imath/include "*.h")
+harvest(imath/lib imath/lib "*.a")
harvest(ffmpeg/include ffmpeg/include "*.h")
harvest(ffmpeg/lib ffmpeg/lib "*.a")
harvest(fftw3/include fftw3/include "*.h")
@@ -80,9 +82,13 @@ harvest(gmp/include gmp/include "*.h")
harvest(gmp/lib gmp/lib "*.a")
harvest(jemalloc/include jemalloc/include "*.h")
harvest(jemalloc/lib jemalloc/lib "*.a")
-harvest(jpg/include jpeg/include "*.h")
-harvest(jpg/lib jpeg/lib "libjpeg.a")
+harvest(jpeg/include jpeg/include "*.h")
+harvest(jpeg/lib jpeg/lib "libjpeg.a")
harvest(lame/lib ffmpeg/lib "*.a")
+if(NOT APPLE)
+ harvest(level-zero/include/level_zero level-zero/include/level_zero "*.h")
+ harvest(level-zero/lib level-zero/lib "*.a")
+endif()
harvest(llvm/bin llvm/bin "clang-format")
if(BUILD_CLANG_TOOLS)
harvest(llvm/bin llvm/bin "clang-tidy")
@@ -135,7 +141,7 @@ harvest(openimagedenoise/include openimagedenoise/include "*")
harvest(openimagedenoise/lib openimagedenoise/lib "*.a")
harvest(embree/include embree/include "*.h")
harvest(embree/lib embree/lib "*.a")
-harvest(openjpeg/include/openjpeg-2.3 openjpeg/include "*.h")
+harvest(openjpeg/include/openjpeg-${OPENJPEG_SHORT_VERSION} openjpeg/include "*.h")
harvest(openjpeg/lib openjpeg/lib "*.a")
harvest(opensubdiv/include opensubdiv/include "*.h")
harvest(opensubdiv/lib opensubdiv/lib "*.a")
@@ -169,9 +175,10 @@ harvest(tiff/lib tiff/lib "*.a")
harvest(vorbis/lib ffmpeg/lib "*.a")
harvest(opus/lib ffmpeg/lib "*.a")
harvest(vpx/lib ffmpeg/lib "*.a")
-harvest(webp/lib ffmpeg/lib "*.a")
harvest(x264/lib ffmpeg/lib "*.a")
harvest(xvidcore/lib ffmpeg/lib "*.a")
+harvest(webp/lib webp/lib "*.a")
+harvest(webp/include webp/include "*.h")
harvest(usd/include usd/include "*.h")
harvest(usd/lib/usd usd/lib/usd "*")
harvest(usd/plugin usd/plugin "*")
diff --git a/build_files/build_environment/cmake/imath.cmake b/build_files/build_environment/cmake/imath.cmake
new file mode 100644
index 00000000000..eb5465e6d37
--- /dev/null
+++ b/build_files/build_environment/cmake/imath.cmake
@@ -0,0 +1,24 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+set(IMATH_EXTRA_ARGS
+ -DBUILD_SHARED_LIBS=OFF
+ -DBUILD_TESTING=OFF
+ -DIMATH_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
+)
+
+ExternalProject_Add(external_imath
+ URL file://${PACKAGE_DIR}/${IMATH_FILE}
+ DOWNLOAD_DIR ${DOWNLOAD_DIR}
+ URL_HASH ${IMATH_HASH_TYPE}=${IMATH_HASH}
+ PREFIX ${BUILD_DIR}/imath
+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/imath ${DEFAULT_CMAKE_FLAGS} ${IMATH_EXTRA_ARGS}
+ INSTALL_DIR ${LIBDIR}/imath
+)
+
+if(WIN32)
+ ExternalProject_Add_Step(external_imath after_install
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/imath/lib ${HARVEST_TARGET}/imath/lib
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/imath/include ${HARVEST_TARGET}/imath/include
+ DEPENDEES install
+ )
+endif()
diff --git a/build_files/build_environment/cmake/jpeg.cmake b/build_files/build_environment/cmake/jpeg.cmake
index 7c37f2cd25e..39388ad466b 100644
--- a/build_files/build_environment/cmake/jpeg.cmake
+++ b/build_files/build_environment/cmake/jpeg.cmake
@@ -2,44 +2,52 @@
if(WIN32)
# cmake for windows
- set(JPEG_EXTRA_ARGS -DNASM=${NASM_PATH} -DWITH_JPEG8=ON -DCMAKE_DEBUG_POSTFIX=d -DWITH_CRT_DLL=On)
+ set(JPEG_EXTRA_ARGS
+ -DNASM=${NASM_PATH}
+ -DWITH_JPEG8=ON
+ -DCMAKE_DEBUG_POSTFIX=d
+ -DWITH_CRT_DLL=On
+ -DENABLE_SHARED=OFF
+ -DENABLE_STATIC=ON
+ )
ExternalProject_Add(external_jpeg
URL file://${PACKAGE_DIR}/${JPEG_FILE}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH ${JPEG_HASH_TYPE}=${JPEG_HASH}
- PREFIX ${BUILD_DIR}/jpg
- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
- INSTALL_DIR ${LIBDIR}/jpg
+ PREFIX ${BUILD_DIR}/jpeg
+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpeg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
+ INSTALL_DIR ${LIBDIR}/jpeg
)
- if(BUILD_MODE STREQUAL Debug)
- ExternalProject_Add_Step(external_jpeg after_install
- COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/jpg/lib/jpegd${LIBEXT} ${LIBDIR}/jpg/lib/jpeg${LIBEXT}
- DEPENDEES install
- )
- endif()
-
if(BUILD_MODE STREQUAL Release)
set(JPEG_LIBRARY jpeg-static${LIBEXT})
else()
set(JPEG_LIBRARY jpeg-staticd${LIBEXT})
endif()
+
+ if(BUILD_MODE STREQUAL Release)
+ ExternalProject_Add_Step(external_jpeg after_install
+ COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/jpeg/lib/${JPEG_LIBRARY} ${LIBDIR}/jpeg/lib/jpeg${LIBEXT}
+ DEPENDEES install
+ )
+ endif()
+
else(WIN32)
# cmake for unix
set(JPEG_EXTRA_ARGS
-DWITH_JPEG8=ON
-DENABLE_STATIC=ON
-DENABLE_SHARED=OFF
- -DCMAKE_INSTALL_LIBDIR=${LIBDIR}/jpg/lib)
+ -DCMAKE_INSTALL_LIBDIR=${LIBDIR}/jpeg/lib)
ExternalProject_Add(external_jpeg
URL file://${PACKAGE_DIR}/${JPEG_FILE}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH ${JPEG_HASH_TYPE}=${JPEG_HASH}
- PREFIX ${BUILD_DIR}/jpg
- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
- INSTALL_DIR ${LIBDIR}/jpg
+ PREFIX ${BUILD_DIR}/jpeg
+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpeg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
+ INSTALL_DIR ${LIBDIR}/jpeg
)
set(JPEG_LIBRARY libjpeg${LIBEXT})
diff --git a/build_files/build_environment/cmake/level-zero.cmake b/build_files/build_environment/cmake/level-zero.cmake
new file mode 100644
index 00000000000..4b1ef034abc
--- /dev/null
+++ b/build_files/build_environment/cmake/level-zero.cmake
@@ -0,0 +1,21 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+set(LEVEL_ZERO_EXTRA_ARGS
+)
+
+ExternalProject_Add(external_level-zero
+ URL file://${PACKAGE_DIR}/${LEVEL_ZERO_FILE}
+ DOWNLOAD_DIR ${DOWNLOAD_DIR}
+ URL_HASH ${LEVEL_ZERO_HASH_TYPE}=${LEVEL_ZERO_HASH}
+ PREFIX ${BUILD_DIR}/level-zero
+ PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/level-zero/src/external_level-zero < ${PATCH_DIR}/level-zero.diff
+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/level-zero ${DEFAULT_CMAKE_FLAGS} ${LEVEL_ZERO_EXTRA_ARGS}
+ INSTALL_DIR ${LIBDIR}/level-zero
+)
+
+if(BUILD_MODE STREQUAL Release AND WIN32)
+ ExternalProject_Add_Step(external_level-zero after_install
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/level-zero ${HARVEST_TARGET}/level-zero
+ DEPENDEES install
+ )
+endif()
diff --git a/build_files/build_environment/cmake/nanovdb.cmake b/build_files/build_environment/cmake/nanovdb.cmake
deleted file mode 100644
index eb6bd618c00..00000000000
--- a/build_files/build_environment/cmake/nanovdb.cmake
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-set(NANOVDB_EXTRA_ARGS
- # NanoVDB is header-only, so only need the install target
- -DNANOVDB_BUILD_UNITTESTS=OFF
- -DNANOVDB_BUILD_EXAMPLES=OFF
- -DNANOVDB_BUILD_BENCHMARK=OFF
- -DNANOVDB_BUILD_DOCS=OFF
- -DNANOVDB_BUILD_TOOLS=OFF
- -DNANOVDB_CUDA_KEEP_PTX=OFF
- # Do not need to include any of the dependencies because of this
- -DNANOVDB_USE_OPENVDB=OFF
- -DNANOVDB_USE_OPENGL=OFF
- -DNANOVDB_USE_OPENCL=OFF
- -DNANOVDB_USE_CUDA=OFF
- -DNANOVDB_USE_TBB=OFF
- -DNANOVDB_USE_BLOSC=OFF
- -DNANOVDB_USE_ZLIB=OFF
- -DNANOVDB_USE_OPTIX=OFF
- -DNANOVDB_ALLOW_FETCHCONTENT=OFF
-)
-
-ExternalProject_Add(nanovdb
- URL file://${PACKAGE_DIR}/${NANOVDB_FILE}
- DOWNLOAD_DIR ${DOWNLOAD_DIR}
- URL_HASH ${NANOVDB_HASH_TYPE}=${NANOVDB_HASH}
- PREFIX ${BUILD_DIR}/nanovdb
- SOURCE_SUBDIR nanovdb
- PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/nanovdb/src/nanovdb < ${PATCH_DIR}/nanovdb.diff
- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/nanovdb ${DEFAULT_CMAKE_FLAGS} ${NANOVDB_EXTRA_ARGS}
- INSTALL_DIR ${LIBDIR}/nanovdb
-)
-
-if(WIN32)
- ExternalProject_Add_Step(nanovdb after_install
- COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/nanovdb/nanovdb ${HARVEST_TARGET}/nanovdb/include/nanovdb
- DEPENDEES install
- )
-endif()
diff --git a/build_files/build_environment/cmake/opencolorio.cmake b/build_files/build_environment/cmake/opencolorio.cmake
index e4ac1ff8890..2246031be83 100644
--- a/build_files/build_environment/cmake/opencolorio.cmake
+++ b/build_files/build_environment/cmake/opencolorio.cmake
@@ -11,13 +11,12 @@ set(OPENCOLORIO_EXTRA_ARGS
-DOCIO_BUILD_GPU_TESTS=OFF
-DOCIO_USE_SSE=ON
- # Manually build ext packages except for pystring, which does not have
- # a CMake or autotools build system that we can easily use.
- -DOCIO_INSTALL_EXT_PACKAGES=MISSING
- -DHalf_ROOT=${LIBDIR}/openexr
- -DHalf_STATIC_LIBRARY=ON
+ -DOCIO_INSTALL_EXT_PACKAGES=NONE
+
-Dexpat_ROOT=${LIBDIR}/expat
-Dyaml-cpp_ROOT=${LIBDIR}/yamlcpp
+ -Dpystring_ROOT=${LIBDIR}/pystring
+ -DImath_ROOT=${LIBDIR}/imath
)
if(BLENDER_PLATFORM_ARM)
@@ -30,7 +29,9 @@ endif()
if(WIN32)
set(OPENCOLORIO_EXTRA_ARGS
${OPENCOLORIO_EXTRA_ARGS}
- -DOCIO_INLINES_HIDDEN=OFF
+ -Dexpat_LIBRARY=${LIBDIR}/expat/lib/libexpatMD
+ -Dyaml-cpp_LIBRARY=${LIBDIR}/expat/lib/libyaml-cppmd.lib
+ -DImath_LIBRARY=${LIBDIR}/imath/lib/imath${OPENEXR_VERSION_POSTFIX}
)
else()
set(OPENCOLORIO_EXTRA_ARGS
@@ -62,7 +63,7 @@ if(WIN32)
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/lib ${HARVEST_TARGET}/opencolorio/lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/yamlcpp/lib/libyaml-cppmd.lib ${HARVEST_TARGET}/opencolorio/lib/libyaml-cpp.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/expat/lib/libexpatMD.lib ${HARVEST_TARGET}/opencolorio/lib/libexpatMD.lib
- COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/opencolorio/src/external_opencolorio-build/ext/dist/lib/pystring.lib ${HARVEST_TARGET}/opencolorio/lib/pystring.lib
+ COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/pystring/lib/pystring.lib ${HARVEST_TARGET}/opencolorio/lib/pystring.lib
DEPENDEES install
)
endif()
@@ -71,7 +72,7 @@ if(WIN32)
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencolorio/lib/Opencolorio.lib ${HARVEST_TARGET}/opencolorio/lib/OpencolorIO_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/yamlcpp/lib/libyaml-cppmdd.lib ${HARVEST_TARGET}/opencolorio/lib/libyaml-cpp_d.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/expat/lib/libexpatdMD.lib ${HARVEST_TARGET}/opencolorio/lib/libexpatdMD.lib
- COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/opencolorio/src/external_opencolorio-build/ext/dist/lib/pystring.lib ${HARVEST_TARGET}/opencolorio/lib/pystring_d.lib
+ COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/pystring/lib/pystring.lib ${HARVEST_TARGET}/opencolorio/lib/pystring_d.lib
DEPENDEES install
)
endif()
@@ -79,7 +80,7 @@ else()
ExternalProject_Add_Step(external_opencolorio after_install
COMMAND cp ${LIBDIR}/yamlcpp/lib/libyaml-cpp.a ${LIBDIR}/opencolorio/lib/
COMMAND cp ${LIBDIR}/expat/lib/libexpat.a ${LIBDIR}/opencolorio/lib/
- COMMAND cp ${BUILD_DIR}/opencolorio/src/external_opencolorio-build/ext/dist/lib/libpystring.a ${LIBDIR}/opencolorio/lib/
+ COMMAND cp ${LIBDIR}/pystring/lib/libpystring.a ${LIBDIR}/opencolorio/lib/
DEPENDEES install
)
endif()
diff --git a/build_files/build_environment/cmake/openexr.cmake b/build_files/build_environment/cmake/openexr.cmake
index 9bebada7a66..d283f638a17 100644
--- a/build_files/build_environment/cmake/openexr.cmake
+++ b/build_files/build_environment/cmake/openexr.cmake
@@ -16,12 +16,10 @@ set(OPENEXR_EXTRA_ARGS
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
-DBUILD_TESTING=OFF
-DOPENEXR_BUILD_BOTH_STATIC_SHARED=OFF
- -DILMBASE_BUILD_BOTH_STATIC_SHARED=OFF
-DBUILD_SHARED_LIBS=OFF
- -DOPENEXR_BUILD_UTILS=OFF
- -DPYILMBASE_ENABLE=OFF
- -DOPENEXR_VIEWERS_ENABLE=OFF
- -DILMBASE_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
+ -DOPENEXR_INSTALL_TOOLS=OFF
+ -DOPENEXR_INSTALL_EXAMPLES=OFF
+ -DImath_DIR=${LIBDIR}/imath/lib/cmake/Imath
-DOPENEXR_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
)
diff --git a/build_files/build_environment/cmake/openimagedenoise.cmake b/build_files/build_environment/cmake/openimagedenoise.cmake
index 8b528de7ee4..3612e91a690 100644
--- a/build_files/build_environment/cmake/openimagedenoise.cmake
+++ b/build_files/build_environment/cmake/openimagedenoise.cmake
@@ -8,6 +8,7 @@ set(OIDN_EXTRA_ARGS
-DOIDN_STATIC_LIB=ON
-DOIDN_STATIC_RUNTIME=OFF
-DISPC_EXECUTABLE=${LIBDIR}/ispc/bin/ispc
+ -DOIDN_FILTER_RTLIGHTMAP=OFF
)
if(WIN32)
diff --git a/build_files/build_environment/cmake/openimageio.cmake b/build_files/build_environment/cmake/openimageio.cmake
index 755cd6fbba9..b7d7ce689a4 100644
--- a/build_files/build_environment/cmake/openimageio.cmake
+++ b/build_files/build_environment/cmake/openimageio.cmake
@@ -23,35 +23,20 @@ else()
set(OIIO_SIMD_FLAGS)
endif()
-if(WITH_WEBP)
- set(WEBP_ARGS
- -DWEBP_INCLUDE_DIR=${LIBDIR}/webp/include
- -DWEBP_LIBRARY=${LIBDIR}/webp/lib/${LIBPREFIX}webp${LIBEXT}
- )
- set(WEBP_DEP external_webp)
-endif()
-
if(MSVC)
set(OPENJPEG_FLAGS
- -DOpenJpeg_ROOT=${LIBDIR}/openjpeg_msvc
+ -DOpenJPEG_ROOT=${LIBDIR}/openjpeg_msvc
)
else()
set(OPENJPEG_FLAGS
- -DOpenJpeg_ROOT=${LIBDIR}/openjpeg
+ -DOpenJPEG_ROOT=${LIBDIR}/openjpeg
)
endif()
set(OPENIMAGEIO_EXTRA_ARGS
-DBUILD_SHARED_LIBS=OFF
${OPENIMAGEIO_LINKSTATIC}
- -DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
- -DBoost_USE_MULTITHREADED=ON
- -DBoost_USE_STATIC_LIBS=ON
- -DBoost_USE_STATIC_RUNTIME=OFF
- -DBOOST_ROOT=${LIBDIR}/boost
- -DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/
- -DBoost_NO_SYSTEM_PATHS=ON
- -DBoost_NO_BOOST_CMAKE=ON
+ ${DEFAULT_BOOST_FLAGS}
-DUSE_LIBSQUISH=OFF
-DUSE_QT5=OFF
-DUSE_NUKE=OFF
@@ -62,7 +47,6 @@ set(OPENIMAGEIO_EXTRA_ARGS
-DUSE_LIBHEIF=OFF
-DUSE_OPENGL=OFF
-DUSE_TBB=OFF
- -DUSE_FIELD3D=OFF
-DUSE_QT=OFF
-DUSE_PYTHON=OFF
-DUSE_GIF=OFF
@@ -73,7 +57,7 @@ set(OPENIMAGEIO_EXTRA_ARGS
-DUSE_FREETYPE=OFF
-DUSE_LIBRAW=OFF
-DUSE_OPENCOLORIO=OFF
- -DUSE_WEBP=${WITH_WEBP}
+ -DUSE_WEBP=ON
-DOIIO_BUILD_TOOLS=${OIIO_TOOLS}
-DOIIO_BUILD_TESTS=OFF
-DBUILD_TESTING=OFF
@@ -83,14 +67,9 @@ set(OPENIMAGEIO_EXTRA_ARGS
-DPNG_PNG_INCLUDE_DIR=${LIBDIR}/png/include
-DTIFF_LIBRARY=${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT}
-DTIFF_INCLUDE_DIR=${LIBDIR}/tiff/include
- -DJPEG_LIBRARY=${LIBDIR}/jpg/lib/${JPEG_LIBRARY}
- -DJPEG_INCLUDE_DIR=${LIBDIR}/jpg/include
+ -DJPEG_LIBRARY=${LIBDIR}/jpeg/lib/${JPEG_LIBRARY}
+ -DJPEG_INCLUDE_DIR=${LIBDIR}/jpeg/include
${OPENJPEG_FLAGS}
- -DOpenEXR_USE_STATIC_LIBS=On
- -DILMBASE_INCLUDE_DIR=${LIBDIR}/openexr/include/
- -DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/
- -DOPENEXR_HALF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Half${OPENEXR_VERSION_POSTFIX}${LIBEXT}
- -DOPENEXR_IMATH_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
@@ -98,8 +77,14 @@ set(OPENIMAGEIO_EXTRA_ARGS
-DUSE_EXTERNAL_PUGIXML=ON
-DPUGIXML_LIBRARY=${LIBDIR}/pugixml/lib/${LIBPREFIX}pugixml${LIBEXT}
-DPUGIXML_INCLUDE_DIR=${LIBDIR}/pugixml/include/
- ${WEBP_FLAGS}
+ -DBUILD_MISSING_ROBINMAP=OFF
+ -DBUILD_MISSING_FMT=OFF
+ -DFMT_INCLUDE_DIR=${LIBDIR}/fmt/include/
+ -DRobinmap_ROOT=${LIBDIR}/robinmap
+ -DWebP_ROOT=${LIBDIR}/webp
${OIIO_SIMD_FLAGS}
+ -DOpenEXR_ROOT=${LIBDIR}/openexr
+ -DImath_ROOT=${LIBDIR}/imath
)
ExternalProject_Add(external_openimageio
@@ -117,12 +102,15 @@ add_dependencies(
external_png
external_zlib
external_openexr
+ external_imath
external_jpeg
external_boost
external_tiff
external_pugixml
+ external_fmt
+ external_robinmap
external_openjpeg${OPENJPEG_POSTFIX}
- ${WEBP_DEP}
+ external_webp
)
if(WIN32)
@@ -137,8 +125,8 @@ if(WIN32)
endif()
if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_openimageio after_install
- COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_d.lib
- COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO_Util.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_Util_d.lib
+ COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO_d.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_d.lib
+ COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO_Util_d.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_Util_d.lib
DEPENDEES install
)
endif()
diff --git a/build_files/build_environment/cmake/openjpeg.cmake b/build_files/build_environment/cmake/openjpeg.cmake
index cdb808d60b4..ac35b5a6cc3 100644
--- a/build_files/build_environment/cmake/openjpeg.cmake
+++ b/build_files/build_environment/cmake/openjpeg.cmake
@@ -3,20 +3,24 @@
# Note the encoder/decoder may use png/tiff/lcms system libraries, but the
# library itself does not depend on them, so should give no problems.
-set(OPENJPEG_EXTRA_ARGS -DBUILD_SHARED_LIBS=OFF)
-
if(WIN32)
set(OPENJPEG_EXTRA_ARGS -G "MSYS Makefiles" -DBUILD_PKGCONFIG_FILES=On)
else()
set(OPENJPEG_EXTRA_ARGS ${DEFAULT_CMAKE_FLAGS})
endif()
+set(OPENJPEG_EXTRA_ARGS
+ ${OPENJPEG_EXTRA_ARGS}
+ -DBUILD_SHARED_LIBS=OFF
+ -DBUILD_CODEC=OFF
+)
+
ExternalProject_Add(external_openjpeg
URL file://${PACKAGE_DIR}/${OPENJPEG_FILE}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH ${OPENJPEG_HASH_TYPE}=${OPENJPEG_HASH}
PREFIX ${BUILD_DIR}/openjpeg
- CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build && ${CMAKE_COMMAND} ${OPENJPEG_EXTRA_ARGS} -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openjpeg -DBUILD_SHARED_LIBS=Off -DBUILD_THIRDPARTY=OFF ${BUILD_DIR}/openjpeg/src/external_openjpeg
+ CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build && ${CMAKE_COMMAND} ${OPENJPEG_EXTRA_ARGS} -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openjpeg ${BUILD_DIR}/openjpeg/src/external_openjpeg
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ && make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ && make install
INSTALL_DIR ${LIBDIR}/openjpeg
diff --git a/build_files/build_environment/cmake/opensubdiv.cmake b/build_files/build_environment/cmake/opensubdiv.cmake
index 847ff3f6daf..6d6e3568406 100644
--- a/build_files/build_environment/cmake/opensubdiv.cmake
+++ b/build_files/build_environment/cmake/opensubdiv.cmake
@@ -1,15 +1,25 @@
# SPDX-License-Identifier: GPL-2.0-or-later
set(OPENSUBDIV_EXTRA_ARGS
+ -DNO_LIB=OFF
-DNO_EXAMPLES=ON
+ -DNO_TUTORIALS=ON
-DNO_REGRESSION=ON
- -DNO_PYTHON=ON
- -DNO_MAYA=ON
-DNO_PTEX=ON
-DNO_DOC=ON
- -DNO_CLEW=OFF
+ -DNO_OMP=ON
+ -DNO_TBB=OFF
+ -DNO_CUDA=ON
-DNO_OPENCL=OFF
- -DNO_TUTORIALS=ON
+ -DNO_CLEW=OFF
+ -DNO_OPENGL=OFF
+ -DNO_METAL=OFF
+ -DNO_DX=ON
+ -DNO_TESTS=ON
+ -DNO_GLTESTS=ON
+ -DNO_GLEW=OFF
+ -DNO_GLFW=OFF
+ -DNO_GLFW_X11=ON
-DGLEW_INCLUDE_DIR=${LIBDIR}/glew/include
-DGLEW_LIBRARY=${LIBDIR}/glew/lib/libGLEW${LIBEXT}
-DGLFW_INCLUDE_DIR=${LIBDIR}/glfw/include
@@ -26,22 +36,11 @@ if(WIN32)
-DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include
-DCUEW_LIBRARY=${LIBDIR}/cuew/lib/cuew${LIBEXT}
)
- if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
- set(OPENSUBDIV_EXTRA_ARGS
- ${OPENSUBDIV_EXTRA_ARGS}
- -DNO_CUDA=OFF
- )
- else()
- set(OPENSUBDIV_EXTRA_ARGS
- ${OPENSUBDIV_EXTRA_ARGS}
- -DNO_CUDA=ON
- )
- endif()
-
else()
set(OPENSUBDIV_EXTRA_ARGS
${OPENSUBDIV_EXTRA_ARGS}
- -DNO_CUDA=ON
+ -DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
+ -DTBB_tbb_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
-DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include
-DCLEW_INCLUDE_DIR=${LIBDIR}/clew/include/CL
-DCLEW_LIBRARY=${LIBDIR}/clew/lib/static/${LIBPREFIX}clew${LIBEXT}
diff --git a/build_files/build_environment/cmake/openvdb.cmake b/build_files/build_environment/cmake/openvdb.cmake
index f1b7c3d1b7d..2d0f62cc1a0 100644
--- a/build_files/build_environment/cmake/openvdb.cmake
+++ b/build_files/build_environment/cmake/openvdb.cmake
@@ -13,6 +13,7 @@ else()
endif()
set(OPENVDB_EXTRA_ARGS
+ ${DEFAULT_BOOST_FLAGS}
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
-DBoost_USE_MULTITHREADED=ON
-DBoost_USE_STATIC_LIBS=ON
@@ -24,22 +25,20 @@ set(OPENVDB_EXTRA_ARGS
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
-DBlosc_INCLUDE_DIR=${LIBDIR}/blosc/include/
-DBlosc_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
- -DOPENVDB_ENABLE_3_ABI_COMPATIBLE=OFF
- -DOPENVDB_BUILD_UNITTESTS=Off
- -DOPENVDB_BUILD_PYTHON_MODULE=Off
+ -DBlosc_LIBRARY_RELEASE=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
+ -DBlosc_LIBRARY_DEBUG=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
+ -DOPENVDB_BUILD_UNITTESTS=OFF
+ -DOPENVDB_BUILD_PYTHON_MODULE=OFF
+ -DOPENVDB_BUILD_NANOVDB=ON
+ -DNANOVDB_BUILD_TOOLS=OFF
-DBlosc_ROOT=${LIBDIR}/blosc/
-DTBB_ROOT=${LIBDIR}/tbb/
- -DOpenEXR_ROOT=${LIBDIR}/openexr
- -DIlmBase_ROOT=${LIBDIR}/openexr
- -DOPENEXR_LIBRARYDIR=${LIBDIR}/openexr/lib
- # All libs live in openexr, even the ilmbase ones
- -DILMBASE_LIBRARYDIR=${LIBDIR}/openexr/lib
-DOPENVDB_CORE_SHARED=${OPENVDB_SHARED}
-DOPENVDB_CORE_STATIC=${OPENVDB_STATIC}
- -DOPENVDB_BUILD_BINARIES=Off
+ -DOPENVDB_BUILD_BINARIES=OFF
-DCMAKE_DEBUG_POSTFIX=_d
- -DILMBASE_USE_STATIC_LIBS=On
- -DOPENEXR_USE_STATIC_LIBS=On
+ -DBLOSC_USE_STATIC_LIBS=ON
+ -DUSE_NANOVDB=ON
)
if(WIN32)
@@ -48,15 +47,6 @@ if(WIN32)
# needs to link pthreads due to it being a blosc dependency
set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}
-DCMAKE_CXX_STANDARD_LIBRARIES="${LIBDIR}/pthreads/lib/pthreadVC3.lib"
- -DUSE_EXR=On
- )
-else()
- # OpenVDB can't find the _static libraries automatically.
- set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}
- -DTbb_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
- -DTbb_tbb_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
- -DTbb_tbbmalloc_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbbmalloc_static${LIBEXT}
- -DTbb_tbbmalloc_proxy_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbbmalloc_proxy_static${LIBEXT}
)
endif()
@@ -74,7 +64,6 @@ add_dependencies(
openvdb
external_tbb
external_boost
- external_openexr
external_zlib
external_blosc
)
@@ -82,7 +71,7 @@ add_dependencies(
if(WIN32)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(openvdb after_install
- COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openvdb/include/openvdb ${HARVEST_TARGET}/openvdb/include/openvdb
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openvdb/include ${HARVEST_TARGET}/openvdb/include
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/openvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb.lib
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/bin/openvdb.dll ${HARVEST_TARGET}/openvdb/bin/openvdb.dll
DEPENDEES install
diff --git a/build_files/build_environment/cmake/options.cmake b/build_files/build_environment/cmake/options.cmake
index 5cf197b59b7..7b9529068f4 100644
--- a/build_files/build_environment/cmake/options.cmake
+++ b/build_files/build_environment/cmake/options.cmake
@@ -3,7 +3,6 @@
if(WIN32)
option(ENABLE_MINGW64 "Enable building of ffmpeg/iconv/libsndfile/fftw3 by installing mingw64" ON)
endif()
-option(WITH_WEBP "Enable building of oiio with webp support" OFF)
option(WITH_BOOST_PYTHON "Enable building of boost with python support" OFF)
cmake_host_system_information(RESULT NUM_CORES QUERY NUMBER_OF_LOGICAL_CORES)
set(MAKE_THREADS ${NUM_CORES} CACHE STRING "Number of threads to run make with")
@@ -42,29 +41,29 @@ if(WIN32)
set(LIBPREFIX "")
# For OIIO and OSL
- set(COMMON_DEFINES /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS)
+ set(COMMON_DEFINES /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS)
if(MSVC_VERSION GREATER 1909)
set(COMMON_MSVC_FLAGS "/Wv:18") #some deps with warnings as error aren't quite ready for dealing with the new 2017 warnings.
endif()
string(APPEND COMMON_MSVC_FLAGS " /bigobj")
if(WITH_OPTIMIZED_DEBUG)
- set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
+ set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
else()
- set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /D_DEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
+ set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /D_DEBUG /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
endif()
- set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "/MD ${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
- set(BLENDER_CMAKE_C_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
- set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
+ set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "/MD ${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
+ set(BLENDER_CMAKE_C_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
+ set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
if(WITH_OPTIMIZED_DEBUG)
- set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
+ set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
else()
- set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /D PLATFORM_WINDOWS /MTd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
+ set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /D PLATFORM_WINDOWS /MTd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
endif()
- set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "/MD /${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
- set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
- set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
+ set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "/MD /${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
+ set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
+ set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
set(PLATFORM_FLAGS)
set(PLATFORM_CXX_FLAGS)
diff --git a/build_files/build_environment/cmake/osl.cmake b/build_files/build_environment/cmake/osl.cmake
index a14ca46334a..9719de94d47 100644
--- a/build_files/build_environment/cmake/osl.cmake
+++ b/build_files/build_environment/cmake/osl.cmake
@@ -3,33 +3,15 @@
if(WIN32)
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
set(OSL_FLEX_BISON -DFLEX_EXECUTABLE=${LIBDIR}/flexbison/win_flex.exe -DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe)
- set(OSL_SIMD_FLAGS -DOIIO_NOSIMD=1 -DOIIO_SIMD=sse2)
else()
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES)
set(OSL_FLEX_BISON)
- set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/${LIBPREFIX}png16${LIBEXT};${LIBDIR}/jpg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}")
+ set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/${LIBPREFIX}png16${LIBEXT};${LIBDIR}/jpeg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}")
endif()
-set(OSL_ILMBASE_CUSTOM_LIBRARIES "${LIBDIR}/openexr/lib/Imath${OPENEXR_VERSION_POSTFIX}.lib^^${LIBDIR}/openexr/lib/Half{OPENEXR_VERSION_POSTFIX}.lib^^${LIBDIR}/openexr/lib/IlmThread${OPENEXR_VERSION_POSTFIX}.lib^^${LIBDIR}/openexr/lib/Iex${OPENEXR_VERSION_POSTFIX}.lib")
-
set(OSL_EXTRA_ARGS
- -DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
- -DBoost_USE_MULTITHREADED=ON
- -DBoost_USE_STATIC_LIBS=ON
- -DBoost_USE_STATIC_RUNTIME=OFF
- -DBOOST_ROOT=${LIBDIR}/boost
- -DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/
- -DBoost_NO_SYSTEM_PATHS=ON
- -DBoost_NO_BOOST_CMAKE=ON
+ ${DEFAULT_BOOST_FLAGS}
-DOpenEXR_ROOT=${LIBDIR}/openexr/
- -DIlmBase_ROOT=${LIBDIR}/openexr/
- -DILMBASE_INCLUDE_DIR=${LIBDIR}/openexr/include/
- -DOPENEXR_HALF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Half${OPENEXR_VERSION_POSTFIX}${LIBEXT}
- -DOPENEXR_IMATH_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
- -DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${LIBEXT}
- -DOPENEXR_IEX_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
- -DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/
- -DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
-DOpenImageIO_ROOT=${LIBDIR}/openimageio/
-DOSL_BUILD_TESTS=OFF
-DOSL_BUILD_MATERIALX=OFF
@@ -49,10 +31,10 @@ set(OSL_EXTRA_ARGS
-DUSE_QT=OFF
-DUSE_Qt5=OFF
-DINSTALL_DOCS=OFF
- ${OSL_SIMD_FLAGS}
-Dpugixml_ROOT=${LIBDIR}/pugixml
-DUSE_PYTHON=OFF
-DCMAKE_CXX_STANDARD=14
+ -DImath_ROOT=${LIBDIR}/imath
)
ExternalProject_Add(external_osl
diff --git a/build_files/build_environment/cmake/pystring.cmake b/build_files/build_environment/cmake/pystring.cmake
new file mode 100644
index 00000000000..dd4ea984f92
--- /dev/null
+++ b/build_files/build_environment/cmake/pystring.cmake
@@ -0,0 +1,22 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+set(PYSTRING_EXTRA_ARGS
+)
+
+ExternalProject_Add(external_pystring
+ URL file://${PACKAGE_DIR}/${PYSTRING_FILE}
+ DOWNLOAD_DIR ${DOWNLOAD_DIR}
+ URL_HASH ${PYSTRING_HASH_TYPE}=${PYSTRING_HASH}
+ PREFIX ${BUILD_DIR}/pystring
+ PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_pystring.txt ${BUILD_DIR}/pystring/src/external_pystring/CMakeLists.txt
+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/pystring ${DEFAULT_CMAKE_FLAGS} ${PYSTRING_EXTRA_ARGS}
+ INSTALL_DIR ${LIBDIR}/pystring
+)
+
+if(WIN32)
+ ExternalProject_Add_Step(external_pystring after_install
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pystring/lib ${HARVEST_TARGET}/pystring/lib
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pystring/include ${HARVEST_TARGET}/pystring/include
+ DEPENDEES install
+ )
+endif()
diff --git a/build_files/build_environment/cmake/robinmap.cmake b/build_files/build_environment/cmake/robinmap.cmake
new file mode 100644
index 00000000000..c2292ae8bb3
--- /dev/null
+++ b/build_files/build_environment/cmake/robinmap.cmake
@@ -0,0 +1,22 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+set(ROBINMAP_EXTRA_ARGS
+)
+
+ExternalProject_Add(external_robinmap
+ URL file://${PACKAGE_DIR}/${ROBINMAP_FILE}
+ DOWNLOAD_DIR ${DOWNLOAD_DIR}
+ URL_HASH ${ROBINMAP_HASH_TYPE}=${ROBINMAP_HASH}
+ PREFIX ${BUILD_DIR}/robinmap
+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/robinmap ${DEFAULT_CMAKE_FLAGS} ${ROBINMAP_EXTRA_ARGS}
+ INSTALL_DIR ${LIBDIR}/robinmap
+)
+
+if(WIN32)
+ if(BUILD_MODE STREQUAL Release)
+ ExternalProject_Add_Step(external_robinmap after_install
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/zstd/include/ ${HARVEST_TARGET}/zstd/include/
+ DEPENDEES install
+ )
+ endif()
+endif()
diff --git a/build_files/build_environment/cmake/tiff.cmake b/build_files/build_environment/cmake/tiff.cmake
index fe64c56d670..bd495df2a4c 100644
--- a/build_files/build_environment/cmake/tiff.cmake
+++ b/build_files/build_environment/cmake/tiff.cmake
@@ -1,11 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-or-later
-if(WITH_WEBP)
- set(WITH_TIFF_WEBP ON)
-else()
- set(WITH_TIFF_WEBP OFF)
-endif()
-
set(TIFF_EXTRA_ARGS
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include
@@ -14,7 +8,7 @@ set(TIFF_EXTRA_ARGS
-Dlzma=OFF
-Djbig=OFF
-Dzstd=OFF
- -Dwebp=${WITH_TIFF_WEBP}
+ -Dwebp=OFF
)
ExternalProject_Add(external_tiff
diff --git a/build_files/build_environment/cmake/usd.cmake b/build_files/build_environment/cmake/usd.cmake
index afa9f788b07..3b5f9d21d95 100644
--- a/build_files/build_environment/cmake/usd.cmake
+++ b/build_files/build_environment/cmake/usd.cmake
@@ -1,39 +1,59 @@
# SPDX-License-Identifier: GPL-2.0-or-later
-set(USD_EXTRA_ARGS
- -DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
- -DBoost_USE_MULTITHREADED=ON
- -DBoost_USE_STATIC_LIBS=ON
- -DBoost_USE_STATIC_RUNTIME=OFF
- -DBOOST_ROOT=${LIBDIR}/boost
- -DBoost_NO_SYSTEM_PATHS=ON
- -DBoost_NO_BOOST_CMAKE=ON
- -DTBB_INCLUDE_DIRS=${LIBDIR}/tbb/include
- -DTBB_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
- -DTbb_TBB_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
- # USD wants the tbb debug lib set even when you are doing a release build
- # Otherwise it will error out during the cmake configure phase.
- -DTBB_LIBRARIES_DEBUG=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
+if(WIN32)
+ # OIIO and OSL are statically linked for us, but USD doesn't know
+ set(USD_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DOIIO_STATIC_DEFINE /DOSL_STATIC_DEFINE")
+ if(BUILD_MODE STREQUAL Debug)
+ # USD does not look for debug libs, nor does it link them
+ # when building static, so this is just to keep find_package happy
+ # if we ever link dynamically on windows util will need to be linked as well.
+ set(USD_OIIO_CMAKE_DEFINES "-DOIIO_LIBRARIES=${LIBDIR}/openimageio/lib/OpenImageIO_d${LIBEXT}")
+ endif()
+ set(USD_PLATFORM_FLAGS
+ ${USD_OIIO_CMAKE_DEFINES}
+ -DCMAKE_CXX_FLAGS=${USD_CXX_FLAGS}
+ )
+endif()
+set(USD_EXTRA_ARGS
+ ${DEFAULT_BOOST_FLAGS}
+ ${USD_PLATFORM_FLAGS}
# This is a preventative measure that avoids possible conflicts when add-ons
# try to load another USD library into the same process space.
-DPXR_SET_INTERNAL_NAMESPACE=usdBlender
-
+ -DOPENSUBDIV_ROOT_DIR=${LIBDIR}/opensubdiv
+ -DOpenImageIO_ROOT=${LIBDIR}/openimageio
+ -DOPENEXR_LIBRARIES=${LIBDIR}/imath/lib/imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
+ -DOPENEXR_INCLUDE_DIR=${LIBDIR}/imath/include
+ -DOSL_ROOT=${LIBDIR}/osl
-DPXR_ENABLE_PYTHON_SUPPORT=OFF
- -DPXR_BUILD_IMAGING=OFF
+ -DPXR_BUILD_IMAGING=ON
-DPXR_BUILD_TESTS=OFF
- -DBUILD_SHARED_LIBS=OFF
+ -DPXR_BUILD_EXAMPLES=OFF
+ -DPXR_BUILD_TUTORIALS=OFF
+ -DPXR_ENABLE_HDF5_SUPPORT=OFF
+ -DPXR_ENABLE_MATERIALX_SUPPORT=OFF
+ -DPXR_ENABLE_OPENVDB_SUPPORT=OFF
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
-DPXR_BUILD_MONOLITHIC=ON
-
- # The PXR_BUILD_USD_TOOLS argument is patched-in by usd.diff. An upstream pull request
- # can be found at https://github.com/PixarAnimationStudios/USD/pull/1048.
+ -DPXR_ENABLE_OSL_SUPPORT=ON
+ -DPXR_BUILD_OPENIMAGEIO_PLUGIN=ON
+ # USD 22.03 does not support OCIO 2.x
+ # Tracking ticket https://github.com/PixarAnimationStudios/USD/issues/1386
+ -DPXR_BUILD_OPENCOLORIO_PLUGIN=OFF
+ -DPXR_ENABLE_PTEX_SUPPORT=OFF
-DPXR_BUILD_USD_TOOLS=OFF
-
-DCMAKE_DEBUG_POSTFIX=_d
+ -DBUILD_SHARED_LIBS=Off
# USD is hellbound on making a shared lib, unless you point this variable to a valid cmake file
# doesn't have to make sense, but as long as it points somewhere valid it will skip the shared lib.
-DPXR_MONOLITHIC_IMPORT=${BUILD_DIR}/usd/src/external_usd/cmake/defaults/Version.cmake
+ -DTBB_INCLUDE_DIRS=${LIBDIR}/tbb/include
+ -DTBB_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
+ -DTbb_TBB_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
+ # USD wants the tbb debug lib set even when you are doing a release build
+ # Otherwise it will error out during the cmake configure phase.
+ -DTBB_LIBRARIES_DEBUG=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
)
ExternalProject_Add(external_usd
@@ -50,37 +70,33 @@ add_dependencies(
external_usd
external_tbb
external_boost
+ external_openimageio
+ external_opensubdiv
+ external_osl
)
# Since USD 21.11 the libraries are prefixed with "usd_", i.e. "libusd_m.a" became "libusd_usd_m.a".
# See https://github.com/PixarAnimationStudios/USD/blob/release/CHANGELOG.md#2111---2021-11-01
-if (USD_VERSION VERSION_LESS 21.11)
- set(PXR_LIB_PREFIX "")
-else()
- set(PXR_LIB_PREFIX "usd_")
+if(NOT WIN32)
+ if (USD_VERSION VERSION_LESS 21.11)
+ set(PXR_LIB_PREFIX "")
+ else()
+ set(PXR_LIB_PREFIX "usd_")
+ endif()
endif()
if(WIN32)
- # USD currently demands python be available at build time
- # and then proceeds not to use it, but still checks that the
- # version of the interpreter it is not going to use is atleast 2.7
- # so we need this dep currently since there is no system python
- # on windows.
- add_dependencies(
- external_usd
- external_python
- )
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_usd after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/usd/ ${HARVEST_TARGET}/usd
- COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/usd/src/external_usd-build/pxr/Release/${PXR_LIB_PREFIX}usd_m.lib ${HARVEST_TARGET}/usd/lib/lib${PXR_LIB_PREFIX}usd_m.lib
+ COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/usd/src/external_usd-build/pxr/Release/usd_usd_m.lib ${HARVEST_TARGET}/usd/lib/usd_usd_m.lib
DEPENDEES install
)
endif()
if(BUILD_MODE STREQUAL Debug)
ExternalProject_Add_Step(external_usd after_install
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/usd/lib ${HARVEST_TARGET}/usd/lib
- COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/usd/src/external_usd-build/pxr/Debug/${PXR_LIB_PREFIX}usd_m_d.lib ${HARVEST_TARGET}/usd/lib/lib${PXR_LIB_PREFIX}usd_m_d.lib
+ COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/usd/src/external_usd-build/pxr/Debug/usd_usd_m_d.lib ${HARVEST_TARGET}/usd/lib/usd_usd_m_d.lib
DEPENDEES install
)
endif()
diff --git a/build_files/build_environment/cmake/versions.cmake b/build_files/build_environment/cmake/versions.cmake
index d4cccb05ce4..de7aed23834 100644
--- a/build_files/build_environment/cmake/versions.cmake
+++ b/build_files/build_environment/cmake/versions.cmake
@@ -1,14 +1,14 @@
# SPDX-License-Identifier: GPL-2.0-or-later
-set(ZLIB_VERSION 1.2.11)
+set(ZLIB_VERSION 1.2.12)
set(ZLIB_URI https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz)
-set(ZLIB_HASH 1c9f62f0778697a09d36121ead88e08e)
+set(ZLIB_HASH 5fc414a9726be31427b440b434d05f78)
set(ZLIB_HASH_TYPE MD5)
set(ZLIB_FILE zlib-${ZLIB_VERSION}.tar.gz)
-set(OPENAL_VERSION 1.20.1)
+set(OPENAL_VERSION 1.21.1)
set(OPENAL_URI http://openal-soft.org/openal-releases/openal-soft-${OPENAL_VERSION}.tar.bz2)
-set(OPENAL_HASH 556695068ce8375b89986083d810fd35)
+set(OPENAL_HASH a936806ebd8de417b0ffd8cf3f48f456)
set(OPENAL_HASH_TYPE MD5)
set(OPENAL_FILE openal-soft-${OPENAL_VERSION}.tar.bz2)
@@ -18,24 +18,24 @@ set(PNG_HASH 505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca)
set(PNG_HASH_TYPE SHA256)
set(PNG_FILE libpng-${PNG_VERSION}.tar.xz)
-set(JPEG_VERSION 2.0.4)
+set(JPEG_VERSION 2.1.3)
set(JPEG_URI https://github.com/libjpeg-turbo/libjpeg-turbo/archive/${JPEG_VERSION}.tar.gz)
-set(JPEG_HASH 44c43e4a9fb352f47090804529317c88)
+set(JPEG_HASH 627b980fad0573e08e4c3b80b290fc91)
set(JPEG_HASH_TYPE MD5)
set(JPEG_FILE libjpeg-turbo-${JPEG_VERSION}.tar.gz)
-set(BOOST_VERSION 1.73.0)
-set(BOOST_VERSION_NODOTS 1_73_0)
-set(BOOST_VERSION_NODOTS_SHORT 1_73)
+set(BOOST_VERSION 1.78.0)
+set(BOOST_VERSION_SHORT 1.78)
+set(BOOST_VERSION_NODOTS 1_78_0)
+set(BOOST_VERSION_NODOTS_SHORT 1_78)
set(BOOST_URI https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION}/source/boost_${BOOST_VERSION_NODOTS}.tar.gz)
-set(BOOST_HASH 4036cd27ef7548b8d29c30ea10956196)
+set(BOOST_HASH c2f6428ac52b0e5a3c9b2e1d8cc832b5)
set(BOOST_HASH_TYPE MD5)
set(BOOST_FILE boost_${BOOST_VERSION_NODOTS}.tar.gz)
-# Using old version as recommended by OpenVDB build documentation.
-set(BLOSC_VERSION 1.5.0)
+set(BLOSC_VERSION 1.21.1)
set(BLOSC_URI https://github.com/Blosc/c-blosc/archive/v${BLOSC_VERSION}.tar.gz)
-set(BLOSC_HASH 6e4a49c8c06f05aa543f3312cfce3d55)
+set(BLOSC_HASH 134b55813b1dca57019d2a2dc1f7a923)
set(BLOSC_HASH_TYPE MD5)
set(BLOSC_FILE blosc-${BLOSC_VERSION}.tar.gz)
@@ -45,12 +45,19 @@ set(PTHREADS_HASH f3bf81bb395840b3446197bcf4ecd653)
set(PTHREADS_HASH_TYPE MD5)
set(PTHREADS_FILE pthreads4w-code-${PTHREADS_VERSION}.zip)
-set(OPENEXR_VERSION 2.5.5)
+set(OPENEXR_VERSION 3.1.4)
set(OPENEXR_URI https://github.com/AcademySoftwareFoundation/openexr/archive/v${OPENEXR_VERSION}.tar.gz)
-set(OPENEXR_HASH 85e8a979092c9055d10ed103062d31a0)
+set(OPENEXR_HASH e990be1ff765797bc2d93a8060e1c1f2)
set(OPENEXR_HASH_TYPE MD5)
set(OPENEXR_FILE openexr-${OPENEXR_VERSION}.tar.gz)
+set(IMATH_VERSION 3.1.4)
+set(IMATH_URI https://github.com/AcademySoftwareFoundation/Imath/archive/v${OPENEXR_VERSION}.tar.gz)
+set(IMATH_HASH fddf14ec73e12c34e74c3c175e311a3f)
+set(IMATH_HASH_TYPE MD5)
+set(IMATH_FILE imath-${IMATH_VERSION}.tar.gz)
+
+
if(WIN32)
# Openexr started appending _d on its own so now
# we need to tell the build the postfix is _s while
@@ -85,9 +92,9 @@ set(FREEGLUT_HASH 90c3ca4dd9d51cf32276bc5344ec9754)
set(FREEGLUT_HASH_TYPE MD5)
set(FREEGLUT_FILE freeglut-${FREEGLUT_VERSION}.tar.gz)
-set(ALEMBIC_VERSION 1.7.16)
+set(ALEMBIC_VERSION 1.8.3)
set(ALEMBIC_URI https://github.com/alembic/alembic/archive/${ALEMBIC_VERSION}.tar.gz)
-set(ALEMBIC_HASH effcc86e42fe6605588e3de57bde6677)
+set(ALEMBIC_HASH 2cd8d6e5a3ac4a014e24a4b04f4fadf9)
set(ALEMBIC_HASH_TYPE MD5)
set(ALEMBIC_FILE alembic-${ALEMBIC_VERSION}.tar.gz)
@@ -112,15 +119,15 @@ set(CUEW_HASH 86760d62978ebfd96cd93f5aa1abaf4a)
set(CUEW_HASH_TYPE MD5)
set(CUEW_FILE cuew-${CUEW_GIT_UID}.zip)
-set(OPENSUBDIV_VERSION v3_4_3)
+set(OPENSUBDIV_VERSION v3_4_4)
set(OPENSUBDIV_URI https://github.com/PixarAnimationStudios/OpenSubdiv/archive/${OPENSUBDIV_VERSION}.tar.gz)
-set(OPENSUBDIV_HASH 7bbfa275d021fb829e521df749160edb)
+set(OPENSUBDIV_HASH 39ecc5caf0abebc943d1ce131855e76e)
set(OPENSUBDIV_HASH_TYPE MD5)
set(OPENSUBDIV_FILE opensubdiv-${OPENSUBDIV_VERSION}.tar.gz)
-set(SDL_VERSION 2.0.12)
+set(SDL_VERSION 2.0.20)
set(SDL_URI https://www.libsdl.org/release/SDL2-${SDL_VERSION}.tar.gz)
-set(SDL_HASH 783b6f2df8ff02b19bb5ce492b99c8ff)
+set(SDL_HASH a53acc02e1cca98c4123229069b67c9e)
set(SDL_HASH_TYPE MD5)
set(SDL_FILE SDL2-${SDL_VERSION}.tar.gz)
@@ -130,9 +137,9 @@ set(OPENCOLLADA_HASH ee7dae874019fea7be11613d07567493)
set(OPENCOLLADA_HASH_TYPE MD5)
set(OPENCOLLADA_FILE opencollada-${OPENCOLLADA_VERSION}.tar.gz)
-set(OPENCOLORIO_VERSION 2.0.0)
+set(OPENCOLORIO_VERSION 2.1.1)
set(OPENCOLORIO_URI https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/v${OPENCOLORIO_VERSION}.tar.gz)
-set(OPENCOLORIO_HASH 1a2e3478b6cd9a1549f24e1b2205e3f0)
+set(OPENCOLORIO_HASH 604f562e073f23d88ce89ed4f7f709ba)
set(OPENCOLORIO_HASH_TYPE MD5)
set(OPENCOLORIO_FILE OpenColorIO-${OPENCOLORIO_VERSION}.tar.gz)
@@ -155,21 +162,37 @@ set(OPENMP_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${
set(OPENMP_HASH_TYPE MD5)
set(OPENMP_FILE openmp-${OPENMP_VERSION}.src.tar.xz)
-set(OPENIMAGEIO_VERSION 2.2.15.1)
-set(OPENIMAGEIO_URI https://github.com/OpenImageIO/oiio/archive/Release-${OPENIMAGEIO_VERSION}.tar.gz)
-set(OPENIMAGEIO_HASH 3db5c5f0b3dc91597c75e5df09eb9072)
+set(OPENIMAGEIO_VERSION v2.3.13.0)
+set(OPENIMAGEIO_URI https://github.com/OpenImageIO/oiio/archive/refs/tags/${OPENIMAGEIO_VERSION}.tar.gz)
+set(OPENIMAGEIO_HASH de45fb38501c4581062b522b53b6141c)
set(OPENIMAGEIO_HASH_TYPE MD5)
set(OPENIMAGEIO_FILE OpenImageIO-${OPENIMAGEIO_VERSION}.tar.gz)
-set(TIFF_VERSION 4.1.0)
+# 8.0.0 is currently oiio's preferred vesion although never versions may be available.
+# the preferred version can be found in oiio's externalpackages.cmake
+set(FMT_VERSION 8.0.0)
+set(FMT_URI https://github.com/fmtlib/fmt/archive/refs/tags/${FMT_VERSION}.tar.gz)
+set(FMT_HASH 7bce0e9e022e586b178b150002e7c2339994e3c2bbe44027e9abb0d60f9cce83)
+set(FMT_HASH_TYPE SHA256)
+set(FMT_FILE fmt-${FMT_VERSION}.tar.gz)
+
+# 0.6.2 is currently oiio's preferred vesion although never versions may be available.
+# the preferred version can be found in oiio's externalpackages.cmake
+set(ROBINMAP_VERSION v0.6.2)
+set(ROBINMAP_URI https://github.com/Tessil/robin-map/archive/refs/tags/${ROBINMAP_VERSION}.tar.gz)
+set(ROBINMAP_HASH c08ec4b1bf1c85eb0d6432244a6a89862229da1cb834f3f90fba8dc35d8c8ef1)
+set(ROBINMAP_HASH_TYPE SHA256)
+set(ROBINMAP_FILE robinmap-${ROBINMAP_VERSION}.tar.gz)
+
+set(TIFF_VERSION 4.3.0)
set(TIFF_URI http://download.osgeo.org/libtiff/tiff-${TIFF_VERSION}.tar.gz)
-set(TIFF_HASH 2165e7aba557463acc0664e71a3ed424)
+set(TIFF_HASH 0a2e4744d1426a8fc8211c0cdbc3a1b3)
set(TIFF_HASH_TYPE MD5)
set(TIFF_FILE tiff-${TIFF_VERSION}.tar.gz)
-set(OSL_VERSION 1.11.14.1)
+set(OSL_VERSION 1.11.17.0)
set(OSL_URI https://github.com/imageworks/OpenShadingLanguage/archive/Release-${OSL_VERSION}.tar.gz)
-set(OSL_HASH 1abd7ce40481771a9fa937f19595d2f2)
+set(OSL_HASH 63265472ce14548839ace2e21e401544)
set(OSL_HASH_TYPE MD5)
set(OSL_FILE OpenShadingLanguage-${OSL_VERSION}.tar.gz)
@@ -181,24 +204,18 @@ set(PYTHON_HASH 14e8c22458ed7779a1957b26cde01db9)
set(PYTHON_HASH_TYPE MD5)
set(PYTHON_FILE Python-${PYTHON_VERSION}.tar.xz)
-set(TBB_VERSION 2020_U2)
+set(TBB_VERSION 2020_U3)
set(TBB_URI https://github.com/oneapi-src/oneTBB/archive/${TBB_VERSION}.tar.gz)
-set(TBB_HASH 1b711ae956524855088df3bbf5ec65dc)
+set(TBB_HASH 55ec8df6eae5ed6364a47f0e671e460c)
set(TBB_HASH_TYPE MD5)
set(TBB_FILE oneTBB-${TBB_VERSION}.tar.gz)
-set(OPENVDB_VERSION 8.0.1)
+set(OPENVDB_VERSION 9.0.0)
set(OPENVDB_URI https://github.com/AcademySoftwareFoundation/openvdb/archive/v${OPENVDB_VERSION}.tar.gz)
-set(OPENVDB_HASH 01b490be16cc0e15c690f9a153c21461)
+set(OPENVDB_HASH 684ce40c2f74f3a0c9cac530e1c7b07e)
set(OPENVDB_HASH_TYPE MD5)
set(OPENVDB_FILE openvdb-${OPENVDB_VERSION}.tar.gz)
-set(NANOVDB_GIT_UID dc37d8a631922e7bef46712947dc19b755f3e841)
-set(NANOVDB_URI https://github.com/AcademySoftwareFoundation/openvdb/archive/${NANOVDB_GIT_UID}.tar.gz)
-set(NANOVDB_HASH e7b9e863ec2f3b04ead171dec2322807)
-set(NANOVDB_HASH_TYPE MD5)
-set(NANOVDB_FILE nano-vdb-${NANOVDB_GIT_UID}.tar.gz)
-
set(IDNA_VERSION 3.3)
set(CHARSET_NORMALIZER_VERSION 2.0.10)
set(URLLIB3_VERSION 1.26.8)
@@ -222,15 +239,15 @@ set(LAME_HASH 83e260acbe4389b54fe08e0bdbf7cddb)
set(LAME_HASH_TYPE MD5)
set(LAME_FILE lame-${LAME_VERSION}.tar.gz)
-set(OGG_VERSION 1.3.4)
+set(OGG_VERSION 1.3.5)
set(OGG_URI http://downloads.xiph.org/releases/ogg/libogg-${OGG_VERSION}.tar.gz)
-set(OGG_HASH fe5670640bd49e828d64d2879c31cb4dde9758681bb664f9bdbf159a01b0c76e)
+set(OGG_HASH 0eb4b4b9420a0f51db142ba3f9c64b333f826532dc0f48c6410ae51f4799b664)
set(OGG_HASH_TYPE SHA256)
set(OGG_FILE libogg-${OGG_VERSION}.tar.gz)
-set(VORBIS_VERSION 1.3.6)
+set(VORBIS_VERSION 1.3.7)
set(VORBIS_URI http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERSION}.tar.gz)
-set(VORBIS_HASH 6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb)
+set(VORBIS_HASH 0e982409a9c3fc82ee06e08205b1355e5c6aa4c36bca58146ef399621b0ce5ab)
set(VORBIS_HASH_TYPE SHA256)
set(VORBIS_FILE libvorbis-${VORBIS_VERSION}.tar.gz)
@@ -240,15 +257,15 @@ set(THEORA_HASH b6ae1ee2fa3d42ac489287d3ec34c5885730b1296f0801ae577a35193d3affbc
set(THEORA_HASH_TYPE SHA256)
set(THEORA_FILE libtheora-${THEORA_VERSION}.tar.bz2)
-set(FLAC_VERSION 1.3.3)
+set(FLAC_VERSION 1.3.4)
set(FLAC_URI http://downloads.xiph.org/releases/flac/flac-${FLAC_VERSION}.tar.xz)
-set(FLAC_HASH 213e82bd716c9de6db2f98bcadbc4c24c7e2efe8c75939a1a84e28539c4e1748)
+set(FLAC_HASH 8ff0607e75a322dd7cd6ec48f4f225471404ae2730d0ea945127b1355155e737 )
set(FLAC_HASH_TYPE SHA256)
set(FLAC_FILE flac-${FLAC_VERSION}.tar.xz)
-set(VPX_VERSION 1.8.2)
+set(VPX_VERSION 1.11.0)
set(VPX_URI https://github.com/webmproject/libvpx/archive/v${VPX_VERSION}/libvpx-v${VPX_VERSION}.tar.gz)
-set(VPX_HASH 8735d9fcd1a781ae6917f28f239a8aa358ce4864ba113ea18af4bb2dc8b474ac)
+set(VPX_HASH 965e51c91ad9851e2337aebcc0f517440c637c506f3a03948062e3d5ea129a83)
set(VPX_HASH_TYPE SHA256)
set(VPX_FILE libvpx-v${VPX_VERSION}.tar.gz)
@@ -258,9 +275,9 @@ set(OPUS_HASH 65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d)
set(OPUS_HASH_TYPE SHA256)
set(OPUS_FILE opus-${OPUS_VERSION}.tar.gz)
-set(X264_VERSION 33f9e1474613f59392be5ab6a7e7abf60fa63622)
+set(X264_VERSION 35fe20d1ba49918ec739a5b068c208ca82f977f7)
set(X264_URI https://code.videolan.org/videolan/x264/-/archive/${X264_VERSION}/x264-${X264_VERSION}.tar.gz)
-set(X264_HASH 5456450ee1ae02cd2328be3157367a232a0ab73315e8c8f80dab80469524f525)
+set(X264_HASH bb4f7da03936b5a030ed5827133b58eb3f701d7e5dce32cca4ba6df93797d42e)
set(X264_HASH_TYPE SHA256)
set(X264_FILE x264-${X264_VERSION}.tar.gz)
@@ -270,22 +287,22 @@ set(XVIDCORE_HASH abbdcbd39555691dd1c9b4d08f0a031376a3b211652c0d8b3b8aa9be1303ce
set(XVIDCORE_HASH_TYPE SHA256)
set(XVIDCORE_FILE xvidcore-${XVIDCORE_VERSION}.tar.gz)
-set(OPENJPEG_VERSION 2.3.1)
-set(OPENJPEG_SHORT_VERSION 2.3)
+set(OPENJPEG_VERSION 2.4.0)
+set(OPENJPEG_SHORT_VERSION 2.4)
set(OPENJPEG_URI https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz)
-set(OPENJPEG_HASH 63f5a4713ecafc86de51bfad89cc07bb788e9bba24ebbf0c4ca637621aadb6a9)
+set(OPENJPEG_HASH 8702ba68b442657f11aaeb2b338443ca8d5fb95b0d845757968a7be31ef7f16d)
set(OPENJPEG_HASH_TYPE SHA256)
set(OPENJPEG_FILE openjpeg-v${OPENJPEG_VERSION}.tar.gz)
-set(FFMPEG_VERSION 4.4)
+set(FFMPEG_VERSION 5.0)
set(FFMPEG_URI http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2)
-set(FFMPEG_HASH 42093549751b582cf0f338a21a3664f52e0a9fbe0d238d3c992005e493607d0e)
+set(FFMPEG_HASH c0130b8db2c763430fd1c6905288d61bc44ee0548ad5fcd2dfd650b88432bed9)
set(FFMPEG_HASH_TYPE SHA256)
set(FFMPEG_FILE ffmpeg-${FFMPEG_VERSION}.tar.bz2)
-set(FFTW_VERSION 3.3.8)
+set(FFTW_VERSION 3.3.10)
set(FFTW_URI http://www.fftw.org/fftw-${FFTW_VERSION}.tar.gz)
-set(FFTW_HASH 8aac833c943d8e90d51b697b27d4384d)
+set(FFTW_HASH 8ccbf6a5ea78a16dbc3e1306e234cc5c)
set(FFTW_HASH_TYPE MD5)
set(FFTW_FILE fftw-${FFTW_VERSION}.tar.gz)
@@ -301,9 +318,9 @@ set(SNDFILE_HASH 646b5f98ce89ac60cdb060fcd398247c)
set(SNDFILE_HASH_TYPE MD5)
set(SNDFILE_FILE libsndfile-${SNDFILE_VERSION}.tar.gz)
-set(WEBP_VERSION 0.6.1)
+set(WEBP_VERSION 1.2.2)
set(WEBP_URI https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz)
-set(WEBP_HASH b49ce9c3e3e9acae4d91bca44bb85a72)
+set(WEBP_HASH b5e2e414a8adee4c25fe56b18dd9c549)
set(WEBP_HASH_TYPE MD5)
set(WEBP_FILE libwebp-${WEBP_VERSION}.tar.gz)
@@ -338,9 +355,15 @@ set(YAMLCPP_HASH b45bf1089a382e81f6b661062c10d0c2)
set(YAMLCPP_HASH_TYPE MD5)
set(YAMLCPP_FILE yaml-cpp-${YAMLCPP_VERSION}.tar.gz)
-set(EXPAT_VERSION 2_2_10)
+set(PYSTRING_VERSION v1.1.3)
+set(PYSTRING_URI https://codeload.github.com/imageworks/pystring/tar.gz/refs/tags/${PYSTRING_VERSION})
+set(PYSTRING_HASH f2c68786b359f5e4e62bed53bc4fb86d)
+set(PYSTRING_HASH_TYPE MD5)
+set(PYSTRING_FILE pystring-${PYSTRING_VERSION}.tar.gz)
+
+set(EXPAT_VERSION 2_4_4)
set(EXPAT_URI https://github.com/libexpat/libexpat/archive/R_${EXPAT_VERSION}.tar.gz)
-set(EXPAT_HASH 7ca5f09959fcb9a57618368deb627b9f)
+set(EXPAT_HASH 2d3e81dee94b452369dc6394ff0f8f98)
set(EXPAT_HASH_TYPE MD5)
set(EXPAT_FILE libexpat-${EXPAT_VERSION}.tar.gz)
@@ -405,22 +428,21 @@ set(SQLITE_HASH fb558c49ee21a837713c4f1e7e413309aabdd9c7)
set(SQLITE_HASH_TYPE SHA1)
set(SQLITE_FILE sqlite-src-3240000.zip)
-set(EMBREE_VERSION 3.10.0)
+set(EMBREE_VERSION 3.13.3)
set(EMBREE_URI https://github.com/embree/embree/archive/v${EMBREE_VERSION}.zip)
-set(EMBREE_HASH 4bbe29e7eaa46417efc75fc5f1e8eb87)
+set(EMBREE_HASH f62766ba54e48a2f327c3a22596e7133)
set(EMBREE_HASH_TYPE MD5)
set(EMBREE_FILE embree-v${EMBREE_VERSION}.zip)
-set(EMBREE_ARM_GIT https://github.com/brechtvl/embree.git)
-set(USD_VERSION 21.02)
+set(USD_VERSION 22.03)
set(USD_URI https://github.com/PixarAnimationStudios/USD/archive/v${USD_VERSION}.tar.gz)
-set(USD_HASH 1dd1e2092d085ed393c1f7c450a4155a)
+set(USD_HASH e0e441a05057692a83124a1195b09eed)
set(USD_HASH_TYPE MD5)
set(USD_FILE usd-v${USD_VERSION}.tar.gz)
-set(OIDN_VERSION 1.4.1)
+set(OIDN_VERSION 1.4.3)
set(OIDN_URI https://github.com/OpenImageDenoise/oidn/releases/download/v${OIDN_VERSION}/oidn-${OIDN_VERSION}.src.tar.gz)
-set(OIDN_HASH df4007b0ab93b1c41cdf223b075d01c0)
+set(OIDN_HASH 027093eaf5e8b4e45835b991137b38e6)
set(OIDN_HASH_TYPE MD5)
set(OIDN_FILE oidn-${OIDN_VERSION}.src.tar.gz)
@@ -454,9 +476,9 @@ set(WL_PROTOCOLS_URI https://gitlab.freedesktop.org/wayland/wayland-protocols/-/
set(WL_PROTOCOLS_HASH af5ca07e13517cdbab33504492cef54a)
set(WL_PROTOCOLS_HASH_TYPE MD5)
-set(ISPC_VERSION v1.16.0)
+set(ISPC_VERSION v1.17.0)
set(ISPC_URI https://github.com/ispc/ispc/archive/${ISPC_VERSION}.tar.gz)
-set(ISPC_HASH 2e3abedbc0ea9aaec17d6562c632454d)
+set(ISPC_HASH 4f476a3109332a77fe839a9014c60ca9)
set(ISPC_HASH_TYPE MD5)
set(ISPC_FILE ispc-${ISPC_VERSION}.tar.gz)
@@ -492,3 +514,9 @@ set(BROTLI_URI https://github.com/google/brotli/archive/refs/tags/${BROTLI_VERSI
set(BROTLI_HASH f9e8d81d0405ba66d181529af42a3354f838c939095ff99930da6aa9cdf6fe46)
set(BROTLI_HASH_TYPE SHA256)
set(BROTLI_FILE brotli-${BROTLI_VERSION}.tar.gz)
+
+set(LEVEL_ZERO_VERSION v1.7.15)
+set(LEVEL_ZERO_URI https://github.com/oneapi-src/level-zero/archive/refs/tags/${LEVEL_ZERO_VERSION}.tar.gz)
+set(LEVEL_ZERO_HASH c39bb05a8e5898aa6c444e1704105b93d3f1888b9c333f8e7e73825ffbfb2617)
+set(LEVEL_ZERO_HASH_TYPE SHA256)
+set(LEVEL_ZERO_FILE level-zero-${LEVEL_ZERO_VERSION}.tar.gz)
diff --git a/build_files/build_environment/cmake/webp.cmake b/build_files/build_environment/cmake/webp.cmake
index 472d93cd15d..285c0748fab 100644
--- a/build_files/build_environment/cmake/webp.cmake
+++ b/build_files/build_environment/cmake/webp.cmake
@@ -4,9 +4,15 @@
# library itself does not depend on them, so should give no problems.
set(WEBP_EXTRA_ARGS
- -DWEBP_HAVE_SSE2=ON
- -DWEBP_HAVE_SSE41=OFF
- -DWEBP_HAVE_AVX2=OFF
+ -DWEBP_BUILD_ANIM_UTILS=OFF
+ -DWEBP_BUILD_CWEBP=OFF
+ -DWEBP_BUILD_DWEBP=OFF
+ -DWEBP_BUILD_GIF2WEBP=OFF
+ -DWEBP_BUILD_IMG2WEBP=OFF
+ -DWEBP_BUILD_VWEBP=OFF
+ -DWEBP_BUILD_WEBPINFO=OFF
+ -DWEBP_BUILD_WEBPMUX=OFF
+ -DWEBP_BUILD_EXTRAS=OFF
)
if(WIN32)
diff --git a/build_files/build_environment/patches/cmakelists_pystring.txt b/build_files/build_environment/patches/cmakelists_pystring.txt
new file mode 100644
index 00000000000..0a6dee7939d
--- /dev/null
+++ b/build_files/build_environment/patches/cmakelists_pystring.txt
@@ -0,0 +1,32 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright Contributors to the OpenColorIO Project.
+
+project(pystring)
+
+cmake_minimum_required(VERSION 3.10)
+
+set(HEADERS
+ pystring.h
+)
+
+set(SOURCES
+ pystring.cpp
+)
+
+add_library(${PROJECT_NAME} STATIC ${HEADERS} ${SOURCES})
+
+if(UNIX)
+ set(pystring_CXX_FLAGS "${pystring_CXX_FLAGS} -fPIC")
+endif()
+
+set_target_properties(${PROJECT_NAME} PROPERTIES
+ COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} ${pystring_CXX_FLAGS}"
+ PUBLIC_HEADER "${HEADERS}"
+)
+
+install(TARGETS ${PROJECT_NAME}
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ PUBLIC_HEADER DESTINATION include/pystring
+)
diff --git a/build_files/build_environment/patches/embree.diff b/build_files/build_environment/patches/embree.diff
index 9b2c66feaf7..e83d754a465 100644
--- a/build_files/build_environment/patches/embree.diff
+++ b/build_files/build_environment/patches/embree.diff
@@ -12,3 +12,19 @@ diff -Naur orig/common/sys/platform.h external_embree/common/sys/platform.h
#else
#define dll_export __attribute__ ((visibility ("default")))
#define dll_import
+diff --git orig/common/tasking/CMakeLists.txt external_embree/common/tasking/CMakeLists.txt
+--- orig/common/tasking/CMakeLists.txt
++++ external_embree/common/tasking/CMakeLists.txt
+@@ -27,7 +27,11 @@
+ else()
+ # If not found try getting older TBB via module (FindTBB.cmake)
+ unset(TBB_DIR CACHE)
+- find_package(TBB 4.1 REQUIRED tbb)
++ if (TBB_STATIC_LIB)
++ find_package(TBB 4.1 REQUIRED tbb_static)
++ else()
++ find_package(TBB 4.1 REQUIRED tbb)
++ endif()
+ if (TBB_FOUND)
+ TARGET_LINK_LIBRARIES(tasking PUBLIC TBB)
+ TARGET_INCLUDE_DIRECTORIES(tasking PUBLIC "${TBB_INCLUDE_DIRS}")
diff --git a/build_files/build_environment/patches/ispc.diff b/build_files/build_environment/patches/ispc.diff
index 3ab67356e19..d0c09405603 100644
--- a/build_files/build_environment/patches/ispc.diff
+++ b/build_files/build_environment/patches/ispc.diff
@@ -1,43 +1,6 @@
-diff -Naur external_ispc/CMakeLists.txt external_ispc_fixed/CMakeLists.txt
---- external_ispc/CMakeLists.txt 2020-04-23 17:29:06 -0600
-+++ external_ispc_fixed/CMakeLists.txt 2020-05-05 09:01:09 -0600
-@@ -389,7 +389,7 @@
-
- # Link against Clang libraries
- foreach(clangLib ${CLANG_LIBRARY_LIST})
-- find_library(${clangLib}Path NAMES ${clangLib} HINTS ${LLVM_LIBRARY_DIRS})
-+ find_library(${clangLib}Path NAMES ${clangLib} HINTS ${LLVM_LIBRARY_DIRS} ${CLANG_LIBRARY_DIR})
- list(APPEND CLANG_LIBRARY_FULL_PATH_LIST ${${clangLib}Path})
- endforeach()
- target_link_libraries(${PROJECT_NAME} ${CLANG_LIBRARY_FULL_PATH_LIST})
-diff -Naur orig/CMakeLists.txt external_ispc/CMakeLists.txt
---- orig/CMakeLists.txt 2020-05-05 09:19:11 -0600
-+++ external_ispc/CMakeLists.txt 2020-05-05 09:26:44 -0600
-@@ -333,7 +333,7 @@
-
- # Include directories
- target_include_directories(${PROJECT_NAME} PRIVATE
-- ${LLVM_INCLUDE_DIRS}
-+ ${LLVM_INCLUDE_DIRS} ${CLANG_INCLUDE_DIRS}
- ${GENX_DEPS_DIR}/include
- ${CMAKE_CURRENT_SOURCE_DIR}/src
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR})
-diff -Naur orig/cmake/GenerateBuiltins.cmake.txt external_ispc/cmake/GenerateBuiltins.cmake.txt
-+++ orig/cmake/GenerateBuiltins.cmake 2020-05-25 13:32:40.830803821 +0200
-+++ external_ispc/cmake/GenerateBuiltins.cmake 2020-05-25 13:32:40.830803821 +0200
-@@ -97,6 +97,8 @@
-
- if ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "x86")
- set(target_arch "i686")
-+ # Blender: disable 32bit due to build issues on Linux and being unnecessary.
-+ set(SKIP ON)
- elseif ("${bit}" STREQUAL "64" AND ${arch} STREQUAL "x86")
- set(target_arch "x86_64")
- elseif ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "arm")
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 46a8db8..f53beef 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
+diff -Naur ispc-1.17.0.org/CMakeLists.txt ispc-1.17.0/CMakeLists.txt
+--- ispc-1.17.0.org/CMakeLists.txt 2022-01-15 01:35:15 -0700
++++ ispc-1.17.0/CMakeLists.txt 2022-02-12 12:44:24 -0700
@@ -36,8 +36,12 @@
cmake_minimum_required(VERSION 3.13)
@@ -53,7 +16,25 @@ index 46a8db8..f53beef 100644
endif()
set(PROJECT_NAME ispc)
-@@ -412,6 +416,29 @@ else()
+@@ -443,7 +447,7 @@
+
+ # Include directories
+ target_include_directories(${PROJECT_NAME} PRIVATE
+- ${LLVM_INCLUDE_DIRS}
++ ${LLVM_INCLUDE_DIRS} ${CLANG_INCLUDE_DIRS}
+ ${XE_DEPS_DIR}/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/src
+ ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR})
+@@ -507,7 +511,7 @@
+
+ # Link against Clang libraries
+ foreach(clangLib ${CLANG_LIBRARY_LIST})
+- find_library(${clangLib}Path NAMES ${clangLib} HINTS ${LLVM_LIBRARY_DIRS})
++ find_library(${clangLib}Path NAMES ${clangLib} HINTS ${LLVM_LIBRARY_DIRS} ${CLANG_LIBRARY_DIR})
+ list(APPEND CLANG_LIBRARY_FULL_PATH_LIST ${${clangLib}Path})
+ endforeach()
+ target_link_libraries(${PROJECT_NAME} ${CLANG_LIBRARY_FULL_PATH_LIST})
+@@ -546,6 +550,29 @@
endif()
endif()
@@ -83,3 +64,15 @@ index 46a8db8..f53beef 100644
# Build target for utility checking host ISA
if (ISPC_INCLUDE_UTILS)
add_executable(check_isa "")
+diff -Naur ispc-1.17.0.org/cmake/GenerateBuiltins.cmake ispc-1.17.0/cmake/GenerateBuiltins.cmake
+--- ispc-1.17.0.org/cmake/GenerateBuiltins.cmake 2022-01-15 01:35:15 -0700
++++ ispc-1.17.0/cmake/GenerateBuiltins.cmake 2022-02-12 12:44:24 -0700
+@@ -124,6 +124,8 @@
+
+ if ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "x86")
+ set(target_arch "i686")
++ # Blender: disable 32bit due to build issues on Linux and being unnecessary.
++ set(SKIP ON)
+ elseif ("${bit}" STREQUAL "64" AND ${arch} STREQUAL "x86")
+ set(target_arch "x86_64")
+ elseif ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "arm")
diff --git a/build_files/build_environment/patches/level-zero.diff b/build_files/build_environment/patches/level-zero.diff
new file mode 100644
index 00000000000..22680166723
--- /dev/null
+++ b/build_files/build_environment/patches/level-zero.diff
@@ -0,0 +1,13 @@
+diff -Naur external_levelzero_org/CMakeLists.txt external_levelzero/CMakeLists.txt
+--- external_levelzero_org/CMakeLists.txt 2022-03-07 13:22:11 -0700
++++ external_levelzero/CMakeLists.txt 2022-03-29 13:22:15 -0600
+@@ -77,9 +77,6 @@
+ #enabling Control Flow Guard
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /guard:cf")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /guard:cf")
+- # enable Spectre Mitigation
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qspectre")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Qspectre")
+ endif()
+
+ #CXX compiler support \ No newline at end of file
diff --git a/build_files/build_environment/patches/openvdb.diff b/build_files/build_environment/patches/openvdb.diff
index 2f6f735946b..b48efb81df1 100644
--- a/build_files/build_environment/patches/openvdb.diff
+++ b/build_files/build_environment/patches/openvdb.diff
@@ -1,35 +1,16 @@
-diff -Naur openvdb-8.0.0/cmake/FindIlmBase.cmake openvdb/cmake/FindIlmBase.cmake
---- openvdb-8.0.0/cmake/FindIlmBase.cmake 2020-12-24 10:13:14 -0700
-+++ openvdb/cmake/FindIlmBase.cmake 2021-02-05 12:07:49 -0700
-@@ -217,6 +217,12 @@
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
- endif()
- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES "${_IlmBase_Version_Suffix}.lib")
-+ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
-+ "_s.lib"
-+ )
-+ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
-+ "_s_d.lib"
-+ )
- else()
- if(ILMBASE_USE_STATIC_LIBS)
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
-diff -Naur openvdb-8.0.0/cmake/FindOpenEXR.cmake openvdb/cmake/FindOpenEXR.cmake
---- openvdb-8.0.0/cmake/FindOpenEXR.cmake 2020-12-24 10:13:14 -0700
-+++ openvdb/cmake/FindOpenEXR.cmake 2021-02-05 12:23:39 -0700
-@@ -210,6 +210,12 @@
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
- endif()
- list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES "${_OpenEXR_Version_Suffix}.lib")
-+ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
-+ "_s.lib"
-+ )
-+ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
-+ "_s_d.lib"
-+ )
- else()
- if(OPENEXR_USE_STATIC_LIBS)
- set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+diff -ur openvdb-9.0.0/cmake/FindTBB.cmake openvdb/cmake/FindTBB.cmake
+--- openvdb-9.0.0/cmake/FindTBB.cmake 2021-10-30 03:55:40.000000000 +0100
++++ openvdb/cmake/FindTBB.cmake 2022-03-31 11:33:15.592329750 +0100
+@@ -252,7 +252,8 @@
+ set(_TBB_LIB_NAME "${_TBB_LIB_NAME}${TBB_DEBUG_SUFFIX}")
+ endif()
+
+- find_library(Tbb_${COMPONENT}_LIBRARY_${BUILD_TYPE} ${_TBB_LIB_NAME}
++ find_library(Tbb_${COMPONENT}_LIBRARY_${BUILD_TYPE}
++ NAMES ${_TBB_LIB_NAME} ${_TBB_LIB_NAME}_static
+ ${_FIND_TBB_ADDITIONAL_OPTIONS}
+ PATHS ${_TBB_LIBRARYDIR_SEARCH_DIRS}
+ PATH_SUFFIXES ${CMAKE_INSTALL_LIBDIR} lib64 lib
diff -Naur openvdb-8.0.0/openvdb/openvdb/CMakeLists.txt openvdb/openvdb/openvdb/CMakeLists.txt
--- openvdb-8.0.0/openvdb/openvdb/CMakeLists.txt 2020-12-24 10:13:14 -0700
+++ openvdb/openvdb/openvdb/CMakeLists.txt 2021-02-05 11:18:33 -0700
diff --git a/build_files/build_environment/patches/osl.diff b/build_files/build_environment/patches/osl.diff
index 54885323571..28e1d6e101d 100644
--- a/build_files/build_environment/patches/osl.diff
+++ b/build_files/build_environment/patches/osl.diff
@@ -48,25 +48,6 @@ diff -Naur org/CMakeLists.txt external_osl/CMakeLists.txt
set (OSL_NO_DEFAULT_TEXTURESYSTEM OFF CACHE BOOL "Do not use create a raw OIIO::TextureSystem")
if (OSL_NO_DEFAULT_TEXTURESYSTEM)
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 990f50d69..46ef7351d 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -252,11 +252,9 @@ install (EXPORT OSL_EXPORTED_TARGETS
- FILE ${OSL_TARGETS_EXPORT_NAME}
- NAMESPACE ${PROJECT_NAME}::)
-
--
--
--
--osl_add_all_tests()
--
-+if (${PROJECT_NAME}_BUILD_TESTS AND NOT ${PROJECT_NAME}_IS_SUBPROJECT)
-+ osl_add_all_tests()
-+endif ()
-
- if (NOT ${PROJECT_NAME}_IS_SUBPROJECT)
- include (packaging)
diff -Naur external_osl_orig/src/cmake/externalpackages.cmake external_osl/src/cmake/externalpackages.cmake
--- external_osl_orig/src/cmake/externalpackages.cmake 2021-06-01 13:44:18 -0600
+++ external_osl/src/cmake/externalpackages.cmake 2021-06-28 07:44:32 -0600
diff --git a/build_files/build_environment/patches/usd.diff b/build_files/build_environment/patches/usd.diff
index 8ea1e2054c1..5c0d2ba0b67 100644
--- a/build_files/build_environment/patches/usd.diff
+++ b/build_files/build_environment/patches/usd.diff
@@ -10,225 +10,18 @@ diff -x .git -ur usd.orig/cmake/defaults/Packages.cmake external_usd/cmake/defau
add_definitions(${TBB_DEFINITIONS})
# --math
-diff -Naur external_usd_base/cmake/macros/Public.cmake external_usd/cmake/macros/Public.cmake
---- external_usd_base/cmake/macros/Public.cmake 2019-10-24 14:39:53 -0600
-+++ external_usd/cmake/macros/Public.cmake 2020-01-11 13:33:29 -0700
-@@ -996,6 +996,12 @@
- foreach(lib ${PXR_OBJECT_LIBS})
- string(TOUPPER ${lib} uppercaseName)
- list(APPEND exports "${uppercaseName}_EXPORTS=1")
-+ # When building for blender, we do NOT want to export all symbols on windows.
-+ # This is a dirty hack, but USD makes it impossible to do the right thing
-+ # with the default options exposed.
-+ if (WIN32)
-+ list(APPEND exports "PXR_STATIC=1")
-+ endif()
- endforeach()
- foreach(lib ${PXR_OBJECT_LIBS})
- set(objects "${objects};\$<TARGET_OBJECTS:${lib}>")
-diff -ru USD-20.11/pxr/base/tf/pxrLZ4/lz4.cpp external_usd/pxr/base/tf/pxrLZ4/lz4.cpp
---- USD-20.11/pxr/base/tf/pxrLZ4/lz4.cpp 2020-10-14 19:25:19.000000000 +0100
-+++ external_usd/pxr/base/tf/pxrLZ4/lz4.cpp 2021-02-09 09:28:51.496190085 +0000
-@@ -614,6 +614,15 @@
- /*-************************************
- * Internal Definitions used in Tests
- **************************************/
-+
-+/*******************************************************************
-+ * Disabled in Blender. The BLOSC library also exposes these
-+ * functions, and this causes 'duplicate symbol' linker errors.
-+ *
-+ * This problem has been reported upstream at
-+ * https://github.com/PixarAnimationStudios/USD/issues/1447
-+ *
-+ *******************************************************************
- #if defined (__cplusplus)
- extern "C" {
- #endif
-@@ -627,6 +636,7 @@
- #if defined (__cplusplus)
- }
- #endif
-+********************************************************************/
-
- /*-******************************
- * Compression functions
-
-From 442d087962f762deeb8b6e49a0955753fcf9aeb9 Mon Sep 17 00:00:00 2001
-From: Tsahi Zidenberg <tsahee@amazon.com>
-Date: Sun, 15 Nov 2020 15:18:24 +0000
-Subject: [PATCH 1/2] stackTrace: support aarch64/linux
-
-stacktrace calls syscall directly via assembler. Create compatible
-aarch64 code.
----
- pxr/base/arch/stackTrace.cpp | 30 ++++++++++++++++++++++++------
- 1 file changed, 24 insertions(+), 6 deletions(-)
-
-diff --git a/pxr/base/arch/stackTrace.cpp b/pxr/base/arch/stackTrace.cpp
-index dcc1dfd46..c11aabeb1 100644
---- a/pxr/base/arch/stackTrace.cpp
-+++ b/pxr/base/arch/stackTrace.cpp
-@@ -583,7 +583,6 @@ nonLockingLinux__execve (const char *file,
- char *const argv[],
- char *const envp[])
- {
--#if defined(ARCH_BITS_64)
- /*
- * We make a direct system call here, because we can't find an
- * execve which corresponds with the non-locking fork we call
-@@ -594,7 +593,27 @@ nonLockingLinux__execve (const char *file,
- * hangs in a threaded app. (We use the non-locking fork to get
- * around problems with forking when we have had memory
- * corruption.) whew.
-- *
-+ */
-+
-+ unsigned long result;
-+
-+#if defined (__aarch64__)
-+ {
-+ register long __file_result asm ("x0") = (long)file;
-+ register char* const* __argv asm ("x1") = argv;
-+ register char* const* __envp asm ("x2") = envp;
-+ register long __num_execve asm ("x8") = 221;
-+ __asm__ __volatile__ (
-+ "svc 0"
-+ : "=r" (__file_result)
-+ : "r"(__num_execve), "r" (__file_result), "r" (__argv), "r" (__envp)
-+ : "memory"
-+ );
-+ result = __file_result;
-+ }
-+#elif defined(ARCH_CPU_INTEL) && defined(ARCH_BITS_64)
-+
-+ /*
- * %rdi, %rsi, %rdx, %rcx, %r8, %r9 are args 0-5
- * syscall clobbers %rcx and %r11
- *
-@@ -603,7 +622,6 @@ nonLockingLinux__execve (const char *file,
- * constraints to gcc.
- */
-
-- unsigned long result;
- __asm__ __volatile__ (
- "mov %0, %%rdi \n\t"
- "mov %%rcx, %%rsi \n\t"
-@@ -614,6 +632,9 @@ nonLockingLinux__execve (const char *file,
- : "0" (file), "c" (argv), "d" (envp)
- : "memory", "cc", "r11"
- );
-+#else
-+#error Unknown architecture
-+#endif
-
- if (result >= 0xfffffffffffff000) {
- errno = -result;
-@@ -621,9 +642,6 @@ nonLockingLinux__execve (const char *file,
- }
-
- return result;
--#else
--#error Unknown architecture
--#endif
- }
-
- #endif
-From a1dffe02519bb3c6ccbbe8c6c58304da5db98995 Mon Sep 17 00:00:00 2001
-From: Tsahi Zidenberg <tsahee@amazon.com>
-Date: Sun, 15 Nov 2020 15:22:52 +0000
-Subject: [PATCH 2/2] timing: support aarch64/linux
-
-The aarch64 arch-timer is directly accessible to userspace via two
-registers:
-CNTVCT_EL0 - holds the current counter value
-CNTFRQ_EL0 - holds the counter frequency (in Hz)
----
- pxr/base/arch/timing.cpp | 6 ++++++
- pxr/base/arch/timing.h | 6 +++++-
- 2 files changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/pxr/base/arch/timing.cpp b/pxr/base/arch/timing.cpp
-index 27ad58fed..9022950c1 100644
---- a/pxr/base/arch/timing.cpp
-+++ b/pxr/base/arch/timing.cpp
-@@ -59,6 +59,11 @@ ARCH_HIDDEN
- void
- Arch_InitTickTimer()
- {
-+#ifdef __aarch64__
-+ uint64_t counter_hz;
-+ __asm __volatile("mrs %0, CNTFRQ_EL0" : "=&r" (counter_hz));
-+ Arch_NanosecondsPerTick = double(1e9) / double(counter_hz);
-+#else
- // NOTE: Normally ifstream would be cleaner, but it causes crashes when
- // used in conjunction with DSOs and the Intel Compiler.
- FILE *in;
-@@ -135,6 +140,7 @@ Arch_InitTickTimer()
- }
-
- Arch_NanosecondsPerTick = double(1e9) / double(cpuHz);
-+#endif
- }
- #elif defined(ARCH_OS_WINDOWS)
-
-diff --git a/pxr/base/arch/timing.h b/pxr/base/arch/timing.h
-index 67ec0d15f..6dc3e85a0 100644
---- a/pxr/base/arch/timing.h
-+++ b/pxr/base/arch/timing.h
-@@ -36,7 +36,7 @@
- /// \addtogroup group_arch_SystemFunctions
- ///@{
-
--#if defined(ARCH_OS_LINUX)
-+#if defined(ARCH_OS_LINUX) && defined(ARCH_CPU_INTEL)
- #include <x86intrin.h>
- #elif defined(ARCH_OS_DARWIN)
- #include <mach/mach_time.h>
-@@ -69,6 +69,10 @@ ArchGetTickTime()
- #elif defined(ARCH_CPU_INTEL)
- // On Intel we'll use the rdtsc instruction.
- return __rdtsc();
-+#elif defined (__aarch64__)
-+ uint64_t result;
-+ __asm __volatile("mrs %0, CNTVCT_EL0" : "=&r" (result));
-+ return result;
- #else
- #error Unknown architecture.
- #endif
-
-diff --git a/pxr/base/arch/demangle.cpp b/pxr/base/arch/demangle.cpp
-index 67ec0d15f..6dc3e85a0 100644
---- a/pxr/base/arch/demangle.cpp
-+++ b/pxr/base/arch/demangle.cpp
-@@ -36,6 +36,7 @@
- #if (ARCH_COMPILER_GCC_MAJOR == 3 && ARCH_COMPILER_GCC_MINOR >= 1) || \
- ARCH_COMPILER_GCC_MAJOR > 3 || defined(ARCH_COMPILER_CLANG)
- #define _AT_LEAST_GCC_THREE_ONE_OR_CLANG
-+#include <cxxabi.h>
- #endif
-
- PXR_NAMESPACE_OPEN_SCOPE
-@@ -138,7 +139,6 @@
- #endif
-
- #if defined(_AT_LEAST_GCC_THREE_ONE_OR_CLANG)
--#include <cxxabi.h>
+diff -Naur usd_orig/cmake/defaults/msvcdefaults.cmake external_usd/cmake/defaults/msvcdefaults.cmake
+--- usd_orig/cmake/defaults/msvcdefaults.cmake 2022-02-18 14:49:09 -0700
++++ external_usd/cmake/defaults/msvcdefaults.cmake 2022-03-14 11:41:50 -0600
+@@ -120,9 +120,6 @@
+ # for all translation units.
+ set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /bigobj")
- /*
- * This routine doesn't work when you get to gcc3.4.
+-# Enable PDB generation.
+-set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /Zi")
+-
+ # Enable multiprocessor builds.
+ set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /MP")
+ set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /Gm-")
-diff --git a/pxr/base/work/singularTask.h b/pxr/base/work/singularTask.h
-index 67ec0d15f..6dc3e85a0 100644
---- a/pxr/base/work/singularTask.h
-+++ b/pxr/base/work/singularTask.h
-@@ -120,7 +120,7 @@
- // case we go again to ensure the task can do whatever it
- // was awakened to do. Once we successfully take the count
- // to zero, we stop.
-- size_t old = count;
-+ std::size_t old = count;
- do { _fn(); } while (
- !count.compare_exchange_strong(old, 0));
- });
diff --git a/build_files/build_environment/windows/build_deps.cmd b/build_files/build_environment/windows/build_deps.cmd
index c0e13ac3a55..e13d59ef804 100644
--- a/build_files/build_environment/windows/build_deps.cmd
+++ b/build_files/build_environment/windows/build_deps.cmd
@@ -46,6 +46,15 @@ if "%3" == "debug" set CMAKE_DEBUG_OPTIONS=-DWITH_OPTIMIZED_DEBUG=Off
set dobuild=1
if "%4" == "nobuild" set dobuild=0
+REM If Python is be available certain deps may try to
+REM to use this over the version we build, to prevent that
+REM make sure python is NOT in the path
+for %%X in (python.exe) do (set PYTHON=%%~$PATH:X)
+if EXIST "%PYTHON%" (
+ echo PYTHON found at %PYTHON% dependencies cannot be build with python available in the path
+ goto exit
+)
+
set SOURCE_DIR=%~dp0\..
set BUILD_DIR=%cd%\build
set HARVEST_DIR=%BUILD_DIR%\output
@@ -99,7 +108,7 @@ cmake -G "%CMAKE_BUILDER%" %CMAKE_BUILD_ARCH% -Thost=x64 %SOURCE_DIR% -DPACKAGE
echo %DATE% %TIME% : Release Configuration done >> %StatusFile%
if "%dobuild%" == "1" (
msbuild /m "ll.vcxproj" /p:Configuration=Release /fl /flp:logfile=BlenderDeps_llvm.log;Verbosity=normal
- msbuild /m "BlenderDependencies.sln" /p:Configuration=Release /fl /flp:logfile=BlenderDeps.log;Verbosity=minimal /verbosity:minimal
+ msbuild /maxcpucount:1 /m "BlenderDependencies.sln" /p:Configuration=Release /fl /flp:logfile=BlenderDeps.log;Verbosity=minimal /verbosity:minimal
echo %DATE% %TIME% : Release Build done >> %StatusFile%
cmake --build . --target Harvest_Release_Results > Harvest_Release.txt
)
@@ -112,7 +121,7 @@ cmake -G "%CMAKE_BUILDER%" %CMAKE_BUILD_ARCH% -Thost=x64 %SOURCE_DIR% -DPACKAGE_
echo %DATE% %TIME% : Debug Configuration done >> %StatusFile%
if "%dobuild%" == "1" (
msbuild /m "ll.vcxproj" /p:Configuration=Debug /fl /flp:logfile=BlenderDeps_llvm.log;;Verbosity=normal
- msbuild /m "BlenderDependencies.sln" /p:Configuration=Debug /verbosity:n /fl /flp:logfile=BlenderDeps.log;;Verbosity=normal
+ msbuild /maxcpucount:1 /m "BlenderDependencies.sln" /p:Configuration=Debug /verbosity:n /fl /flp:logfile=BlenderDeps.log;;Verbosity=normal
echo %DATE% %TIME% : Debug Build done >> %StatusFile%
cmake --build . --target Harvest_Debug_Results> Harvest_Debug.txt
)