From 61f407d427c1a20105f81e5f8c1fe5798a3f1261 Mon Sep 17 00:00:00 2001 From: Bogdan Nagirniak Date: Fri, 4 Aug 2023 14:54:49 +0200 Subject: [PATCH] Build: install USD Storm and MaterialX libraries by default * Bundle hdStorm and associated plugins * Enable WITH_MATERIALX by default to bundle MaterialX libraries * Set PXR_MTLX_STDLIB_SEARCH_PATHS so Storm can find MaterialX files Co-authored-by: Georgiy Markelov Co-authored-by: Brecht Van Lommel Ref #110765, #104712 --- CMakeLists.txt | 2 +- build_files/cmake/config/blender_full.cmake | 2 +- build_files/cmake/config/blender_release.cmake | 2 +- build_files/cmake/platform/platform_win32.cmake | 4 ++++ scripts/site/sitecustomize.py | 10 +++++++--- source/creator/CMakeLists.txt | 16 ++++++++++++++++ 6 files changed, 30 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b0cd6c0c5c8..fe93ad41886 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -365,7 +365,7 @@ option(WITH_ALEMBIC "Enable Alembic Support" ON) option(WITH_USD "Enable Universal Scene Description (USD) Support" ON) # MaterialX -option(WITH_MATERIALX "Enable MaterialX Support" OFF) +option(WITH_MATERIALX "Enable MaterialX Support" ON) # 3D format support # Disable opencollada when we don't have precompiled libs diff --git a/build_files/cmake/config/blender_full.cmake b/build_files/cmake/config/blender_full.cmake index 3dd61a1175c..b17d8fd3ed1 100644 --- a/build_files/cmake/config/blender_full.cmake +++ b/build_files/cmake/config/blender_full.cmake @@ -57,7 +57,7 @@ set(WITH_QUADRIFLOW ON CACHE BOOL "" FORCE) set(WITH_SDL ON CACHE BOOL "" FORCE) set(WITH_TBB ON CACHE BOOL "" FORCE) set(WITH_USD ON CACHE BOOL "" FORCE) -set(WITH_MATERIALX OFF CACHE BOOL "" FORCE) +set(WITH_MATERIALX ON CACHE BOOL "" FORCE) set(WITH_MEM_JEMALLOC ON CACHE BOOL "" FORCE) diff --git a/build_files/cmake/config/blender_release.cmake b/build_files/cmake/config/blender_release.cmake index 17d9c512c0a..1f743979798 100644 --- a/build_files/cmake/config/blender_release.cmake +++ b/build_files/cmake/config/blender_release.cmake @@ -58,7 +58,7 @@ set(WITH_QUADRIFLOW ON CACHE BOOL "" FORCE) set(WITH_SDL ON CACHE BOOL "" FORCE) set(WITH_TBB ON CACHE BOOL "" FORCE) set(WITH_USD ON CACHE BOOL "" FORCE) -set(WITH_MATERIALX OFF CACHE BOOL "" FORCE) +set(WITH_MATERIALX ON CACHE BOOL "" FORCE) set(WITH_MEM_JEMALLOC ON CACHE BOOL "" FORCE) diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake index 2c3225bc69a..fb16662f5e9 100644 --- a/build_files/cmake/platform/platform_win32.cmake +++ b/build_files/cmake/platform/platform_win32.cmake @@ -965,6 +965,10 @@ if(WITH_USD) endif() endif() +if(WITH_MATERIALX) + include("${LIBDIR}/MaterialX/lib/cmake/MaterialX/MaterialXTargets.cmake") +endif() + if(WINDOWS_PYTHON_DEBUG) # Include the system scripts in the blender_python_system_scripts project. file(GLOB_RECURSE inFiles "${CMAKE_SOURCE_DIR}/scripts/*.*" ) diff --git a/scripts/site/sitecustomize.py b/scripts/site/sitecustomize.py index c0fcd419a3d..a847192f3c4 100644 --- a/scripts/site/sitecustomize.py +++ b/scripts/site/sitecustomize.py @@ -38,7 +38,11 @@ materialx_libs_dir = os.path.abspath(os.path.join(shared_lib_dir, "materialx", " 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 + os.environ["MATERIALX_SEARCH_PATH"] = materialx_libs_env + os.pathsep + materialx_libs_dir + +materialx_libs_env = os.getenv("PXR_MTLX_STDLIB_SEARCH_PATHS") +if materialx_libs_env is None: + os.environ["PXR_MTLX_STDLIB_SEARCH_PATHS"] = materialx_libs_dir +else: + os.environ["PXR_MTLX_STDLIB_SEARCH_PATHS"] = materialx_libs_env + os.pathsep + materialx_libs_dir diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 1d4e1ebf595..11c36894e1f 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -1623,16 +1623,32 @@ if((DEFINED LIBDIR) AND TARGETDIR_LIB) ${USD_LIBRARY_DIR}/usd DESTINATION ${TARGETDIR_LIB} ) + install(DIRECTORY + ${LIBDIR}/usd/plugin/usd/hdStorm + ${LIBDIR}/usd/plugin/usd/usdShaders + ${LIBDIR}/usd/plugin/usd/hioOiio + DESTINATION "./blender.shared/usd" + ) elseif(USD_PYTHON_SUPPORT) install(DIRECTORY ${USD_LIBRARY_DIR}/usd DESTINATION ${TARGETDIR_LIB} ) + install(DIRECTORY + ${LIBDIR}/usd/plugin/usd/hdStorm + ${LIBDIR}/usd/plugin/usd/usdShaders + DESTINATION ${TARGETDIR_LIB}/usd + ) else() install(DIRECTORY ${USD_LIBRARY_DIR}/usd DESTINATION "${TARGETDIR_VER}/datafiles" ) + install(DIRECTORY + ${LIBDIR}/usd/plugin/usd/hdStorm + ${LIBDIR}/usd/plugin/usd/usdShaders + DESTINATION "${TARGETDIR_VER}/datafiles/usd" + ) endif() endif() if(WIN32)