[Bf-blender-cvs] [591c7e79b7d] cycles_path_guiding: deps: better fix for static embree

Ray Molenkamp noreply at git.blender.org
Sat Jun 25 05:11:30 CEST 2022


Commit: 591c7e79b7d05df2a7d63682821d78343f256845
Author: Ray Molenkamp
Date:   Fri Jun 24 21:11:28 2022 -0600
Branches: cycles_path_guiding
https://developer.blender.org/rB591c7e79b7d05df2a7d63682821d78343f256845

deps: better fix for static embree

Problem is actually caused by

https://github.com/embree/embree/commit/7619ec5c015c51c6df0b69f6efd95666eb6b8f76

that removed the static define in rtcore_config.h
leading openpgl and blender both to assume we
were dealing with a dynamic embree which made
things rather unhappy at link time.

this adds a patch embree to generate a proper
rtcore_config.h header file again.

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

M	build_files/build_environment/cmake/embree.cmake
M	build_files/build_environment/cmake/openpgl.cmake
A	build_files/build_environment/patches/embree.diff

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

diff --git a/build_files/build_environment/cmake/embree.cmake b/build_files/build_environment/cmake/embree.cmake
index 02258aabeec..56d129594ef 100644
--- a/build_files/build_environment/cmake/embree.cmake
+++ b/build_files/build_environment/cmake/embree.cmake
@@ -39,6 +39,7 @@ ExternalProject_Add(external_embree
   URL_HASH ${EMBREE_HASH_TYPE}=${EMBREE_HASH}
   PREFIX ${BUILD_DIR}/embree
   CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS}
+  PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/embree/src/external_embree < ${PATCH_DIR}/embree.diff
   INSTALL_DIR ${LIBDIR}/embree
 )
 
diff --git a/build_files/build_environment/cmake/openpgl.cmake b/build_files/build_environment/cmake/openpgl.cmake
index cdc2651c4d1..13b9d807f31 100644
--- a/build_files/build_environment/cmake/openpgl.cmake
+++ b/build_files/build_environment/cmake/openpgl.cmake
@@ -10,12 +10,6 @@ set(OPENPGL_EXTRA_ARGS
     -DTBB_ROOT=${LIBDIR}/tbb
     -Dembree_DIR=${LIBDIR}/embree/lib/cmake/embree-${EMBREE_VERSION}
     -DCMAKE_DEBUG_POSTFIX=_d
-# openpgl's build uses the embree config files which are aware it is
-# a static version of embree, but never actually pass -DEMBREE_STATIC_LIB
-# to openpgl's CXX flags, resulting in the assumption that embree is dynamic,
-# which causes linker errors when we link it against static embree in the final
-# blender binary.
-    -DCMAKE_CXX_FLAGS=-DEMBREE_STATIC_LIB
 )
 
 if(TBB_STATIC_LIBRARY)
diff --git a/build_files/build_environment/patches/embree.diff b/build_files/build_environment/patches/embree.diff
new file mode 100644
index 00000000000..1b36baacc57
--- /dev/null
+++ b/build_files/build_environment/patches/embree.diff
@@ -0,0 +1,11 @@
+diff -Naur org/kernels/rtcore_config.h.in embree-3.13.4/kernels/rtcore_config.h.in
+--- org/kernels/rtcore_config.h.in      2022-06-14 22:13:52 -0600
++++ embree-3.13.4/kernels/rtcore_config.h.in    2022-06-24 15:20:12 -0600
+@@ -14,6 +14,7 @@
+ #cmakedefine01 EMBREE_MIN_WIDTH
+ #define RTC_MIN_WIDTH EMBREE_MIN_WIDTH
+
++#cmakedefine EMBREE_STATIC_LIB
+ #cmakedefine EMBREE_API_NAMESPACE
+
+ #if defined(EMBREE_API_NAMESPACE)



More information about the Bf-blender-cvs mailing list