diff options
author | Ray Molenkamp <github@lazydodo.com> | 2020-06-25 13:44:39 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2020-06-25 14:00:58 +0300 |
commit | d3283ef1210fe63f75a3b1a60efa3abe5763e6ad (patch) | |
tree | 60f7b19076a22ec4af7e019e2b17f3859dc5c702 /build_files/build_environment/cmake | |
parent | 6431b113815e8faf92e26427f87dc2134c98fdc4 (diff) |
Build: upgrade OpenImageDenoise to 1.2.1
This requires ISPC for building OpenImageDenoise, so that is now added as
a dependency as well. Blender itself does not need ISPC for building so it
is not included as part of the precompiled libraries.
Differential Revision: https://developer.blender.org/D7641
Diffstat (limited to 'build_files/build_environment/cmake')
5 files changed, 103 insertions, 8 deletions
diff --git a/build_files/build_environment/cmake/ispc.cmake b/build_files/build_environment/cmake/ispc.cmake new file mode 100644 index 00000000000..1896c85bc88 --- /dev/null +++ b/build_files/build_environment/cmake/ispc.cmake @@ -0,0 +1,62 @@ +# ***** 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 + -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/setup_mingw64.cmake b/build_files/build_environment/cmake/setup_mingw64.cmake index 5ac9722d23d..bfffbe7770f 100644 --- a/build_files/build_environment/cmake/setup_mingw64.cmake +++ b/build_files/build_environment/cmake/setup_mingw64.cmake @@ -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/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/versions.cmake b/build_files/build_environment/cmake/versions.cmake index e2788abdb06..d42102c4374 100644 --- a/build_files/build_environment/cmake/versions.cmake +++ b/build_files/build_environment/cmake/versions.cmake @@ -297,9 +297,9 @@ set(USD_VERSION 20.05) set(USD_URI https://github.com/PixarAnimationStudios/USD/archive/v${USD_VERSION}.tar.gz) 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 +312,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) |