Commit: b9c37608a9e959a896f5358d4ab3d3d001a70833 Author: Ray Molenkamp Date: Tue Apr 19 18:08:51 2022 +0200 Branches: master https://developer.blender.org/rBb9c37608a9e959a896f5358d4ab3d3d001a70833
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 =================================================================== M build_files/build_environment/CMakeLists.txt M build_files/build_environment/cmake/alembic.cmake M build_files/build_environment/cmake/blosc.cmake M build_files/build_environment/cmake/boost.cmake A build_files/build_environment/cmake/boost_build_options.cmake M build_files/build_environment/cmake/download.cmake M build_files/build_environment/cmake/embree.cmake A build_files/build_environment/cmake/fmt.cmake M build_files/build_environment/cmake/harvest.cmake A build_files/build_environment/cmake/imath.cmake M build_files/build_environment/cmake/jpeg.cmake A build_files/build_environment/cmake/level-zero.cmake D build_files/build_environment/cmake/nanovdb.cmake M build_files/build_environment/cmake/opencolorio.cmake M build_files/build_environment/cmake/openexr.cmake M build_files/build_environment/cmake/openimagedenoise.cmake M build_files/build_environment/cmake/openimageio.cmake M build_files/build_environment/cmake/openjpeg.cmake M build_files/build_environment/cmake/opensubdiv.cmake M build_files/build_environment/cmake/openvdb.cmake M build_files/build_environment/cmake/options.cmake M build_files/build_environment/cmake/osl.cmake A build_files/build_environment/cmake/pystring.cmake A build_files/build_environment/cmake/robinmap.cmake M build_files/build_environment/cmake/tiff.cmake M build_files/build_environment/cmake/usd.cmake M build_files/build_environment/cmake/versions.cmake M build_files/build_environment/cmake/webp.cmake A build_files/build_environment/patches/cmakelists_pystring.txt M build_files/build_environment/patches/embree.diff M build_files/build_environment/patches/ispc.diff A build_files/build_environment/patches/level-zero.diff M build_files/build_environment/patches/openvdb.diff M build_files/build_environment/patches/osl.diff M build_files/build_environment/patches/usd.diff M build_files/build_environment/windows/build_deps.cmd =================================================================== 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 # @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs