[Bf-blender-cvs] [3b08062b343] tmp-vfx-platform-2023: MaterialX: various changes
Brecht Van Lommel
noreply at git.blender.org
Mon Nov 28 18:35:53 CET 2022
Commit: 3b08062b343679cab3a5f72673100e139c17eda0
Author: Brecht Van Lommel
Date: Thu Nov 24 19:50:00 2022 +0100
Branches: tmp-vfx-platform-2023
https://developer.blender.org/rB3b08062b343679cab3a5f72673100e139c17eda0
MaterialX: various changes
* Install datafiles in shared library folder
* Various fixes to make it work on macOS/Linux
* Disqble MaterialXRender modules
* Use sitecustomize instead of usercustomize mechanism, as the latter
seems to be disabled by default and site seems more correct anyway.
===================================================================
M build_files/build_environment/cmake/materialx.cmake
M build_files/cmake/platform/platform_apple.cmake
A release/scripts/site/sitecustomize.py
D release/scripts/site/usercustomize.py
M source/creator/CMakeLists.txt
===================================================================
diff --git a/build_files/build_environment/cmake/materialx.cmake b/build_files/build_environment/cmake/materialx.cmake
index eb6a22e8ad3..37913c74d6a 100644
--- a/build_files/build_environment/cmake/materialx.cmake
+++ b/build_files/build_environment/cmake/materialx.cmake
@@ -2,6 +2,7 @@
set(MATERIALX_EXTRA_ARGS
-DMATERIALX_BUILD_PYTHON=ON
+ -DMATERIALX_BUILD_RENDER=OFF
-DMATERIALX_INSTALL_PYTHON=OFF
-DMATERIALX_PYTHON_EXECUTABLE=${PYTHON_BINARY}
-DMATERIALX_PYTHON_VERSION=${PYTHON_SHORT_VERSION}
diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
index 07d7036f809..fca0c3a06c5 100644
--- a/build_files/cmake/platform/platform_apple.cmake
+++ b/build_files/cmake/platform/platform_apple.cmake
@@ -89,6 +89,14 @@ if(WITH_USD)
add_bundled_libraries(usd/lib)
endif()
+if(WITH_MATERIALX)
+ find_package(MaterialX)
+ set_and_warn_library_found("MaterialX" MaterialX_FOUND WITH_MATERIALX)
+ if(WITH_MATERIALX)
+ add_bundled_libraries(materialx/lib)
+ endif()
+endif()
+
if(WITH_OPENSUBDIV)
find_package(OpenSubdiv)
add_bundled_libraries(opensubdiv/lib)
diff --git a/release/scripts/site/sitecustomize.py b/release/scripts/site/sitecustomize.py
new file mode 100644
index 00000000000..891930eb132
--- /dev/null
+++ b/release/scripts/site/sitecustomize.py
@@ -0,0 +1,41 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Make shared libraries needed by modules available in standalone Python binary.
+
+import sys
+import os
+
+exe_dir, exe_file = os.path.split(sys.executable)
+is_python = exe_file.startswith("python")
+
+# Path to Blender shared libraries.
+shared_lib_dirname = "blender.shared" if sys.platform == "win32" else "lib"
+if is_python:
+ shared_lib_dir = os.path.abspath(os.path.join(exe_dir, "..", "..", "..", shared_lib_dirname))
+else:
+ shared_lib_dir = os.path.abspath(os.path.join(exe_dir, shared_lib_dirname))
+
+if sys.platform == "win32":
+ # Directory for extensions to find DLLs.
+ if is_python:
+ os.add_dll_directory(shared_lib_dir)
+
+ # Directory for USD extension to find DLLs.
+ import_paths = os.getenv("PXR_USD_WINDOWS_DLL_PATH")
+ if import_paths is None:
+ os.environ["PXR_USD_WINDOWS_DLL_PATH"] = shared_lib_dir
+
+ # OIIO will by default add all paths from the path variable to add_dll_directory
+ # problem there is that those folders will be searched before ours and versions of
+ # some dlls may be found that are not blenders and may not even be the right version
+ # causing compatibility issues.
+ os.environ["OIIO_LOAD_DLLS_FROM_PATH"] = "0"
+
+# MaterialX libraries, append if already specified.
+materialx_libs_dir = os.path.abspath(os.path.join(shared_lib_dir, "materialx", "libraries"))
+materialx_libs_env = os.getenv("MATERIALX_SEARCH_PATH")
+if materialx_libs_env is None:
+ os.environ["MATERIALX_SEARCH_PATH"] = materialx_libs_dir
+elif sys.platform == "win32":
+ os.environ["MATERIALX_SEARCH_PATH"] = materialx_libs_dir + ";" + materialx_libs_env
+else:
+ os.environ["MATERIALX_SEARCH_PATH"] = materialx_libs_dir + ":" + materialx_libs_env
diff --git a/release/scripts/site/usercustomize.py b/release/scripts/site/usercustomize.py
deleted file mode 100644
index 21f9acc5f05..00000000000
--- a/release/scripts/site/usercustomize.py
+++ /dev/null
@@ -1,25 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
-# Make shared libraries needed by modules available in standalone Python binary.
-
-import sys
-import os
-
-if sys.platform == 'win32':
- exe_dir, exe_file = os.path.split(sys.executable)
- if exe_file.startswith('python'):
- blender_dir = os.path.abspath(os.path.join(exe_dir, '..', '..', '..','blender.shared'))
- os.add_dll_directory(blender_dir)
- # OIIO will by default add all paths from the path variable to add_dll_directory
- # problem there is that those folders will be searched before ours and versions of
- # some dlls may be found that are not blenders and may not even be the right version
- # causing compatibility issues.
- os.environ["OIIO_LOAD_DLLS_FROM_PATH"] = "0"
-
- import_paths = os.getenv('PXR_USD_WINDOWS_DLL_PATH')
- if import_paths is None:
- os.environ["PXR_USD_WINDOWS_DLL_PATH"] = blender_dir
-
- materialx_libs_dir = os.path.abspath(os.path.join(exe_dir, '..', '..', 'datafiles', 'materialx', 'libraries'))
- materialx_libs_env = os.getenv('MATERIALX_SEARCH_PATH')
- if materialx_libs_env is None:
- os.environ["MATERIALX_SEARCH_PATH"] = materialx_libs_dir
diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt
index f45e8b4b359..88751f7acf9 100644
--- a/source/creator/CMakeLists.txt
+++ b/source/creator/CMakeLists.txt
@@ -417,16 +417,19 @@ if(WITH_PYTHON)
PATTERN "${ADDON_EXCLUDE_CONDITIONAL}" EXCLUDE
PATTERN "${FREESTYLE_EXCLUDE_CONDITIONAL}" EXCLUDE
)
- if(WIN32)
- install(
- FILES ${CMAKE_SOURCE_DIR}/release/scripts/site/usercustomize.py
- DESTINATION ${TARGETDIR_VER}/python/lib/site-packages
- )
- else()
- install(
- FILES ${CMAKE_SOURCE_DIR}/release/scripts/site/usercustomize.py
- DESTINATION ${TARGETDIR_VER}/python/lib/python${PYTHON_VERSION}/site-packages
- )
+
+ if(WITH_PYTHON_INSTALL)
+ if(WIN32)
+ install(
+ FILES ${CMAKE_SOURCE_DIR}/release/scripts/site/sitecustomize.py
+ DESTINATION ${TARGETDIR_VER}/python/lib/site-packages
+ )
+ else()
+ install(
+ FILES ${CMAKE_SOURCE_DIR}/release/scripts/site/sitecustomize.py
+ DESTINATION ${TARGETDIR_VER}/python/lib/python${PYTHON_VERSION}/site-packages
+ )
+ endif()
endif()
unset(ADDON_EXCLUDE_CONDITIONAL)
unset(FREESTYLE_EXCLUDE_CONDITIONAL)
@@ -984,10 +987,6 @@ elseif(WIN32)
${LIBDIR}/materialx/bin/MaterialXGenMdl.dll
${LIBDIR}/materialx/bin/MaterialXGenOsl.dll
${LIBDIR}/materialx/bin/MaterialXGenShader.dll
- ${LIBDIR}/materialx/bin/MaterialXRenderGlsl.dll
- ${LIBDIR}/materialx/bin/MaterialXRenderHw.dll
- ${LIBDIR}/materialx/bin/MaterialXRenderOsl.dll
- ${LIBDIR}/materialx/bin/MaterialXRender.dll
RELEASE
)
windows_install_shared_manifest(
@@ -998,10 +997,6 @@ elseif(WIN32)
${LIBDIR}/materialx/bin/MaterialXGenMdl_d.dll
${LIBDIR}/materialx/bin/MaterialXGenOsl_d.dll
${LIBDIR}/materialx/bin/MaterialXGenShader_d.dll
- ${LIBDIR}/materialx/bin/MaterialXRenderGlsl_d.dll
- ${LIBDIR}/materialx/bin/MaterialXRenderHw_d.dll
- ${LIBDIR}/materialx/bin/MaterialXRenderOsl_d.dll
- ${LIBDIR}/materialx/bin/MaterialXRender_d.dll
DEBUG
)
endif()
@@ -1579,10 +1574,10 @@ if(WITH_USD)
endif()
endif()
-if(WITH_MATERIALX)
+if(WITH_MATERIALX AND TARGETDIR_LIB)
install(
DIRECTORY ${LIBDIR}/materialx/libraries
- DESTINATION "${TARGETDIR_VER}/datafiles/materialx"
+ DESTINATION "${TARGETDIR_LIB}/materialx"
)
endif()
More information about the Bf-blender-cvs
mailing list