diff options
Diffstat (limited to 'build_files')
35 files changed, 300 insertions, 606 deletions
diff --git a/build_files/build_environment/CMakeLists.txt b/build_files/build_environment/CMakeLists.txt index dd90eb9adde..3c228fd9f7d 100644 --- a/build_files/build_environment/CMakeLists.txt +++ b/build_files/build_environment/CMakeLists.txt @@ -48,11 +48,7 @@ include(cmake/options.cmake) include(cmake/versions.cmake) if(ENABLE_MINGW64) - if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") - include(cmake/setup_mingw64.cmake) - else() - include(cmake/setup_mingw32.cmake) - endif() + include(cmake/setup_mingw64.cmake) else() set(mingw_LIBDIR ${LIBDIR}) endif() @@ -97,17 +93,18 @@ if(UNIX) else() include(cmake/pugixml.cmake) endif() +include(cmake/ispc.cmake) include(cmake/openimagedenoise.cmake) include(cmake/embree.cmake) -include(cmake/xr_openxr.cmake) +if(NOT APPLE) + include(cmake/xr_openxr.cmake) +endif() if(WITH_WEBP) include(cmake/webp.cmake) endif() if(WIN32) - # HMD branch deps - include(cmake/hidapi.cmake) # OCIO deps include(cmake/tinyxml.cmake) include(cmake/yamlcpp.cmake) diff --git a/build_files/build_environment/cmake/harvest.cmake b/build_files/build_environment/cmake/harvest.cmake index a7685f87c8d..33b7f9db192 100644 --- a/build_files/build_environment/cmake/harvest.cmake +++ b/build_files/build_environment/cmake/harvest.cmake @@ -43,8 +43,6 @@ if(BUILD_MODE STREQUAL Release) # tiff ${CMAKE_COMMAND} -E copy ${LIBDIR}/tiff/lib/tiff.lib ${HARVEST_TARGET}/tiff/lib/libtiff.lib && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/tiff/include/ ${HARVEST_TARGET}/tiff/include/ && - # hidapi - ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/hidapi/ ${HARVEST_TARGET}/hidapi/ DEPENDS ) endif() diff --git a/build_files/build_environment/cmake/hidapi.cmake b/build_files/build_environment/cmake/hidapi.cmake deleted file mode 100644 index 9a3d2ebf8df..00000000000 --- a/build_files/build_environment/cmake/hidapi.cmake +++ /dev/null @@ -1,29 +0,0 @@ -# ***** BEGIN GPL LICENSE BLOCK ***** -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# ***** END GPL LICENSE BLOCK ***** - -set(HIDAPI_EXTRA_ARGS) - -ExternalProject_Add(external_hidapi - URL ${HIDAPI_URI} - DOWNLOAD_DIR ${DOWNLOAD_DIR} - URL_HASH MD5=${HIDAPI_HASH} - PREFIX ${BUILD_DIR}/hidapi - PATCH_COMMAND COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_hidapi.txt ${BUILD_DIR}/hidapi/src/external_hidapi/cmakelists.txt && ${PATCH_CMD} -p 0 -d ${BUILD_DIR}/hidapi/src/external_hidapi < ${PATCH_DIR}/hidapi.diff - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/hidapi -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${HIDAPI_EXTRA_ARGS} - INSTALL_DIR ${LIBDIR}/hidapi -) diff --git a/build_files/build_environment/cmake/ispc.cmake b/build_files/build_environment/cmake/ispc.cmake new file mode 100644 index 00000000000..0bb5db82aea --- /dev/null +++ b/build_files/build_environment/cmake/ispc.cmake @@ -0,0 +1,63 @@ +# ***** BEGIN GPL LICENSE BLOCK ***** +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# ***** END GPL LICENSE BLOCK ***** + +if(WIN32) + set(ISPC_EXTRA_ARGS_WIN + -DFLEX_EXECUTABLE=${LIBDIR}/flexbison/win_flex.exe + -DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe + -DM4_EXECUTABLE=${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/m4.exe + ) +endif() + +set(ISPC_EXTRA_ARGS + -DARM_ENABLED=Off + -DISPC_NO_DUMPS=On + -DISPC_INCLUDE_EXAMPLES=Off + -DISPC_INCLUDE_TESTS=Off + -DLLVM_ROOT=${LIBDIR}/llvm/lib/cmake/llvm + -DLLVM_LIBRARY_DIR=${LIBDIR}/llvm/lib + -DCLANG_EXECUTABLE=${LIBDIR}/clang/bin/clang + -DISPC_INCLUDE_TESTS=Off + -DCLANG_LIBRARY_DIR=${LIBDIR}/clang/lib + -DCLANG_INCLUDE_DIRS=${LIBDIR}/clang/include + ${ISPC_EXTRA_ARGS_WIN} +) + +ExternalProject_Add(external_ispc + URL ${ISPC_URI} + DOWNLOAD_DIR ${DOWNLOAD_DIR} + URL_HASH MD5=${ISPC_HASH} + PREFIX ${BUILD_DIR}/ispc + PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/ispc/src/external_ispc < ${PATCH_DIR}/ispc.diff + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/ispc -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${ISPC_EXTRA_ARGS} ${BUILD_DIR}/ispc/src/external_ispc + INSTALL_DIR ${LIBDIR}/ispc +) + +add_dependencies( + external_ispc + ll + external_clang +) + +if(WIN32) + add_dependencies( + external_ispc + external_flexbison + ) +endif() + diff --git a/build_files/build_environment/cmake/openimagedenoise.cmake b/build_files/build_environment/cmake/openimagedenoise.cmake index 1332a38fea6..65f12199952 100644 --- a/build_files/build_environment/cmake/openimagedenoise.cmake +++ b/build_files/build_environment/cmake/openimagedenoise.cmake @@ -18,26 +18,41 @@ set(OIDN_EXTRA_ARGS - -DWITH_EXAMPLE=OFF - -DWITH_TEST=OFF + -DOIDN_APPS=OFF -DTBB_ROOT=${LIBDIR}/tbb -DTBB_STATIC_LIB=${TBB_STATIC_LIBRARY} -DOIDN_STATIC_LIB=ON + -DOIDN_STATIC_RUNTIME=OFF + -DISPC_EXECUTABLE=${LIBDIR}/ispc/bin/ispc ) +if(WIN32) + set(OIDN_EXTRA_ARGS + ${OIDN_EXTRA_ARGS} + -DTBB_DEBUG_LIBRARY=${LIBDIR}/tbb/lib/tbb.lib + -DTBB_DEBUG_LIBRARY_MALLOC=${LIBDIR}/tbb/lib/tbbmalloc.lib + ) +else() + set(OIDN_EXTRA_ARGS + ${OIDN_EXTRA_ARGS} + -Dtbb_LIBRARY_RELEASE=${LIBDIR}/tbb/lib/tbb_static.a + -Dtbbmalloc_LIBRARY_RELEASE=${LIBDIR}/tbb/lib/tbbmalloc_static.a + ) +endif() + ExternalProject_Add(external_openimagedenoise URL ${OIDN_URI} DOWNLOAD_DIR ${DOWNLOAD_DIR} URL_HASH MD5=${OIDN_HASH} PREFIX ${BUILD_DIR}/openimagedenoise CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openimagedenoise ${DEFAULT_CMAKE_FLAGS} ${OIDN_EXTRA_ARGS} - PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/openimagedenoise/src/external_openimagedenoise < ${PATCH_DIR}/openimagedenoise.diff INSTALL_DIR ${LIBDIR}/openimagedenoise ) add_dependencies( external_openimagedenoise external_tbb + external_ispc ) if(WIN32) @@ -46,7 +61,7 @@ if(WIN32) COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openimagedenoise/include ${HARVEST_TARGET}/openimagedenoise/include COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimagedenoise/lib/openimagedenoise.lib ${HARVEST_TARGET}/openimagedenoise/lib/openimagedenoise.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimagedenoise/lib/common.lib ${HARVEST_TARGET}/openimagedenoise/lib/common.lib - COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimagedenoise/lib/mkldnn.lib ${HARVEST_TARGET}/openimagedenoise/lib/mkldnn.lib + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimagedenoise/lib/dnnl.lib ${HARVEST_TARGET}/openimagedenoise/lib/dnnl.lib DEPENDEES install ) endif() @@ -54,7 +69,7 @@ if(WIN32) ExternalProject_Add_Step(external_openimagedenoise after_install COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimagedenoise/lib/openimagedenoise.lib ${HARVEST_TARGET}/openimagedenoise/lib/openimagedenoise_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimagedenoise/lib/common.lib ${HARVEST_TARGET}/openimagedenoise/lib/common_d.lib - COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimagedenoise/lib/mkldnn.lib ${HARVEST_TARGET}/openimagedenoise/lib/mkldnn_d.lib + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimagedenoise/lib/dnnl.lib ${HARVEST_TARGET}/openimagedenoise/lib/dnnl_d.lib DEPENDEES install ) endif() diff --git a/build_files/build_environment/cmake/options.cmake b/build_files/build_environment/cmake/options.cmake index ed82f1fd9ee..4b973067020 100644 --- a/build_files/build_environment/cmake/options.cmake +++ b/build_files/build_environment/cmake/options.cmake @@ -17,7 +17,7 @@ # ***** END GPL LICENSE BLOCK ***** if(WIN32) - option(ENABLE_MINGW64 "Enable building of ffmpeg/iconv/libsndfile/lapack/fftw3 by installing mingw64" ON) + 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) set(MAKE_THREADS 1 CACHE STRING "Number of threads to run make with") @@ -45,11 +45,7 @@ message("PATCH_DIR = ${PATCH_DIR}") message("BUILD_DIR = ${BUILD_DIR}") if(WIN32) - if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") - set(PATCH_CMD ${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/patch.exe) - else() - set(PATCH_CMD ${DOWNLOAD_DIR}/mingw/mingw32/msys/1.0/bin/patch.exe) - endif() + set(PATCH_CMD ${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/patch.exe) set(LIBEXT ".lib") set(LIBPREFIX "") @@ -82,17 +78,10 @@ if(WIN32) set(PLATFORM_CXX_FLAGS) set(PLATFORM_CMAKE_FLAGS) - if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") - set(MINGW_PATH ${DOWNLOAD_DIR}/mingw/mingw64) - set(MINGW_SHELL ming64sh.cmd) - set(PERL_SHELL ${DOWNLOAD_DIR}/perl/portableshell.bat) - set(MINGW_HOST x86_64-w64-mingw32) - else() - set(MINGW_PATH ${DOWNLOAD_DIR}/mingw/mingw32) - set(MINGW_SHELL ming32sh.cmd) - set(PERL_SHELL ${DOWNLOAD_DIR}/perl32/portableshell.bat) - set(MINGW_HOST i686-w64-mingw32) - endif() + set(MINGW_PATH ${DOWNLOAD_DIR}/mingw/mingw64) + set(MINGW_SHELL ming64sh.cmd) + set(PERL_SHELL ${DOWNLOAD_DIR}/perl/portableshell.bat) + set(MINGW_HOST x86_64-w64-mingw32) set(CONFIGURE_ENV cd ${MINGW_PATH} && diff --git a/build_files/build_environment/cmake/osl.cmake b/build_files/build_environment/cmake/osl.cmake index 3532eec144e..db70b2937b8 100644 --- a/build_files/build_environment/cmake/osl.cmake +++ b/build_files/build_environment/cmake/osl.cmake @@ -75,6 +75,7 @@ set(OSL_EXTRA_ARGS -DUSE_LLVM_BITCODE=OFF -DUSE_PARTIO=OFF -DUSE_QT=OFF + -DINSTALL_DOCS=OFF ${OSL_SIMD_FLAGS} -DPARTIO_LIBRARIES= ) diff --git a/build_files/build_environment/cmake/setup_mingw32.cmake b/build_files/build_environment/cmake/setup_mingw32.cmake deleted file mode 100644 index c9fbe301ac7..00000000000 --- a/build_files/build_environment/cmake/setup_mingw32.cmake +++ /dev/null @@ -1,227 +0,0 @@ -# ***** BEGIN GPL LICENSE BLOCK ***** -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# ***** END GPL LICENSE BLOCK ***** - -#################################################################################################################### -# Mingw32 Builds -#################################################################################################################### -# This installs mingw32+msys to compile ffmpeg/iconv/libsndfile/lapack/fftw3 -#################################################################################################################### - -message("LIBDIR = ${LIBDIR}") -macro(cmake_to_msys_path MsysPath ResultingPath) - string(REPLACE ":" "" TmpPath "${MsysPath}") - string(SUBSTRING ${TmpPath} 0 1 Drive) - string(SUBSTRING ${TmpPath} 1 255 PathPart) - string(TOLOWER ${Drive} LowerDrive) - string(CONCAT ${ResultingPath} "/" ${LowerDrive} ${PathPart}) -endmacro() -cmake_to_msys_path(${LIBDIR} mingw_LIBDIR) -message("mingw_LIBDIR = ${mingw_LIBDIR}") - -message("Checking for mingw32") -# download mingw32 -if(NOT EXISTS "${DOWNLOAD_DIR}/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z") - message("Downloading mingw32") - file(DOWNLOAD "https://astuteinternet.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.9.4/threads-win32/sjlj/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z" "${DOWNLOAD_DIR}/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z") -endif() - -# make mingw root directory -if(NOT EXISTS "${DOWNLOAD_DIR}/mingw") - execute_process( - COMMAND ${CMAKE_COMMAND} -E make_directory ${DOWNLOAD_DIR}/mingw - WORKING_DIRECTORY ${DOWNLOAD_DIR} - ) -endif() - -# extract mingw32 -if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/ming32sh.cmd") AND (EXISTS "${DOWNLOAD_DIR}/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z")) - message("Extracting mingw32") - execute_process( - COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/i686-4.9.4-release-win32-sjlj-rt_v5-rev0.7z - WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw - ) -endif() - -message("Checking for pkg-config") -if(NOT EXISTS "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip") - message("Downloading pkg-config") - file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/pkgconfiglite/0.28-1/pkg-config-lite-0.28-1_bin-win32.zip" "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip") -endif() - -# extract pkgconfig -if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/pkg-config.exe") AND (EXISTS "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip")) - message("Extracting pkg-config") - execute_process( - COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1_bin-win32.zip" - WORKING_DIRECTORY ${DOWNLOAD_DIR}/ - ) - - execute_process( - COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/pkg-config-lite-0.28-1/bin/pkg-config.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/pkg-config.exe" - ) - -endif() - -message("Checking for nasm") -if(NOT EXISTS "${DOWNLOAD_DIR}/nasm-2.13.02-win32.zip") - message("Downloading nasm") - file(DOWNLOAD "http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/win32/nasm-2.13.02-win32.zip" "${DOWNLOAD_DIR}/nasm-2.13.02-win32.zip") -endif() - -# extract nasm -if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/nasm.exe") AND (EXISTS "${DOWNLOAD_DIR}/nasm-2.13.02-win32.zip")) - message("Extracting nasm") - execute_process( - COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/nasm-2.13.02-win32.zip" - WORKING_DIRECTORY ${DOWNLOAD_DIR}/ - ) - execute_process( - COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/nasm-2.13.02/nasm.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/nasm.exe" - ) - -endif() -SET(NASM_PATH ${DOWNLOAD_DIR}/mingw/mingw32/bin/nasm.exe) -message("Checking for mingwGet") -if(NOT EXISTS "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip") - message("Downloading mingw-get") - file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/mingw/Installer/mingw-get/mingw-get-0.6.2-beta-20131004-1/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip" "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip") -endif() - -# extract mingw_get -if((NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get.exe") AND (EXISTS "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip")) - message("Extracting mingw-get") - execute_process( - COMMAND ${CMAKE_COMMAND} -E tar jxf "${DOWNLOAD_DIR}/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip" - WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw32/ - ) -endif() - -if((EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get.exe") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/msys/1.0/bin/make.exe")) - message("Installing MSYS") - execute_process( - COMMAND ${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get install msys msys-patch - WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw32/bin/ - ) -endif() - -if((EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get.exe") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/msys/1.0/bin/mktemp.exe")) - message("Installing mktemp") - execute_process( - COMMAND ${DOWNLOAD_DIR}/mingw/mingw32/bin/mingw-get install msys msys-mktemp - WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw32/bin/ - ) -endif() - - -message("Checking for CoreUtils") -# download old core_utils for pr.exe (ffmpeg needs it to build) -if(NOT EXISTS "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2") - message("Downloading CoreUtils 5.97") - file(DOWNLOAD "https://nchc.dl.sourceforge.net/project/mingw/MSYS/Base/msys-core/_obsolete/coreutils-5.97-MSYS-1.0.11-2/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2" "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2") -endif() - -if((EXISTS "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/msys/1.0/bin/pr.exe")) - message("Installing pr from CoreUtils 5.97") - execute_process( - COMMAND ${CMAKE_COMMAND} -E make_directory ${DOWNLOAD_DIR}/tmp_coreutils - WORKING_DIRECTORY ${DOWNLOAD_DIR} - ) - - execute_process( - COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2 - WORKING_DIRECTORY ${DOWNLOAD_DIR}/tmp_coreutils/ - ) - - execute_process( - COMMAND ${CMAKE_COMMAND} -E copy ${DOWNLOAD_DIR}/tmp_coreutils/coreutils-5.97/bin/pr.exe "${DOWNLOAD_DIR}/mingw/mingw32/msys/1.0/bin/pr.exe" - WORKING_DIRECTORY ${DOWNLOAD_DIR}/tmp_coreutils/ - ) -endif() - -if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/ming32sh.cmd") - message("Installing ming32sh.cmd") - execute_process( - COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/ming32sh.cmd ${DOWNLOAD_DIR}/mingw/mingw32/ming32sh.cmd - ) -endif() - -message("Checking for perl") -# download perl for libvpx -if(NOT EXISTS "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-32bit-portable.zip") - message("Downloading perl") - file(DOWNLOAD "http://strawberryperl.com/download/5.22.1.3/strawberry-perl-5.22.1.3-32bit-portable.zip" "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-32bit-portable.zip") -endif() - -# make perl root directory -if(NOT EXISTS "${DOWNLOAD_DIR}/perl32") - execute_process( - COMMAND ${CMAKE_COMMAND} -E make_directory ${DOWNLOAD_DIR}/perl32 - WORKING_DIRECTORY ${DOWNLOAD_DIR} - ) -endif() - -# extract perl -if((NOT EXISTS "${DOWNLOAD_DIR}/perl32/portable.perl") AND (EXISTS "${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-32bit-portable.zip")) - message("Extracting perl") - execute_process( - COMMAND ${CMAKE_COMMAND} -E tar jxf ${DOWNLOAD_DIR}/strawberry-perl-5.22.1.3-32bit-portable.zip - WORKING_DIRECTORY ${DOWNLOAD_DIR}/perl32 - ) -endif() - -# get yasm for vpx -if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/yasm.exe") - message("Downloading yasm") - file(DOWNLOAD "http://www.tortall.net/projects/yasm/releases/yasm-1.3.0-win32.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/yasm.exe") -endif() - -message("checking i686-w64-mingw32-strings") -# copy strings.exe to i686-w64-mingw32-strings for x264 -if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-strings.exe") - message("fixing i686-w64-mingw32-strings.exe") - execute_process( - COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw32/bin/strings.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-strings.exe" - ) -endif() - -message("checking i686-w64-mingw32-ar.exe") -# copy ar.exe to i686-w64-mingw32-ar.exe for x264 -if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-ar.exe") - message("fixing i686-w64-mingw32-ar.exe") - execute_process( - COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw32/bin/ar.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-ar.exe" - ) -endif() - -message("checking i686-w64-mingw32-strip.exe") -# copy strip.exe to i686-w64-mingw32-strip.exe for x264 -if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-strip.exe") - message("fixing i686-w64-mingw32-strip.exe") - execute_process( - COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw32/bin/strip.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-strip.exe" - ) -endif() - -message("checking i686-w64-mingw32-ranlib.exe") -# copy ranlib.exe to i686-w64-mingw32-ranlib.exe for x264 -if(NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-ranlib.exe") - message("fixing i686-w64-mingw32-ranlib.exe") - execute_process( - COMMAND ${CMAKE_COMMAND} -E copy "${DOWNLOAD_DIR}/mingw/mingw32/bin/ranlib.exe" "${DOWNLOAD_DIR}/mingw/mingw32/bin/i686-w64-mingw32-ranlib.exe" - ) -endif() diff --git a/build_files/build_environment/cmake/setup_mingw64.cmake b/build_files/build_environment/cmake/setup_mingw64.cmake index 5ac9722d23d..e370da049d5 100644 --- a/build_files/build_environment/cmake/setup_mingw64.cmake +++ b/build_files/build_environment/cmake/setup_mingw64.cmake @@ -19,7 +19,7 @@ #################################################################################################################### # Mingw64 Builds #################################################################################################################### -# This installs mingw64+msys to compile ffmpeg/iconv/libsndfile/lapack/fftw3 +# This installs mingw64+msys to compile ffmpeg/iconv/libsndfile/fftw3 #################################################################################################################### message("LIBDIR = ${LIBDIR}") @@ -128,6 +128,14 @@ if((EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/mingw-get.exe") AND (NOT EXISTS "$ ) endif() +if((EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/bin/mingw-get.exe") AND (NOT EXISTS "${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/m4.exe")) + message("Installing m4") + execute_process( + COMMAND ${DOWNLOAD_DIR}/mingw/mingw64/bin/mingw-get install msys msys-m4 + WORKING_DIRECTORY ${DOWNLOAD_DIR}/mingw/mingw64/bin/ + ) +endif() + message("Checking for CoreUtils") # download old core_utils for pr.exe (ffmpeg needs it to build) if(NOT EXISTS "${DOWNLOAD_DIR}/coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2") diff --git a/build_files/build_environment/cmake/ssl.conf b/build_files/build_environment/cmake/ssl.conf index 91f4357f8d8..818e5a625ab 100644 --- a/build_files/build_environment/cmake/ssl.conf +++ b/build_files/build_environment/cmake/ssl.conf @@ -1,4 +1,4 @@ -%targets = ( +my %targets = ( "blender-linux-x86" => { inherit_from => [ "linux-x86" ], diff --git a/build_files/build_environment/cmake/tbb.cmake b/build_files/build_environment/cmake/tbb.cmake index 1cb852fb5d1..82cd9291ddf 100644 --- a/build_files/build_environment/cmake/tbb.cmake +++ b/build_files/build_environment/cmake/tbb.cmake @@ -50,6 +50,13 @@ ExternalProject_Add(external_tbb if(WIN32) if(BUILD_MODE STREQUAL Release) ExternalProject_Add_Step(external_tbb after_install + # findtbb.cmake in some deps *NEEDS* to find tbb_debug.lib even if they are not going to use it + # to make that test pass, we place a copy with the right name in the lib folder. + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb.lib ${HARVEST_TARGET}/tbb/lib/tbb_debug.lib + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbbmalloc.lib ${HARVEST_TARGET}/tbb/lib/tbbmalloc_debug.lib + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb.dll ${HARVEST_TARGET}/tbb/lib/tbb_debug.dll + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbbmalloc.dll ${HARVEST_TARGET}/tbb/lib/tbbmalloc_debug.dll + # Normal collection of build artifacts COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb.lib ${HARVEST_TARGET}/tbb/lib/tbb.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbb.dll ${HARVEST_TARGET}/tbb/lib/tbb.dll COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/tbb/lib/tbbmalloc.lib ${HARVEST_TARGET}/tbb/lib/tbbmalloc.lib diff --git a/build_files/build_environment/cmake/usd.cmake b/build_files/build_environment/cmake/usd.cmake index c98a9cae959..5fa1872cabc 100644 --- a/build_files/build_environment/cmake/usd.cmake +++ b/build_files/build_environment/cmake/usd.cmake @@ -27,6 +27,9 @@ set(USD_EXTRA_ARGS -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} # This is a preventative measure that avoids possible conflicts when add-ons # try to load another USD library into the same process space. diff --git a/build_files/build_environment/cmake/versions.cmake b/build_files/build_environment/cmake/versions.cmake index 4882ca2a724..5ec5553079c 100644 --- a/build_files/build_environment/cmake/versions.cmake +++ b/build_files/build_environment/cmake/versions.cmake @@ -212,10 +212,6 @@ set(ICONV_VERSION 1.16) set(ICONV_URI http://ftp.gnu.org/pub/gnu/libiconv/libiconv-${ICONV_VERSION}.tar.gz) set(ICONV_HASH 7d2a800b952942bb2880efb00cfd524c) -set(LAPACK_VERSION 3.6.0) -set(LAPACK_URI http://www.netlib.org/lapack/lapack-${LAPACK_VERSION}.tgz) -set(LAPACK_HASH f2f6c67134e851fe189bb3ca1fbb5101) - set(SNDFILE_VERSION 1.0.28) set(SNDFILE_URI http://www.mega-nerd.com/libsndfile/files/libsndfile-${SNDFILE_VERSION}.tar.gz) set(SNDFILE_HASH 646b5f98ce89ac60cdb060fcd398247c) @@ -236,13 +232,13 @@ set(SPNAV_VERSION 0.2.3) set(SPNAV_URI http://downloads.sourceforge.net/project/spacenav/spacenav%20library%20%28SDK%29/libspnav%20${SPNAV_VERSION}/libspnav-${SPNAV_VERSION}.tar.gz) set(SPNAV_HASH 44d840540d53326d4a119c0f1aa7bf0a) -set(JEMALLOC_VERSION 5.0.1) +set(JEMALLOC_VERSION 5.2.1) set(JEMALLOC_URI https://github.com/jemalloc/jemalloc/releases/download/${JEMALLOC_VERSION}/jemalloc-${JEMALLOC_VERSION}.tar.bz2) -set(JEMALLOC_HASH 507f7b6b882d868730d644510491d18f) +set(JEMALLOC_HASH 3d41fbf006e6ebffd489bdb304d009ae) -set(XML2_VERSION 2.9.4) +set(XML2_VERSION 2.9.10) set(XML2_URI http://xmlsoft.org/sources/libxml2-${XML2_VERSION}.tar.gz) -set(XML2_HASH ae249165c173b1ff386ee8ad676815f5) +set(XML2_HASH 10942a1dc23137a8aa07f0639cbfece5) set(TINYXML_VERSION 2_6_2) set(TINYXML_VERSION_DOTS 2.6.2) @@ -269,23 +265,23 @@ set(FLEXBISON_HASH d87a3938194520d904013abef3df10ce) # NOTE: bzip.org domain does no longer belong to BZip 2 project, so we download # sources from Debian packaging. -set(BZIP2_VERSION 1.0.6) -set(BZIP2_URI http://http.debian.net/debian/pool/main/b/bzip2/bzip2_${BZIP2_VERSION}.orig.tar.bz2) -set(BZIP2_HASH d70a9ccd8bdf47e302d96c69fecd54925f45d9c7b966bb4ef5f56b770960afa7) +set(BZIP2_VERSION 1.0.8) +set(BZIP2_URI http://http.debian.net/debian/pool/main/b/bzip2/bzip2_${BZIP2_VERSION}.orig.tar.gz) +set(BZIP2_HASH ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269) -set(FFI_VERSION 3.2.1) +set(FFI_VERSION 3.3) set(FFI_URI https://sourceware.org/pub/libffi/libffi-${FFI_VERSION}.tar.gz) -set(FFI_HASH d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37) +set(FFI_HASH 72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056) -set(LZMA_VERSION 5.2.4) +set(LZMA_VERSION 5.2.5) set(LZMA_URI https://tukaani.org/xz/xz-${LZMA_VERSION}.tar.bz2) -set(LZMA_HASH 3313fd2a95f43d88e44264e6b015e7d03053e681860b0d5d3f9baca79c57b7bf) +set(LZMA_HASH 5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df) -set(SSL_VERSION 1.1.0i) +set(SSL_VERSION 1.1.1g) set(SSL_URI https://www.openssl.org/source/openssl-${SSL_VERSION}.tar.gz) -set(SSL_HASH ebbfc844a8c8cc0ea5dc10b86c9ce97f401837f3fa08c17b2cdadc118253cf99) +set(SSL_HASH ddb04774f1e32f0c49751e21b67216ac87852ceb056b75209af2443400636d46) -set(SQLITE_VERSION 3.24.0) +set(SQLITE_VERSION 3.31.1) set(SQLITE_URI https://www.sqlite.org/2018/sqlite-src-3240000.zip) set(SQLITE_HASH fb558c49ee21a837713c4f1e7e413309aabdd9c7) @@ -293,13 +289,13 @@ set(EMBREE_VERSION 3.10.0) set(EMBREE_URI https://github.com/embree/embree/archive/v${EMBREE_VERSION}.zip) set(EMBREE_HASH 4bbe29e7eaa46417efc75fc5f1e8eb87) -set(USD_VERSION 20.02) +set(USD_VERSION 20.05) set(USD_URI https://github.com/PixarAnimationStudios/USD/archive/v${USD_VERSION}.tar.gz) -set(USD_HASH 8901815f01469a7f4496bd60315a9d10) +set(USD_HASH 6d679e739e7f65725d9c029e37dda9fc) -set(OIDN_VERSION 1.0.0) -set(OIDN_URI https://github.com/OpenImageDenoise/oidn/releases/download/v${OIDN_VERSION}/oidn-${OIDN_VERSION}.src.zip) -set(OIDN_HASH 19fe67b0164e8f020ac8a4f520defe60) +set(OIDN_VERSION 1.2.1) +set(OIDN_URI https://github.com/OpenImageDenoise/oidn/releases/download/v${OIDN_VERSION}/oidn-${OIDN_VERSION}.src.tar.gz) +set(OIDN_HASH cbebc1a25eb6de62af3a59e943063608) set(LIBGLU_VERSION 9.0.1) set(LIBGLU_URI ftp://ftp.freedesktop.org/pub/mesa/glu/glu-${LIBGLU_VERSION}.tar.xz) @@ -312,3 +308,6 @@ set(MESA_HASH d60828056d77bfdbae0970f9b15fb1be) set(XR_OPENXR_SDK_VERSION 1.0.8) set(XR_OPENXR_SDK_URI https://github.com/KhronosGroup/OpenXR-SDK/archive/release-${XR_OPENXR_SDK_VERSION}.tar.gz) set(XR_OPENXR_SDK_HASH c6de63d2e0f9029aa58dfa97cad8ce07) +set(ISPC_VERSION v1.13.0) +set(ISPC_URI https://github.com/ispc/ispc/archive/${ISPC_VERSION}.tar.gz) +set(ISPC_HASH 4bf5e8d0020c4b9980faa702c1a6f25f) diff --git a/build_files/build_environment/install_deps.sh b/build_files/build_environment/install_deps.sh index b3d300565e2..49d7b8209ee 100755 --- a/build_files/build_environment/install_deps.sh +++ b/build_files/build_environment/install_deps.sh @@ -459,7 +459,7 @@ ALEMBIC_FORCE_BUILD=false ALEMBIC_FORCE_REBUILD=false ALEMBIC_SKIP=false -USD_VERSION="20.02" +USD_VERSION="20.05" USD_FORCE_BUILD=false USD_FORCE_REBUILD=false USD_SKIP=false diff --git a/build_files/build_environment/patches/cmakelists_hidapi.txt b/build_files/build_environment/patches/cmakelists_hidapi.txt deleted file mode 100644 index 239b9d88b16..00000000000 --- a/build_files/build_environment/patches/cmakelists_hidapi.txt +++ /dev/null @@ -1,20 +0,0 @@ -cmake_minimum_required(VERSION 2.8) -project(hidapi) - -set(SRC_FILES - windows/hid.c -) - -set(HEADER_FILES - hidapi/hidapi.h -) -include_directories(hidapi) -add_definitions(-DHID_API_STATIC) -add_library(hidapi STATIC ${SRC_FILES} ${HEADER_FILES}) - -install(TARGETS hidapi DESTINATION lib) - -INSTALL(FILES hidapi/hidapi.h - DESTINATION "include" - ) - diff --git a/build_files/build_environment/patches/hidapi.diff b/build_files/build_environment/patches/hidapi.diff deleted file mode 100644 index 720a8ae5ae9..00000000000 --- a/build_files/build_environment/patches/hidapi.diff +++ /dev/null @@ -1,15 +0,0 @@ ---- hidapi/hidapi.h 2011-10-25 20:58:16 -0600 -+++ hidapi/hidapi.h 2016-11-01 12:05:58 -0600 -@@ -30,7 +30,11 @@ - #include <wchar.h> - - #ifdef _WIN32 -- #define HID_API_EXPORT __declspec(dllexport) -+ #ifdef HID_API_STATIC -+ #define HID_API_EXPORT -+ #else -+ #define HID_API_EXPORT __declspec(dllexport) -+ #endif - #define HID_API_CALL - #else - #define HID_API_EXPORT /**< API export macro */ diff --git a/build_files/build_environment/patches/ispc.diff b/build_files/build_environment/patches/ispc.diff new file mode 100644 index 00000000000..710bfc7a448 --- /dev/null +++ b/build_files/build_environment/patches/ispc.diff @@ -0,0 +1,36 @@ +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} + ${CMAKE_CURRENT_SOURCE_DIR}/src + ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}) + # Compile options +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 "i386") ++ # 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/openimagedenoise.diff b/build_files/build_environment/patches/openimagedenoise.diff deleted file mode 100644 index 7bfc3aa2eba..00000000000 --- a/build_files/build_environment/patches/openimagedenoise.diff +++ /dev/null @@ -1,120 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 70ec895..e616b63 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -178,7 +178,9 @@ set_property(TARGET ${PROJECT_NAME} PROPERTY SOVERSION "0") - ## Open Image Denoise examples - ## ---------------------------------------------------------------------------- - --add_subdirectory(examples) -+if(WITH_EXAMPLE) -+ add_subdirectory(examples) -+endif() - - ## ---------------------------------------------------------------------------- - ## Open Image Denoise install and packaging -Submodule mkl-dnn contains modified content -diff --git a/mkl-dnn/cmake/TBB.cmake b/mkl-dnn/cmake/TBB.cmake -index 0711e699..c14210b6 100644 ---- a/mkl-dnn/cmake/TBB.cmake -+++ b/mkl-dnn/cmake/TBB.cmake -@@ -138,13 +138,13 @@ else() - set(TBB_LIBRARY_MALLOC TBB_LIBRARY_MALLOC-NOTFOUND) - if(APPLE) - find_path(TBB_INCLUDE_DIR tbb/task_scheduler_init.h PATHS ${TBB_ROOT}/include NO_DEFAULT_PATH) -- find_library(TBB_LIBRARY tbb PATHS ${TBB_ROOT}/lib NO_DEFAULT_PATH) -- find_library(TBB_LIBRARY_MALLOC tbbmalloc PATHS ${TBB_ROOT}/lib NO_DEFAULT_PATH) -+ find_library(TBB_LIBRARY tbb_static PATHS ${TBB_ROOT}/lib NO_DEFAULT_PATH) -+ find_library(TBB_LIBRARY_MALLOC tbbmalloc_static PATHS ${TBB_ROOT}/lib NO_DEFAULT_PATH) - else() - find_path(TBB_INCLUDE_DIR tbb/task_scheduler_init.h PATHS ${TBB_ROOT}/include NO_DEFAULT_PATH) - set(TBB_HINTS HINTS ${TBB_ROOT}/lib/intel64/gcc4.4 ${TBB_ROOT}/lib ${TBB_ROOT}/lib64 PATHS /usr/libx86_64-linux-gnu/) -- find_library(TBB_LIBRARY tbb ${TBB_HINTS}) -- find_library(TBB_LIBRARY_MALLOC tbbmalloc ${TBB_HINTS}) -+ find_library(TBB_LIBRARY tbb_static ${TBB_HINTS}) -+ find_library(TBB_LIBRARY_MALLOC tbbmalloc_static ${TBB_HINTS}) - endif() - endif() - -diff '--ignore-matching-lines=:' -ur '--exclude=*.svn*' -u -r ---- a/cmake/install.cmake 2019-08-12 18:02:20.794402575 +0200 -+++ b/cmake/install.cmake 2019-08-12 18:06:07.470045703 +0200 -@@ -18,6 +18,13 @@ - ## Install library - ## ---------------------------------------------------------------------------- - -+if(UNIX) -+install(FILES -+ ${CMAKE_BINARY_DIR}/libOpenImageDenoise.a -+ ${CMAKE_BINARY_DIR}/libmkldnn.a -+ ${CMAKE_BINARY_DIR}/libcommon.a -+ DESTINATION ${CMAKE_INSTALL_LIBDIR}) -+else() - install(TARGETS ${PROJECT_NAME} - EXPORT - ${PROJECT_NAME}_Export -@@ -38,6 +45,7 @@ - DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT devel - ) - endif() -+endif() - - ## ---------------------------------------------------------------------------- - ## Install headers -@@ -78,6 +86,7 @@ - ## Install CMake configuration files - ## ---------------------------------------------------------------------------- - -+if(NOT UNIX) - install(EXPORT ${PROJECT_NAME}_Export - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} - #NAMESPACE ${PROJECT_NAME}:: -@@ -92,3 +101,4 @@ - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} - COMPONENT devel - ) -+endif() -diff '--ignore-matching-lines=:' -ur '--exclude=*.svn*' -u -r ---- a/CMakeLists.txt 2019-08-12 14:22:00.974078598 +0200 -+++ b/CMakeLists.txt 2019-08-12 18:05:05.949057375 +0200 -@@ -14,7 +14,11 @@ - ## limitations under the License. ## - ## ======================================================================== ## - --cmake_minimum_required(VERSION 3.1) -+if(UNIX) -+ cmake_minimum_required(VERSION 3.1) -+else() -+ cmake_minimum_required(VERSION 3.13) -+endif() - - set(OIDN_VERSION_MAJOR 1) - set(OIDN_VERSION_MINOR 0) -@@ -32,13 +36,8 @@ - set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake") - - # Build as shared or static library --if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.13.0") -- option(OIDN_STATIC_LIB "Build Open Image Denoise as a static library.") -- mark_as_advanced(CLEAR OIDN_STATIC_LIB) --else() -- set(OIDN_STATIC_LIB OFF CACHE BOOL "Build Open Image Denoise as a static library." FORCE) -- mark_as_advanced(OIDN_STATIC_LIB) --endif() -+option(OIDN_STATIC_LIB "Build Open Image Denoise as a static library.") -+mark_as_advanced(CLEAR OIDN_STATIC_LIB) - if(OIDN_STATIC_LIB) - set(OIDN_LIB_TYPE STATIC) - else() -diff -Naur orig/core/api.cpp external_openimagedenoise/core/api.cpp ---- orig/core/api.cpp 2019-07-19 08:37:04 -0600 -+++ external_openimagedenoise/core/api.cpp 2020-01-21 15:10:56 -0700 -@@ -15,7 +15,7 @@ - // ======================================================================== // - - #ifdef _WIN32 --# define OIDN_API extern "C" __declspec(dllexport) -+# define OIDN_API extern "C" - #else - # define OIDN_API extern "C" __attribute__ ((visibility ("default"))) - #endif diff --git a/build_files/build_environment/patches/usd.diff b/build_files/build_environment/patches/usd.diff index adee3d2e458..8f457271a5c 100644 --- a/build_files/build_environment/patches/usd.diff +++ b/build_files/build_environment/patches/usd.diff @@ -11,10 +11,10 @@ diff -x .git -ur usd.orig/cmake/defaults/Packages.cmake external_usd/cmake/defau # --math diff -x .git -ur usd.orig/pxr/base/plug/initConfig.cpp external_usd/pxr/base/plug/initConfig.cpp ---- usd.orig/pxr/base/plug/initConfig.cpp 2019-10-24 22:39:53.000000000 +0200 -+++ external_usd/pxr/base/plug/initConfig.cpp 2019-12-11 11:00:37.643323127 +0100 -@@ -69,8 +69,38 @@ - +--- usd.orig/pxr/base/plug/initConfig.cpp.orig 2020-06-12 17:20:07.478199779 +0200 ++++ external_usd/pxr/base/plug/initConfig.cpp 2020-06-12 17:25:28.648588552 +0200 +@@ -69,10 +69,40 @@ + ARCH_CONSTRUCTOR(Plug_InitConfig, 2, void) { + /* The contents of this constructor have been moved to usd_initialise_plugin_path(...) */ @@ -39,7 +39,9 @@ diff -x .git -ur usd.orig/pxr/base/plug/initConfig.cpp external_usd/pxr/base/plu +usd_initialise_plugin_path(const char *datafiles_usd_path) +{ std::vector<std::string> result; - + + std::vector<std::string> debugMessages; + + // Add Blender-specific paths. They MUST end in a slash, or symlinks will not be treated as directory. + if (datafiles_usd_path != NULL && datafiles_usd_path[0] != '\0') { + std::string datafiles_usd_path_str(datafiles_usd_path); @@ -49,14 +51,14 @@ diff -x .git -ur usd.orig/pxr/base/plug/initConfig.cpp external_usd/pxr/base/plu + result.push_back(datafiles_usd_path_str); + } + - // Determine the absolute path to the Plug shared library. - // Any relative paths specified in the plugin search path will be - // anchored to this directory, to allow for relocatability. -@@ -94,9 +124,24 @@ - _AppendPathList(&result, installLocation, sharedLibPath); + // Determine the absolute path to the Plug shared library. Any relative + // paths specified in the plugin search path will be anchored to this + // directory, to allow for relocatability. Note that this can fail when pxr +@@ -114,9 +144,24 @@ + _AppendPathList(&result, installLocation, binaryPath); #endif // PXR_INSTALL_LOCATION - -- Plug_SetPaths(result); + +- Plug_SetPaths(result, debugMessages); -} + if (!TfGetenv("PXR_PATH_DEBUG").empty()) { + printf("USD Plugin paths: (%zu in total):\n", result.size()); @@ -64,10 +66,10 @@ diff -x .git -ur usd.orig/pxr/base/plug/initConfig.cpp external_usd/pxr/base/plu + printf(" %s\n", path.c_str()); + } + } - -+ Plug_SetPaths(result); + ++ Plug_SetPaths(result, debugMessages); } - + PXR_NAMESPACE_CLOSE_SCOPE + +/* Workaround to make it possible to pass a path at runtime to USD. */ @@ -79,18 +81,6 @@ diff -x .git -ur usd.orig/pxr/base/plug/initConfig.cpp external_usd/pxr/base/plu + PXR_NS::usd_initialise_plugin_path(datafiles_usd_path); +} +} -diff -Naur external_usd_orig/pxr/base/tf/preprocessorUtils.h external_usd/pxr/base/tf/preprocessorUtils.h ---- external_usd_orig/pxr/base/tf/preprocessorUtils.h 2019-10-24 14:39:53 -0600 -+++ external_usd/pxr/base/tf/preprocessorUtils.h 2020-01-14 09:30:18 -0700 -@@ -189,7 +189,7 @@ - /// Exapnds to 1 if the argument is a tuple, and 0 otherwise. - /// \ingroup group_tf_Preprocessor - /// \hideinitializer --#if defined(ARCH_OS_WINDOWS) -+#if defined(ARCH_COMPILER_MSVC) - #define TF_PP_IS_TUPLE(sequence) \ - BOOST_VMD_IS_TUPLE(sequence) - #else 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 diff --git a/build_files/buildbot/README.md b/build_files/buildbot/README.md index cf129f83b39..06733c9a42d 100644 --- a/build_files/buildbot/README.md +++ b/build_files/buildbot/README.md @@ -8,7 +8,7 @@ Code signing is done as part of INSTALL target, which makes it possible to sign files which are aimed into a bundle and coming from a non-signed source (such as libraries SVN). -This is achieved by specifying `slave_codesign.cmake` as a post-install script +This is achieved by specifying `worker_codesign.cmake` as a post-install script run by CMake. This CMake script simply involves an utility script written in Python which takes care of an actual signing. diff --git a/build_files/buildbot/buildbot_utils.py b/build_files/buildbot/buildbot_utils.py index 39a00980cc8..e8adf5ba810 100644 --- a/build_files/buildbot/buildbot_utils.py +++ b/build_files/buildbot/buildbot_utils.py @@ -40,8 +40,8 @@ class Builder: # Buildbot runs from build/ directory self.blender_dir = os.path.abspath(os.path.join('..', 'blender.git')) - self.build_dir = os.path.abspath(os.path.join('..', 'build', name)) - self.install_dir = os.path.abspath(os.path.join('..', 'install', name)) + self.build_dir = os.path.abspath(os.path.join('..', 'build')) + self.install_dir = os.path.abspath(os.path.join('..', 'install')) self.upload_dir = os.path.abspath(os.path.join('..', 'install')) # Detect platform diff --git a/build_files/buildbot/codesign/base_code_signer.py b/build_files/buildbot/codesign/base_code_signer.py index 2f86531a4d0..dca771cdbaf 100644 --- a/build_files/buildbot/codesign/base_code_signer.py +++ b/build_files/buildbot/codesign/base_code_signer.py @@ -48,6 +48,7 @@ import shutil import subprocess import time import tarfile +import uuid from pathlib import Path from tempfile import TemporaryDirectory @@ -121,21 +122,10 @@ class BaseCodeSigner(metaclass=abc.ABCMeta): # Consider this an input of the code signing server. unsigned_storage_dir: Path - # Information about archive which contains files which are to be signed. - # - # This archive is created by the buildbot worked and acts as an input for - # the code signing server. - unsigned_archive_info: ArchiveWithIndicator - # Storage where signed files are stored. # Consider this an output of the code signer server. signed_storage_dir: Path - # Information about archive which contains signed files. - # - # This archive is created by the code signing server. - signed_archive_info: ArchiveWithIndicator - # Platform the code is currently executing on. platform: util.Platform @@ -146,50 +136,44 @@ class BaseCodeSigner(metaclass=abc.ABCMeta): # Unsigned (signing server input) configuration. self.unsigned_storage_dir = absolute_shared_storage_dir / 'unsigned' - self.unsigned_archive_info = ArchiveWithIndicator( - self.unsigned_storage_dir, 'unsigned_files.tar', 'ready.stamp') # Signed (signing server output) configuration. self.signed_storage_dir = absolute_shared_storage_dir / 'signed' - self.signed_archive_info = ArchiveWithIndicator( - self.signed_storage_dir, 'signed_files.tar', 'ready.stamp') self.platform = util.get_current_platform() - """ - General note on cleanup environment functions. - - It is expected that there is only one instance of the code signer server - running for a given input/output directory, and that it serves a single - buildbot worker. - By its nature, a buildbot worker only produces one build at a time and - never performs concurrent builds. - This leads to a conclusion that when starting in a clean environment - there shouldn't be any archives remaining from a previous build. - - However, it is possible to have various failure scenarios which might - leave the environment in a non-clean state: + def cleanup_environment_for_builder(self) -> None: + # TODO(sergey): Revisit need of cleaning up the existing files. + # In practice it wasn't so helpful, and with multiple clients + # talking to the same server it becomes even mor etricky. + pass - - Network hiccup which makes buildbot worker to stop current build - and re-start it after connection to server is re-established. + def cleanup_environment_for_signing_server(self) -> None: + # TODO(sergey): Revisit need of cleaning up the existing files. + # In practice it wasn't so helpful, and with multiple clients + # talking to the same server it becomes even mor etricky. + pass - Note, this could also happen during buildbot server maintenance. + def generate_request_id(self) -> str: + """ + Generate an unique identifier for code signing request. + """ + return str(uuid.uuid4()) - - Signing server might get restarted due to updates or other reasons. + def archive_info_for_request_id( + self, path: Path, request_id: str) -> ArchiveWithIndicator: + return ArchiveWithIndicator( + path, f'{request_id}.tar', f'{request_id}.ready') - Requiring manual interaction in such cases is not something good to - require, so here we simply assume that the system is used the way it is - intended to and restore environment to a prestine clean state. - """ + def signed_archive_info_for_request_id( + self, request_id: str) -> ArchiveWithIndicator: + return self.archive_info_for_request_id( + self.signed_storage_dir, request_id) - def cleanup_environment_for_builder(self) -> None: - self.unsigned_archive_info.clean() - self.signed_archive_info.clean() - - def cleanup_environment_for_signing_server(self) -> None: - # Don't clear the requested to-be-signed archive since we might be - # restarting signing machine while the buildbot is busy. - self.signed_archive_info.clean() + def unsigned_archive_info_for_request_id( + self, request_id: str) -> ArchiveWithIndicator: + return self.archive_info_for_request_id( + self.unsigned_storage_dir, request_id) ############################################################################ # Buildbot worker side helpers. @@ -232,7 +216,7 @@ class BaseCodeSigner(metaclass=abc.ABCMeta): if self.check_file_is_to_be_signed(file)] return files_to_be_signed - def wait_for_signed_archive_or_die(self) -> None: + def wait_for_signed_archive_or_die(self, request_id) -> None: """ Wait until archive with signed files is available. @@ -240,13 +224,19 @@ class BaseCodeSigner(metaclass=abc.ABCMeta): is still no responce from the signing server the application will exit with a non-zero exit code. """ + + signed_archive_info = self.signed_archive_info_for_request_id( + request_id) + unsigned_archive_info = self.unsigned_archive_info_for_request_id( + request_id) + timeout_in_seconds = self.config.TIMEOUT_IN_SECONDS time_start = time.monotonic() - while not self.signed_archive_info.is_ready(): + while not signed_archive_info.is_ready(): time.sleep(1) time_slept_in_seconds = time.monotonic() - time_start if time_slept_in_seconds > timeout_in_seconds: - self.unsigned_archive_info.clean() + unsigned_archive_info.clean() raise SystemExit("Signing server didn't finish signing in " f"{timeout_in_seconds} seconds, dying :(") @@ -303,13 +293,19 @@ class BaseCodeSigner(metaclass=abc.ABCMeta): return logger_builder.info('Found %d files to sign.', len(files)) + request_id = self.generate_request_id() + signed_archive_info = self.signed_archive_info_for_request_id( + request_id) + unsigned_archive_info = self.unsigned_archive_info_for_request_id( + request_id) + pack_files(files=files, - archive_filepath=self.unsigned_archive_info.archive_filepath) - self.unsigned_archive_info.tag_ready() + archive_filepath=unsigned_archive_info.archive_filepath) + unsigned_archive_info.tag_ready() # Wait for the signing server to finish signing. logger_builder.info('Waiting signing server to sign the files...') - self.wait_for_signed_archive_or_die() + self.wait_for_signed_archive_or_die(request_id) # Extract signed files from archive and move files to final location. with TemporaryDirectory(prefix='blender-buildbot-') as temp_dir_str: @@ -317,7 +313,7 @@ class BaseCodeSigner(metaclass=abc.ABCMeta): logger_builder.info('Extracting signed files from archive...') extract_files( - archive_filepath=self.signed_archive_info.archive_filepath, + archive_filepath=signed_archive_info.archive_filepath, extraction_dir=unpacked_signed_files_dir) destination_dir = path @@ -327,19 +323,44 @@ class BaseCodeSigner(metaclass=abc.ABCMeta): unpacked_signed_files_dir, destination_dir) logger_builder.info('Removing archive with signed files...') - self.signed_archive_info.clean() + signed_archive_info.clean() ############################################################################ # Signing server side helpers. - def wait_for_sign_request(self) -> None: + def wait_for_sign_request(self) -> str: """ Wait for the buildbot to request signing of an archive. + + Returns an identifier of signing request. """ + # TOOD(sergey): Support graceful shutdown on Ctrl-C. - while not self.unsigned_archive_info.is_ready(): + + logger_server.info( + f'Waiting for a request directory {self.unsigned_storage_dir} to appear.') + while not self.unsigned_storage_dir.exists(): + time.sleep(1) + + logger_server.info( + 'Waiting for a READY indicator of any signing request.') + request_id = None + while request_id is None: + for file in self.unsigned_storage_dir.iterdir(): + if file.suffix != '.ready': + continue + request_id = file.stem + logger_server.info(f'Found READY for request ID {request_id}.') + if request_id is None: + time.sleep(1) + + unsigned_archive_info = self.unsigned_archive_info_for_request_id( + request_id) + while not unsigned_archive_info.is_ready(): time.sleep(1) + return request_id + @abc.abstractmethod def sign_all_files(self, files: List[AbsoluteAndRelativeFileName]) -> None: """ @@ -348,7 +369,7 @@ class BaseCodeSigner(metaclass=abc.ABCMeta): NOTE: Signing should happen in-place. """ - def run_signing_pipeline(self): + def run_signing_pipeline(self, request_id: str): """ Run the full signing pipeline starting from the point when buildbot worker have requested signing. @@ -360,9 +381,14 @@ class BaseCodeSigner(metaclass=abc.ABCMeta): with TemporaryDirectory(prefix='blender-codesign-') as temp_dir_str: temp_dir = Path(temp_dir_str) + signed_archive_info = self.signed_archive_info_for_request_id( + request_id) + unsigned_archive_info = self.unsigned_archive_info_for_request_id( + request_id) + logger_server.info('Extracting unsigned files from archive...') extract_files( - archive_filepath=self.unsigned_archive_info.archive_filepath, + archive_filepath=unsigned_archive_info.archive_filepath, extraction_dir=temp_dir) logger_server.info('Collecting all files which needs signing...') @@ -374,11 +400,11 @@ class BaseCodeSigner(metaclass=abc.ABCMeta): logger_server.info('Packing signed files...') pack_files(files=files, - archive_filepath=self.signed_archive_info.archive_filepath) - self.signed_archive_info.tag_ready() + archive_filepath=signed_archive_info.archive_filepath) + signed_archive_info.tag_ready() logger_server.info('Removing signing request...') - self.unsigned_archive_info.clean() + unsigned_archive_info.clean() logger_server.info('Signing is complete.') @@ -389,11 +415,11 @@ class BaseCodeSigner(metaclass=abc.ABCMeta): while True: logger_server.info('Waiting for the signing request in %s...', self.unsigned_storage_dir) - self.wait_for_sign_request() + request_id = self.wait_for_sign_request() logger_server.info( - 'Got signing request, beging signign procedure.') - self.run_signing_pipeline() + f'Beging signign procedure for request ID {request_id}.') + self.run_signing_pipeline(request_id) ############################################################################ # Command executing. diff --git a/build_files/buildbot/slave_rsync.py b/build_files/buildbot/slave_rsync.py deleted file mode 100644 index 19f1e67408d..00000000000 --- a/build_files/buildbot/slave_rsync.py +++ /dev/null @@ -1,37 +0,0 @@ -# ##### BEGIN GPL LICENSE BLOCK ##### -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# ##### END GPL LICENSE BLOCK ##### - -# <pep8 compliant> - -# Runs on buildbot slave, rsync zip directly to buildbot server rather -# than using upload which is much slower - -import buildbot_utils -import os -import sys - -if __name__ == "__main__": - builder = buildbot_utils.create_builder_from_arguments() - - # rsync, this assumes ssh keys are setup so no password is needed - local_zip = "buildbot_upload.zip" - remote_folder = "builder.blender.org:/data/buildbot-master/uploaded/" - remote_zip = remote_folder + "buildbot_upload_" + builder.name + ".zip" - - command = ["rsync", "-avz", local_zip, remote_zip] - buildbot_utils.call(command) diff --git a/build_files/buildbot/slave_bundle_dmg.py b/build_files/buildbot/worker_bundle_dmg.py index 11d2c3cb602..cd3da85e12a 100755 --- a/build_files/buildbot/slave_bundle_dmg.py +++ b/build_files/buildbot/worker_bundle_dmg.py @@ -30,7 +30,7 @@ from tempfile import TemporaryDirectory, NamedTemporaryFile from typing import List BUILDBOT_DIRECTORY = Path(__file__).absolute().parent -CODESIGN_SCRIPT = BUILDBOT_DIRECTORY / 'slave_codesign.py' +CODESIGN_SCRIPT = BUILDBOT_DIRECTORY / 'worker_codesign.py' BLENDER_GIT_ROOT_DIRECTORY = BUILDBOT_DIRECTORY.parent.parent DARWIN_DIRECTORY = BLENDER_GIT_ROOT_DIRECTORY / 'release' / 'darwin' diff --git a/build_files/buildbot/slave_codesign.cmake b/build_files/buildbot/worker_codesign.cmake index fd2beae11a0..f37feaef407 100644 --- a/build_files/buildbot/slave_codesign.cmake +++ b/build_files/buildbot/worker_codesign.cmake @@ -33,7 +33,7 @@ else() endif() execute_process( - COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_LIST_DIR}/slave_codesign.py" + COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_LIST_DIR}/worker_codesign.py" "${CMAKE_INSTALL_PREFIX}" WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} RESULT_VARIABLE exit_code diff --git a/build_files/buildbot/slave_codesign.py b/build_files/buildbot/worker_codesign.py index a82ee98b1b5..a82ee98b1b5 100755 --- a/build_files/buildbot/slave_codesign.py +++ b/build_files/buildbot/worker_codesign.py diff --git a/build_files/buildbot/slave_compile.py b/build_files/buildbot/worker_compile.py index 65cadea587b..f1357e1864f 100644 --- a/build_files/buildbot/slave_compile.py +++ b/build_files/buildbot/worker_compile.py @@ -25,7 +25,7 @@ import buildbot_utils def get_cmake_options(builder): post_install_script = os.path.join( - builder.blender_dir, 'build_files', 'buildbot', 'slave_codesign.cmake') + builder.blender_dir, 'build_files', 'buildbot', 'worker_codesign.cmake') config_file = "build_files/cmake/config/blender_release.cmake" options = ['-DCMAKE_BUILD_TYPE:STRING=Release', @@ -35,7 +35,7 @@ def get_cmake_options(builder): options.append('-DCMAKE_OSX_ARCHITECTURES:STRING=x86_64') options.append('-DCMAKE_OSX_DEPLOYMENT_TARGET=10.9') elif builder.platform == 'win': - options.extend(['-G', 'Visual Studio 15 2017 Win64']) + options.extend(['-G', 'Visual Studio 16 2019', '-A', 'x64']) options.extend(['-DPOSTINSTALL_SCRIPT:PATH=' + post_install_script]) elif builder.platform == 'linux': config_file = "build_files/buildbot/config/blender_linux.cmake" diff --git a/build_files/buildbot/slave_pack.py b/build_files/buildbot/worker_pack.py index 8549a7881e6..87ee49c87d8 100644 --- a/build_files/buildbot/slave_pack.py +++ b/build_files/buildbot/worker_pack.py @@ -18,7 +18,7 @@ # <pep8 compliant> -# Runs on buildbot slave, creating a release package using the build +# Runs on buildbot worker, creating a release package using the build # system and zipping it into buildbot_upload.zip. This is then uploaded # to the master in the next buildbot step. @@ -110,7 +110,7 @@ def pack_mac(builder): release_dir = os.path.join(builder.blender_dir, 'release', 'darwin') buildbot_dir = os.path.join(builder.blender_dir, 'build_files', 'buildbot') - bundle_script = os.path.join(buildbot_dir, 'slave_bundle_dmg.py') + bundle_script = os.path.join(buildbot_dir, 'worker_bundle_dmg.py') command = [bundle_script] command += ['--dmg', package_filepath] diff --git a/build_files/buildbot/slave_test.py b/build_files/buildbot/worker_test.py index b959568a5c6..b959568a5c6 100644 --- a/build_files/buildbot/slave_test.py +++ b/build_files/buildbot/worker_test.py diff --git a/build_files/buildbot/slave_update.py b/build_files/buildbot/worker_update.py index 36a7ae31c84..36a7ae31c84 100644 --- a/build_files/buildbot/slave_update.py +++ b/build_files/buildbot/worker_update.py diff --git a/build_files/cmake/Modules/FindOpenImageDenoise.cmake b/build_files/cmake/Modules/FindOpenImageDenoise.cmake index b3d0dab3289..c7215d30e8a 100644 --- a/build_files/cmake/Modules/FindOpenImageDenoise.cmake +++ b/build_files/cmake/Modules/FindOpenImageDenoise.cmake @@ -48,7 +48,14 @@ SET(_openimagedenoise_FIND_COMPONENTS # These are needed when building statically SET(_openimagedenoise_FIND_STATIC_COMPONENTS common + + # These additional library names change between versions, we list all of them + # so builds work with multiple versions. Missing libraries are skipped. + dnnl_cpu + dnnl_common + dnnl_cpu # Second time because of circular dependency mkldnn + dnnl ) SET(_openimagedenoise_LIBRARIES) diff --git a/build_files/cmake/config/blender_full.cmake b/build_files/cmake/config/blender_full.cmake index a997d7c0e68..41bee263e22 100644 --- a/build_files/cmake/config/blender_full.cmake +++ b/build_files/cmake/config/blender_full.cmake @@ -11,6 +11,7 @@ set(WITH_CODEC_AVI ON CACHE BOOL "" FORCE) set(WITH_CODEC_FFMPEG ON CACHE BOOL "" FORCE) set(WITH_CODEC_SNDFILE ON CACHE BOOL "" FORCE) set(WITH_CYCLES ON CACHE BOOL "" FORCE) +set(WITH_CYCLES_EMBREE ON CACHE BOOL "" FORCE) set(WITH_CYCLES_OSL ON CACHE BOOL "" FORCE) set(WITH_DRACO ON CACHE BOOL "" FORCE) set(WITH_FFTW3 ON CACHE BOOL "" FORCE) diff --git a/build_files/cmake/config/blender_lite.cmake b/build_files/cmake/config/blender_lite.cmake index f3a6d4608fe..68b9bd1d94d 100644 --- a/build_files/cmake/config/blender_lite.cmake +++ b/build_files/cmake/config/blender_lite.cmake @@ -15,6 +15,7 @@ set(WITH_CODEC_AVI OFF CACHE BOOL "" FORCE) set(WITH_CODEC_FFMPEG OFF CACHE BOOL "" FORCE) set(WITH_CODEC_SNDFILE OFF CACHE BOOL "" FORCE) set(WITH_CYCLES OFF CACHE BOOL "" FORCE) +set(WITH_CYCLES_EMBREE OFF CACHE BOOL "" FORCE) set(WITH_CYCLES_OSL OFF CACHE BOOL "" FORCE) set(WITH_CYCLES_DEVICE_OPTIX OFF CACHE BOOL "" FORCE) set(WITH_DRACO OFF CACHE BOOL "" FORCE) diff --git a/build_files/cmake/config/blender_release.cmake b/build_files/cmake/config/blender_release.cmake index 01a59e451aa..5fce64ce719 100644 --- a/build_files/cmake/config/blender_release.cmake +++ b/build_files/cmake/config/blender_release.cmake @@ -12,6 +12,7 @@ set(WITH_CODEC_AVI ON CACHE BOOL "" FORCE) set(WITH_CODEC_FFMPEG ON CACHE BOOL "" FORCE) set(WITH_CODEC_SNDFILE ON CACHE BOOL "" FORCE) set(WITH_CYCLES ON CACHE BOOL "" FORCE) +set(WITH_CYCLES_EMBREE ON CACHE BOOL "" FORCE) set(WITH_CYCLES_OSL ON CACHE BOOL "" FORCE) set(WITH_DRACO ON CACHE BOOL "" FORCE) set(WITH_FFTW3 ON CACHE BOOL "" FORCE) diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake index db939b1d00c..01d48364435 100644 --- a/build_files/cmake/platform/platform_win32.cmake +++ b/build_files/cmake/platform/platform_win32.cmake @@ -539,10 +539,10 @@ if(WITH_OPENIMAGEDENOISE) set(OPENIMAGEDENOISE_LIBRARIES optimized ${OPENIMAGEDENOISE_LIBPATH}/OpenImageDenoise.lib optimized ${OPENIMAGEDENOISE_LIBPATH}/common.lib - optimized ${OPENIMAGEDENOISE_LIBPATH}/mkldnn.lib + optimized ${OPENIMAGEDENOISE_LIBPATH}/dnnl.lib debug ${OPENIMAGEDENOISE_LIBPATH}/OpenImageDenoise_d.lib debug ${OPENIMAGEDENOISE_LIBPATH}/common_d.lib - debug ${OPENIMAGEDENOISE_LIBPATH}/mkldnn_d.lib) + debug ${OPENIMAGEDENOISE_LIBPATH}/dnnl_d.lib) set(OPENIMAGEDENOISE_DEFINITIONS) endif() |