diff options
author | Sybren A. Stüvel <sybren@blender.org> | 2020-09-01 18:29:01 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@blender.org> | 2020-09-01 18:29:01 +0300 |
commit | 23767937ef6bd61736dae09da0fff0a69b37aa5b (patch) | |
tree | 48641e11739b78c9b9f04d53c49e99497a067d50 /build_files/build_environment/patches/usd.diff | |
parent | fef1a6c54e74372b863561ad40c1bd5bffef8c38 (diff) |
USD: remove library initialisation hack
Remove the hack for library initialisation; this is no longer necessary
as the required information can be passed to the USD library after its
static initialisers have run.
This new approach is compatible with both the patched and original USD
library. This means that platform maintainers don't need to rebuild the
USD library until the next upgrade.
Manifest Task: https://developer.blender.org/T80320
Diffstat (limited to 'build_files/build_environment/patches/usd.diff')
-rw-r--r-- | build_files/build_environment/patches/usd.diff | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/build_files/build_environment/patches/usd.diff b/build_files/build_environment/patches/usd.diff index fe767829a70..27b4955f849 100644 --- a/build_files/build_environment/patches/usd.diff +++ b/build_files/build_environment/patches/usd.diff @@ -10,77 +10,6 @@ diff -x .git -ur usd.orig/cmake/defaults/Packages.cmake external_usd/cmake/defau add_definitions(${TBB_DEFINITIONS}) # --math -diff -x .git -ur usd.orig/pxr/base/plug/initConfig.cpp external_usd/pxr/base/plug/initConfig.cpp ---- usd.orig/pxr/base/plug/initConfig.cpp.orig 2020-06-12 17:20:07.478199779 +0200 -+++ external_usd/pxr/base/plug/initConfig.cpp 2020-06-12 17:25:28.648588552 +0200 -@@ -69,10 +69,40 @@ - - ARCH_CONSTRUCTOR(Plug_InitConfig, 2, void) - { -+ /* The contents of this constructor have been moved to usd_initialise_plugin_path(...) */ -+} -+ -+}; // end of anonymous namespace -+ -+/** -+ * The contents of this function used to be in the static constructor Plug_InitConfig. -+ * This static constructor made it impossible for Blender to pass a path to the USD -+ * library at runtime, as the constructor would run before Blender's main() function. -+ * -+ * This function is wrapped in a C function of the same name (defined below), -+ * so that it can be called from Blender's main() function. -+ * -+ * The datafiles_usd_path path is used to point to the USD plugin path when Blender -+ * has been installed. The fallback_usd_path path should point to the build-time -+ * location of the USD plugin files so that Blender can be run on a development machine -+ * without requiring an installation step. -+ */ -+void -+usd_initialise_plugin_path(const char *datafiles_usd_path) -+{ - std::vector<std::string> result; - - std::vector<std::string> debugMessages; - -+ // Add Blender-specific paths. They MUST end in a slash, or symlinks will not be treated as directory. -+ if (datafiles_usd_path != NULL && datafiles_usd_path[0] != '\0') { -+ std::string datafiles_usd_path_str(datafiles_usd_path); -+ if (datafiles_usd_path_str.back() != '/') { -+ datafiles_usd_path_str += "/"; -+ } -+ result.push_back(datafiles_usd_path_str); -+ } -+ - // Determine the absolute path to the Plug shared library. Any relative - // paths specified in the plugin search path will be anchored to this - // directory, to allow for relocatability. Note that this can fail when pxr -@@ -114,9 +144,24 @@ - _AppendPathList(&result, installLocation, binaryPath); - #endif // PXR_INSTALL_LOCATION - -- Plug_SetPaths(result, debugMessages); --} -+ if (!TfGetenv("PXR_PATH_DEBUG").empty()) { -+ printf("USD Plugin paths: (%zu in total):\n", result.size()); -+ for(const std::string &path : result) { -+ printf(" %s\n", path.c_str()); -+ } -+ } - -+ Plug_SetPaths(result, debugMessages); - } - - PXR_NAMESPACE_CLOSE_SCOPE -+ -+/* Workaround to make it possible to pass a path at runtime to USD. */ -+extern "C" { -+void -+usd_initialise_plugin_path( -+ const char *datafiles_usd_path) -+{ -+ PXR_NS::usd_initialise_plugin_path(datafiles_usd_path); -+} -+} diff -Naur external_usd_base/cmake/macros/Public.cmake external_usd/cmake/macros/Public.cmake --- external_usd_base/cmake/macros/Public.cmake 2019-10-24 14:39:53 -0600 +++ external_usd/cmake/macros/Public.cmake 2020-01-11 13:33:29 -0700 |