[Bf-blender-cvs] [af626a6868b] tmp_libupdate_34: deps/windows: fix usd import with standalone python
Ray Molenkamp
noreply at git.blender.org
Sun Aug 21 09:43:47 CEST 2022
Commit: af626a6868bdf275ee975804010b1e9eddccbf89
Author: Ray Molenkamp
Date: Sun Aug 21 01:43:14 2022 -0600
Branches: tmp_libupdate_34
https://developer.blender.org/rBaf626a6868bdf275ee975804010b1e9eddccbf89
deps/windows: fix usd import with standalone python
- move all shared libraries to the blender.shared folder
- install a usercustomize.py to tell python where this folder is
- move USD json folder to a location relative to the shared lib
- Disable USD plugin location hinting for windows
- Fix all tests that broke due to the above.
===================================================================
M build_files/cmake/Modules/GTestTesting.cmake
M build_files/cmake/macros.cmake
M build_files/cmake/platform/platform_win32.cmake
A release/scripts/usercustomize.py
R053 release/windows/manifest/Blender.CRT.MANIFEST.in release/windows/manifest/Blender.manifest.in
M source/blender/io/usd/intern/usd_common.cc
M source/creator/CMakeLists.txt
M tests/python/CMakeLists.txt
===================================================================
diff --git a/build_files/cmake/Modules/GTestTesting.cmake b/build_files/cmake/Modules/GTestTesting.cmake
index 92ce403d5f3..ee960bf31b1 100644
--- a/build_files/cmake/Modules/GTestTesting.cmake
+++ b/build_files/cmake/Modules/GTestTesting.cmake
@@ -97,6 +97,9 @@ macro(BLENDER_SRC_GTEST_EX)
set_tests_properties(${TARGET_NAME} PROPERTIES
ENVIRONMENT LSAN_OPTIONS=exitcode=0:$ENV{LSAN_OPTIONS}
)
+ if(WIN32)
+ set_tests_properties(${TARGET_NAME} PROPERTIES ENVIRONMENT "PATH=$<TARGET_FILE_DIR:blender>/blender.shared/;$ENV{PATH}")
+ endif()
endif()
if(WIN32)
set_target_properties(${TARGET_NAME} PROPERTIES VS_GLOBAL_VcpkgEnabled "false")
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index 5508e8f2104..28194b5737d 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -404,7 +404,9 @@ function(blender_add_test_suite)
--test-assets-dir "${CMAKE_SOURCE_DIR}/../lib/tests"
--test-release-dir "${_test_release_dir}"
)
-
+ if(WIN32)
+ set_tests_properties(${ARGS_SUITE_NAME} PROPERTIES ENVIRONMENT "PATH=$<TARGET_FILE_DIR:blender>/blender.shared/;$ENV{PATH}")
+ endif()
unset(_test_release_dir)
endfunction()
@@ -1221,3 +1223,70 @@ macro(without_system_libs_end)
set(CMAKE_FIND_FRAMEWORK FIRST)
endif()
endmacro()
+
+macro(windows_install_shared_manifest)
+ set(options OPTIONAL DEBUG RELEASE ALL)
+ set(oneValueArgs)
+ set(multiValueArgs FILES)
+ cmake_parse_arguments(WINDOWS_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
+ # If none of the options are set assume ALL.
+ unset(WINDOWS_CONFIGURATIONS)
+ if(NOT WINDOWS_INSTALL_ALL AND
+ NOT WINDOWS_INSTALL_DEBUG AND
+ NOT WINDOWS_INSTALL_RELEASE)
+ set(WINDOWS_INSTALL_ALL TRUE)
+ endif()
+ # If all is set, turn both DEBUG and RELEASE on.
+ if(WINDOWS_INSTALL_ALL)
+ set(WINDOWS_INSTALL_DEBUG TRUE)
+ set(WINDOWS_INSTALL_RELEASE TRUE)
+ endif()
+ if(WINDOWS_INSTALL_DEBUG)
+ set(WINDOWS_CONFIGURATIONS "${WINDOWS_CONFIGURATIONS};Debug")
+ list(APPEND WINDOWS_SHARED_MANIFEST_DEBUG ${WINDOWS_INSTALL_FILES})
+ endif()
+ if(WINDOWS_INSTALL_RELEASE)
+ list(APPEND WINDOWS_SHARED_MANIFEST_RELEASE ${WINDOWS_INSTALL_FILES})
+ set(WINDOWS_CONFIGURATIONS "${WINDOWS_CONFIGURATIONS};Release;RelWithDebInfo;MinSizeRel")
+ endif()
+ install(FILES ${WINDOWS_INSTALL_FILES}
+ CONFIGURATIONS ${WINDOWS_CONFIGURATIONS}
+ DESTINATION "./blender.shared"
+ )
+endmacro()
+
+macro(windows_generate_manifest)
+ set(options)
+ set(oneValueArgs OUTPUT NAME)
+ set(multiValueArgs FILES)
+ cmake_parse_arguments(WINDOWS_MANIFEST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
+ set(MANIFEST_LIBS "")
+ foreach(lib ${WINDOWS_MANIFEST_FILES})
+ get_filename_component(filename ${lib} NAME)
+ set(MANIFEST_LIBS "${MANIFEST_LIBS} <file name=\"${filename}\"/>\n")
+ endforeach()
+ configure_file(${CMAKE_SOURCE_DIR}/release/windows/manifest/blender.manifest.in ${WINDOWS_MANIFEST_OUTPUT} @ONLY)
+endmacro()
+
+macro(windows_generate_shared_manifest)
+ windows_generate_manifest(
+ FILES "${WINDOWS_SHARED_MANIFEST_DEBUG}"
+ OUTPUT "${CMAKE_BINARY_DIR}/Debug/blender.shared.manifest"
+ NAME "blender.shared"
+ )
+ windows_generate_manifest(
+ FILES "${WINDOWS_SHARED_MANIFEST_RELEASE}"
+ OUTPUT "${CMAKE_BINARY_DIR}/Release/blender.shared.manifest"
+ NAME "blender.shared"
+ )
+ install(
+ FILES ${CMAKE_BINARY_DIR}/Release/blender.shared.manifest
+ DESTINATION "./blender.shared"
+ CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel
+ )
+ install(
+ FILES ${CMAKE_BINARY_DIR}/Debug/blender.shared.manifest
+ DESTINATION "./blender.shared"
+ CONFIGURATIONS Debug
+ )
+endmacro()
diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake
index f2661ee48b9..5ae991da5d9 100644
--- a/build_files/cmake/platform/platform_win32.cmake
+++ b/build_files/cmake/platform/platform_win32.cmake
@@ -131,7 +131,32 @@ remove_cc_flag("/GR")
# Make the Windows 8.1 API available for use.
add_definitions(-D_WIN32_WINNT=0x603)
-include(build_files/cmake/platform/platform_win32_bundle_crt.cmake)
+
+# First generate the manifest for tests since it will not need the dependency on the CRT.
+configure_file(${CMAKE_SOURCE_DIR}/release/windows/manifest/blender.exe.manifest.in ${CMAKE_CURRENT_BINARY_DIR}/tests.exe.manifest @ONLY)
+
+if(WITH_WINDOWS_BUNDLE_CRT)
+ set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
+ set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE)
+ set(CMAKE_INSTALL_OPENMP_LIBRARIES ${WITH_OPENMP})
+ include(InstallRequiredSystemLibraries)
+
+ # Install the CRT to the blender.crt Sub folder.
+ install(FILES ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} DESTINATION ./blender.crt COMPONENT Libraries)
+
+ windows_generate_manifest(
+ FILES "${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS}"
+ OUTPUT "${CMAKE_BINARY_DIR}/blender.crt.manifest"
+ NAME "blender.crt"
+ )
+
+ install(FILES ${CMAKE_BINARY_DIR}/blender.crt.manifest DESTINATION ./blender.crt)
+ set(BUNDLECRT "<dependency><dependentAssembly><assemblyIdentity type=\"win32\" name=\"blender.crt\" version=\"1.0.0.0\" /></dependentAssembly></dependency>")
+ set(BUNDLECRT "${BUNDLECRT}<dependency><dependentAssembly><assemblyIdentity type=\"win32\" name=\"blender.shared\" version=\"1.0.0.0\" /></dependentAssembly></dependency>")
+endif()
+configure_file(${CMAKE_SOURCE_DIR}/release/windows/manifest/blender.exe.manifest.in ${CMAKE_CURRENT_BINARY_DIR}/blender.exe.manifest @ONLY)
+
+
remove_cc_flag("/MDd" "/MD" "/Zi")
if(MSVC_CLANG) # Clangs version of cl doesn't support all flags
@@ -547,46 +572,48 @@ if(WITH_BOOST)
if(NOT BOOST_VERSION)
message(FATAL_ERROR "Unable to determine Boost version")
endif()
- set(BOOST_POSTFIX "vc142-mt-x64-${BOOST_VERSION}.lib")
- set(BOOST_DEBUG_POSTFIX "vc142-mt-gyd-x64-${BOOST_VERSION}.lib")
+ set(BOOST_POSTFIX "vc142-mt-x64-${BOOST_VERSION}")
+ set(BOOST_DEBUG_POSTFIX "vc142-mt-gyd-x64-${BOOST_VERSION}")
set(BOOST_PREFIX "")
# This is file new in 3.4 if it does not exist, assume we are building against 3.3 libs
- set(BOOST_34_TRIGGER_FILE ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_python310-${BOOST_DEBUG_POSTFIX})
+ set(BOOST_34_TRIGGER_FILE ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_python310-${BOOST_DEBUG_POSTFIX}.lib)
if (NOT EXISTS ${BOOST_34_TRIGGER_FILE})
- set(BOOST_DEBUG_POSTFIX "vc142-mt-gd-x64-${BOOST_VERSION}.lib")
+ set(BOOST_DEBUG_POSTFIX "vc142-mt-gd-x64-${BOOST_VERSION}")
set(BOOST_PREFIX "lib")
endif()
set(BOOST_LIBRARIES
- optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_date_time-${BOOST_POSTFIX}
- optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_filesystem-${BOOST_POSTFIX}
- optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_regex-${BOOST_POSTFIX}
- optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_system-${BOOST_POSTFIX}
- optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_thread-${BOOST_POSTFIX}
- optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_chrono-${BOOST_POSTFIX}
- debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_date_time-${BOOST_DEBUG_POSTFIX}
- debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_filesystem-${BOOST_DEBUG_POSTFIX}
- debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_regex-${BOOST_DEBUG_POSTFIX}
- debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_system-${BOOST_DEBUG_POSTFIX}
- debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_thread-${BOOST_DEBUG_POSTFIX}
- debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_chrono-${BOOST_DEBUG_POSTFIX}
+ optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_date_time-${BOOST_POSTFIX}.lib
+ optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_filesystem-${BOOST_POSTFIX}.lib
+ optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_regex-${BOOST_POSTFIX}.lib
+ optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_system-${BOOST_POSTFIX}.lib
+ optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_thread-${BOOST_POSTFIX}.lib
+ optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_chrono-${BOOST_POSTFIX}.lib
+ debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_date_time-${BOOST_DEBUG_POSTFIX}.lib
+ debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_filesystem-${BOOST_DEBUG_POSTFIX}.lib
+ debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_regex-${BOOST_DEBUG_POSTFIX}.lib
+ debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_system-${BOOST_DEBUG_POSTFIX}.lib
+ debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_thread-${BOOST_DEBUG_POSTFIX}.lib
+ debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_chrono-${BOOST_DEBUG_POSTFIX}.lib
)
if (EXISTS ${BOOST_34_TRIGGER_FILE})
if(WITH_USD)
set(BOOST_LIBRARIES ${BOOST_LIBRARIES}
- debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_python310-${BOOST_DEBUG_POSTFIX}
- optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_python310-${BOOST_POSTFIX}
+ debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_python310-${BOOST_DEBUG_POSTFIX}.lib
+ optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_python310-${BOOST_POSTFIX}.lib
)
endif()
endif()
if(WITH_CYCLES AND WITH_CYCLES_OSL)
set(BOOST_LIBRARIES ${BOOST_LIBRARIES}
- optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_wave-${BOOST_POSTFIX}
- debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_wave-${BOOST_DEBUG_POSTFIX})
+ optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_wave-${BOOST_POSTFIX}.lib
+ debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_wave-${BOOST_DEBUG_POSTFIX}.lib
+ )
endif()
if(WITH_INTERNATIONAL)
set(BOOST_LIBRARIES ${BOOST_LIBRARIES}
- optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_locale-${BOOST_POSTFIX}
- debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_locale-${BOOST_DEBUG_POSTFIX})
+ optimized ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_locale-${BOOST_POSTFIX}.lib
+ debug ${BOOST_LIBPATH}/${BOOST_PREFIX}boost_locale-${BOOST_DEBUG_POSTFIX}.lib
+ )
endif()
else() # we found boost using find_package
set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS})
diff --git a/release/scripts/usercustomize.py b/releas
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list