[Bf-blender-cvs] [c76c8ee3a0d] blender-v3.3-release: deps_builder: OpenCollada fixes for windows

Ray Molenkamp noreply at git.blender.org
Thu Nov 3 15:04:28 CET 2022


Commit: c76c8ee3a0d7a59abbd6c49df7eae70f91ada668
Author: Ray Molenkamp
Date:   Thu Oct 20 18:29:59 2022 -0600
Branches: blender-v3.3-release
https://developer.blender.org/rBc76c8ee3a0d7a59abbd6c49df7eae70f91ada668

deps_builder: OpenCollada fixes for windows

- build and use our version of libxml

- the cli tools had a linker error due
to it trying to link a shared version
of libxml, disabled both and zlib 1.2.3
with a patch since we do not want/need
them for blender.

- postfix the libraries with _d for debug
automatically so we don't have to fix that
during the harvest.

due to this only being windows changes no
rebuild needed for the other platforms.

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

M	build_files/build_environment/CMakeLists.txt
M	build_files/build_environment/cmake/opencollada.cmake
M	build_files/build_environment/cmake/xml2.cmake
M	build_files/build_environment/patches/opencollada.diff

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

diff --git a/build_files/build_environment/CMakeLists.txt b/build_files/build_environment/CMakeLists.txt
index 2cd225ebc85..d904356b25f 100644
--- a/build_files/build_environment/CMakeLists.txt
+++ b/build_files/build_environment/CMakeLists.txt
@@ -96,6 +96,8 @@ include(cmake/openimagedenoise.cmake)
 include(cmake/embree.cmake)
 include(cmake/fmt.cmake)
 include(cmake/robinmap.cmake)
+include(cmake/xml2.cmake)
+
 if(NOT APPLE)
   include(cmake/xr_openxr.cmake)
   if(NOT WIN32 OR BUILD_MODE STREQUAL Release)
@@ -148,7 +150,6 @@ if(NOT WIN32 OR ENABLE_MINGW64)
     endif()
     if(UNIX)
       include(cmake/flac.cmake)
-      include(cmake/xml2.cmake)
       if(NOT APPLE)
         include(cmake/spnav.cmake)
         include(cmake/jemalloc.cmake)
diff --git a/build_files/build_environment/cmake/opencollada.cmake b/build_files/build_environment/cmake/opencollada.cmake
index b2ae1a1a351..9473aafbe88 100644
--- a/build_files/build_environment/cmake/opencollada.cmake
+++ b/build_files/build_environment/cmake/opencollada.cmake
@@ -4,6 +4,16 @@ if(UNIX)
   set(OPENCOLLADA_EXTRA_ARGS
     -DLIBXML2_INCLUDE_DIR=${LIBDIR}/xml2/include/libxml2
     -DLIBXML2_LIBRARIES=${LIBDIR}/xml2/lib/libxml2.a)
+else()
+  set(OPENCOLLADA_EXTRA_ARGS
+    -DCMAKE_DEBUG_POSTFIX=_d
+    -DLIBXML2_INCLUDE_DIR=${LIBDIR}/xml2/include/libxml2
+  )
+  if(BUILD_MODE STREQUAL Release)
+    list(APPEND  OPENCOLLADA_EXTRA_ARGS -DLIBXML2_LIBRARIES=${LIBDIR}/xml2/lib/libxml2s.lib)
+  else()
+    list(APPEND  OPENCOLLADA_EXTRA_ARGS -DLIBXML2_LIBRARIES=${LIBDIR}/xml2/lib/libxml2sd.lib)
+  endif()
 endif()
 
 ExternalProject_Add(external_opencollada
@@ -16,12 +26,11 @@ ExternalProject_Add(external_opencollada
   INSTALL_DIR ${LIBDIR}/opencollada
 )
 
-if(UNIX)
-  add_dependencies(
-    external_opencollada
-    external_xml2
-  )
-endif()
+
+add_dependencies(
+  external_opencollada
+  external_xml2
+)
 
 if(WIN32)
   if(BUILD_MODE STREQUAL Release)
@@ -32,17 +41,7 @@ if(WIN32)
   endif()
   if(BUILD_MODE STREQUAL Debug)
     ExternalProject_Add_Step(external_opencollada after_install
-      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/buffer.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/buffer_d.lib
-      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/ftoa.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/ftoa_d.lib
-      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/GeneratedSaxParser.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/GeneratedSaxParser_d.lib
-      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/MathMLSolver.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/MathMLSolver_d.lib
-      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADABaseUtils.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADABaseUtils_d.lib
-      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADAFramework.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADAFramework_d.lib
-      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADASaxFrameworkLoader.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADASaxFrameworkLoader_d.lib
-      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADAStreamWriter.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADAStreamWriter_d.lib
-      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/pcre.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/pcre_d.lib
-      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/UTF.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/UTF_d.lib
-      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/xml.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/xml_d.lib
+      COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencollada/lib ${HARVEST_TARGET}/opencollada/lib
       DEPENDEES install
     )
   endif()
diff --git a/build_files/build_environment/cmake/xml2.cmake b/build_files/build_environment/cmake/xml2.cmake
index cd24fd836b0..3d31ec131bb 100644
--- a/build_files/build_environment/cmake/xml2.cmake
+++ b/build_files/build_environment/cmake/xml2.cmake
@@ -1,20 +1,48 @@
 # SPDX-License-Identifier: GPL-2.0-or-later
 
-ExternalProject_Add(external_xml2
-  URL file://${PACKAGE_DIR}/${XML2_FILE}
-  DOWNLOAD_DIR ${DOWNLOAD_DIR}
-  URL_HASH ${XML2_HASH_TYPE}=${XML2_HASH}
-  PREFIX ${BUILD_DIR}/xml2
-  CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && ${CONFIGURE_COMMAND}
-    --prefix=${LIBDIR}/xml2
-    --disable-shared
-    --enable-static
-    --with-pic
-    --with-python=no
-    --with-lzma=no
-    --with-zlib=no
-    --with-iconv=no
-  BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && make -j${MAKE_THREADS}
-  INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && make install
-  INSTALL_DIR ${LIBDIR}/xml2
-)
+if(WIN32)
+  set(XML2_EXTRA_ARGS 
+    -DLIBXML2_WITH_ZLIB=OFF
+    -DLIBXML2_WITH_LZMA=OFF
+    -DLIBXML2_WITH_PYTHON=OFF
+    -DLIBXML2_WITH_ICONV=OFF
+    -DLIBXML2_WITH_TESTS=OFF
+    -DLIBXML2_WITH_PROGRAMS=OFF
+    -DBUILD_SHARED_LIBS=OFF
+  )
+  ExternalProject_Add(external_xml2
+    URL file://${PACKAGE_DIR}/${XML2_FILE}
+    DOWNLOAD_DIR ${DOWNLOAD_DIR}
+    URL_HASH ${XML2_HASH_TYPE}=${XML2_HASH}
+    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/xml2 ${DEFAULT_CMAKE_FLAGS} ${XML2_EXTRA_ARGS}
+    PREFIX ${BUILD_DIR}/xml2
+    INSTALL_DIR ${LIBDIR}/xml2
+  )
+else()
+  ExternalProject_Add(external_xml2
+    URL file://${PACKAGE_DIR}/${XML2_FILE}
+    DOWNLOAD_DIR ${DOWNLOAD_DIR}
+    URL_HASH ${XML2_HASH_TYPE}=${XML2_HASH}
+    PREFIX ${BUILD_DIR}/xml2
+    CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && ${CONFIGURE_COMMAND}
+      --prefix=${LIBDIR}/xml2
+      --disable-shared
+      --enable-static
+      --with-pic
+      --with-python=no
+      --with-lzma=no
+      --with-zlib=no
+      --with-iconv=no
+    BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && make -j${MAKE_THREADS}
+    INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && make install
+    INSTALL_DIR ${LIBDIR}/xml2
+  )
+endif()
+
+if(WIN32 AND BUILD_MODE STREQUAL Release)
+  ExternalProject_Add_Step(external_xml2 after_install
+        COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/xml2/include  ${HARVEST_TARGET}/xml2/include
+        COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/xml2/lib/libxml2s.lib  ${HARVEST_TARGET}/xml2/lib/libxml2s.lib
+    DEPENDEES install
+  )
+endif()
diff --git a/build_files/build_environment/patches/opencollada.diff b/build_files/build_environment/patches/opencollada.diff
index e8efc1a6909..02eab251a13 100644
--- a/build_files/build_environment/patches/opencollada.diff
+++ b/build_files/build_environment/patches/opencollada.diff
@@ -130,3 +130,28 @@ index 715d903..24423ce 100644
  		{
  			string id = node.attribute("id").value();
  			size_t line = node.line();
+diff -Naur a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -274,7 +274,7 @@
+ add_subdirectory(${EXTERNAL_LIBRARIES}/UTF)
+ add_subdirectory(common/libBuffer)
+ add_subdirectory(${EXTERNAL_LIBRARIES}/MathMLSolver)
+-add_subdirectory(${EXTERNAL_LIBRARIES}/zlib)
++#add_subdirectory(${EXTERNAL_LIBRARIES}/zlib)
+ 
+ # building OpenCOLLADA libs
+ add_subdirectory(COLLADABaseUtils)
+@@ -284,10 +284,10 @@
+ add_subdirectory(COLLADAStreamWriter)
+ 
+ # building COLLADAValidator app
+-add_subdirectory(COLLADAValidator)
++#add_subdirectory(COLLADAValidator)
+ 
+ # DAE validator app
+-add_subdirectory(DAEValidator)
++#add_subdirectory(DAEValidator)
+ 
+ # Library export
+ install(EXPORT LibraryExport DESTINATION ${OPENCOLLADA_INST_CMAKECONFIG} FILE OpenCOLLADATargets.cmake)



More information about the Bf-blender-cvs mailing list