diff options
Diffstat (limited to 'build_files/build_environment')
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 ) |