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:
-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
)