This updates the libraries dependencies for VFX platform 2023, and adds various new libraries. It also enables Python bindings and switches from static to shared for various libraries. The precompiled libraries for all platforms will be updated to these new versions in the coming weeks. New: Fribidi 1.0.12 Harfbuzz 5.1.0 MaterialX 1.38.6 (shared lib with python bindings) Minizipng 3.0.7 Pybind11 2.10.1 Shaderc 2022.3 Vulkan 1.2.198 Updated: Boost 1.8.0 (shared lib) Cython 0.29.30 Numpy 1.23.2 OpenColorIO 2.2.0 (shared lib with python bindings) OpenImageIO 2.4.6.0 (shared lib with python bindings) OpenSubdiv 3.5.0 OpenVDB 10.0.0 (shared lib with python bindings) OSL 1.12.7.1 (enable nvptx backend) TBB (shared lib) USD 22.11 (shared lib with python bindings, enable hydra) yaml-cpp 0.8.0 Includes contributions by Ray Molenkamp, Brecht Van Lommel, Georgiy Markelov and Campbell Barton. Ref T99618
42 lines
1.7 KiB
Python
42 lines
1.7 KiB
Python
# 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
|