[Bf-blender-cvs] [d3283ef1210] master: Build: upgrade OpenImageDenoise to 1.2.1

Ray Molenkamp noreply at git.blender.org
Thu Jun 25 13:06:12 CEST 2020


Commit: d3283ef1210fe63f75a3b1a60efa3abe5763e6ad
Author: Ray Molenkamp
Date:   Thu Jun 25 12:44:39 2020 +0200
Branches: master
https://developer.blender.org/rBd3283ef1210fe63f75a3b1a60efa3abe5763e6ad

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

===================================================================

M	build_files/build_environment/CMakeLists.txt
A	build_files/build_environment/cmake/ispc.cmake
M	build_files/build_environment/cmake/openimagedenoise.cmake
M	build_files/build_environment/cmake/setup_mingw64.cmake
M	build_files/build_environment/cmake/tbb.cmake
M	build_files/build_environment/cmake/versions.cmake
A	build_files/build_environment/patches/ispc.diff
D	build_files/build_environment/patches/openimagedenoise.diff
M	build_files/cmake/Modules/FindOpenImageDenoise.cmake
M	build_files/cmake/platform/platform_win32.cmake

===================================================================

diff --git a/build_files/build_environment/CMakeLists.txt b/build_files/build_environment/CMakeLists.txt
index dd90eb9adde..0badc526c07 100644
--- a/build_files/build_environment/CMakeLists.txt
+++ b/build_files/build_environment/CMakeLists.txt
@@ -97,6 +97,7 @@ 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)
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)
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 output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list