[Bf-blender-cvs] [a7875fdac6b] tmp-vfx-platform-2023: Deps: Add 2 missing files for MaterialX

Ray Molenkamp noreply at git.blender.org
Tue Nov 22 18:26:38 CET 2022


Commit: a7875fdac6b3accfda75d681a514bbc5fa66014e
Author: Ray Molenkamp
Date:   Tue Nov 22 10:26:28 2022 -0700
Branches: tmp-vfx-platform-2023
https://developer.blender.org/rBa7875fdac6b3accfda75d681a514bbc5fa66014e

Deps: Add 2 missing files for MaterialX

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

A	build_files/build_environment/cmake/materialx.cmake
A	build_files/build_environment/patches/materialx.diff

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

diff --git a/build_files/build_environment/cmake/materialx.cmake b/build_files/build_environment/cmake/materialx.cmake
new file mode 100644
index 00000000000..eb6a22e8ad3
--- /dev/null
+++ b/build_files/build_environment/cmake/materialx.cmake
@@ -0,0 +1,48 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+set(MATERIALX_EXTRA_ARGS
+  -DMATERIALX_BUILD_PYTHON=ON
+  -DMATERIALX_INSTALL_PYTHON=OFF
+  -DMATERIALX_PYTHON_EXECUTABLE=${PYTHON_BINARY}
+  -DMATERIALX_PYTHON_VERSION=${PYTHON_SHORT_VERSION}
+  -DMATERIALX_BUILD_SHARED_LIBS=ON
+  -DCMAKE_DEBUG_POSTFIX=_d
+)
+
+ExternalProject_Add(external_materialx
+  URL file://${PACKAGE_DIR}/${MATERIALX_FILE}
+  DOWNLOAD_DIR ${DOWNLOAD_DIR}
+  URL_HASH ${MATERIALX_HASH_TYPE}=${MATERIALX_HASH}
+  PREFIX ${BUILD_DIR}/materialx
+  CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
+  PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/materialx/src/external_materialx < ${PATCH_DIR}/materialx.diff
+  CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/materialx ${DEFAULT_CMAKE_FLAGS} ${MATERIALX_EXTRA_ARGS}
+  INSTALL_DIR ${LIBDIR}/materialx
+)
+
+if(WIN32)
+  set(MATERIALX_PYTHON_TARGET ${HARVEST_TARGET}/materialx/python/${BUILD_MODE})
+  string(REPLACE "/" "\\" MATERIALX_PYTHON_TARGET_DOS "${MATERIALX_PYTHON_TARGET}")
+  if(BUILD_MODE STREQUAL Release)
+    ExternalProject_Add_Step(external_materialx after_install
+      COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/include ${HARVEST_TARGET}/materialx/include
+      COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/libraries ${HARVEST_TARGET}/materialx/libraries
+      COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/lib/ ${HARVEST_TARGET}/materialx/lib/
+      COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/bin/ ${HARVEST_TARGET}/materialx/bin/
+      COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/python/ ${MATERIALX_PYTHON_TARGET}
+      COMMAND del ${MATERIALX_PYTHON_TARGET_DOS}\\MaterialX\\*.lib
+      DEPENDEES install
+    )
+  endif()
+  if(BUILD_MODE STREQUAL Debug)
+    ExternalProject_Add_Step(external_materialx after_install
+      COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/lib/ ${HARVEST_TARGET}/materialx/lib/
+      COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/bin/ ${HARVEST_TARGET}/materialx/bin/
+      COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/python/ ${MATERIALX_PYTHON_TARGET}
+      COMMAND del ${MATERIALX_PYTHON_TARGET_DOS}\\MaterialX\\*.lib
+      DEPENDEES install
+    )
+  endif()
+  unset(MATERIALX_PYTHON_TARGET)
+  unset(MATERIALX_PYTHON_TARGET_DOS)
+endif()
diff --git a/build_files/build_environment/patches/materialx.diff b/build_files/build_environment/patches/materialx.diff
new file mode 100644
index 00000000000..024d4b6ad74
--- /dev/null
+++ b/build_files/build_environment/patches/materialx.diff
@@ -0,0 +1,13 @@
+diff -Naur orig/source/PyMaterialX/PyBind11/tools/FindPythonLibsNew.cmake external_materialx/source/PyMaterialX/PyBind11/tools/FindPythonLibsNew.cmake
+--- orig/source/PyMaterialX/PyBind11/tools/FindPythonLibsNew.cmake      2022-11-04 14:23:29 -0600
++++ external_materialx/source/PyMaterialX/PyBind11/tools/FindPythonLibsNew.cmake        2022-11-08 11:58:45 -0700
+@@ -181,6 +181,9 @@
+ string(REGEX REPLACE "\\\\" "/" PYTHON_SITE_PACKAGES "${PYTHON_SITE_PACKAGES}")
+
+ if(CMAKE_HOST_WIN32)
++  if(PYTHON_EXECUTABLE MATCHES "_d.exe$")
++    set(PYTHON_LIBRARY_SUFFIX ${PYTHON_LIBRARY_SUFFIX}_d)
++  endif()
+   set(PYTHON_LIBRARY "${PYTHON_PREFIX}/libs/python${PYTHON_LIBRARY_SUFFIX}.lib")
+
+   # when run in a venv, PYTHON_PREFIX points to it. But the libraries remain in the
\ No newline at end of file



More information about the Bf-blender-cvs mailing list