[Bf-blender-cvs] [397447e131a] temp-sybren-usd-patch-02: USD: Windows-specific fixes by @LazyDodo

Sybren A. Stüvel noreply at git.blender.org
Thu Nov 28 18:40:20 CET 2019


Commit: 397447e131a9e8964a7ea66666f1e0d8133dfdbd
Author: Sybren A. Stüvel
Date:   Thu Nov 28 18:40:16 2019 +0100
Branches: temp-sybren-usd-patch-02
https://developer.blender.org/rB397447e131a9e8964a7ea66666f1e0d8133dfdbd

USD: Windows-specific fixes by @LazyDodo

===================================================================

M	build_files/build_environment/cmake/usd.cmake
M	build_files/cmake/macros.cmake
M	build_files/cmake/platform/platform_win32.cmake

===================================================================

diff --git a/build_files/build_environment/cmake/usd.cmake b/build_files/build_environment/cmake/usd.cmake
index c4b1d3f73b1..03c70c23430 100644
--- a/build_files/build_environment/cmake/usd.cmake
+++ b/build_files/build_environment/cmake/usd.cmake
@@ -33,6 +33,9 @@ set(USD_EXTRA_ARGS
   -DPXR_BUILD_MONOLITHIC=ON
   -DPXR_BUILD_USD_TOOLS=OFF
   -DCMAKE_DEBUG_POSTFIX=_d
+  # USD is hellbound on making a shared lib, unless you point this variable to a valid cmake file
+  # doesn't have to make sense, but as long as it points somewhere valid it will skip the shared lib.
+  -DPXR_MONOLITHIC_IMPORT=${BUILD_DIR}/usd/src/external_usd/cmake/defaults/Version.cmake
 )
 
 ExternalProject_Add(external_usd
@@ -50,3 +53,29 @@ add_dependencies(
   external_tbb
   external_boost
 )
+
+if(WIN32)
+  # USD currently demands python be available at build time
+  # and then proceeds not to use it, but still checks that the
+  # version of the interpreter it is not going to use is atleast 2.7
+  # so we need this dep currently since there is no system python
+  # on windows.
+  add_dependencies(
+    external_usd
+    external_python
+  )
+  if(BUILD_MODE STREQUAL Release)
+    ExternalProject_Add_Step(external_usd after_install
+      COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/usd/ ${HARVEST_TARGET}/usd
+      COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/usd/src/external_usd-build/pxr/Release/libusd_m.lib ${HARVEST_TARGET}/usd/lib/libusd_m.lib
+      DEPENDEES install
+    )
+  endif()
+  if(BUILD_MODE STREQUAL Debug)
+    ExternalProject_Add_Step(external_usd after_install
+      COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/usd/lib ${HARVEST_TARGET}/usd/lib
+      COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/usd/src/external_usd-build/pxr/Debug/libusd_m_d.lib ${HARVEST_TARGET}/usd/lib/libusd_m_d.lib
+      DEPENDEES install
+    )
+  endif()
+endif()
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index 101f71261b4..3b6b4720a7c 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -469,8 +469,11 @@ function(setup_liblinks
   if(WITH_USD)
     # Source: https://github.com/PixarAnimationStudios/USD/blob/master/BUILDING.md#linking-whole-archives
     if(WIN32)
-      # whole-archive linking is handled in platform_win32.cmake.
       target_link_libraries(${target} ${USD_LIBRARIES})
+      set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS_DEBUG " /WHOLEARCHIVE:libusd_m_d.lib")
+      set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS_RELEASE " /WHOLEARCHIVE:libusd_m.lib")
+      set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS_RELWITHDEBINFO " /WHOLEARCHIVE:libusd_m.lib")
+      set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS_MINSIZEREL " /WHOLEARCHIVE:libusd_m.lib")
     elseif(CMAKE_COMPILER_IS_GNUCXX)
       target_link_libraries(${target} -Wl,--whole-archive ${USD_LIBRARIES} -Wl,--no-whole-archive)
     elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake
index 094be7042a2..bb6179ce87f 100644
--- a/build_files/cmake/platform/platform_win32.cmake
+++ b/build_files/cmake/platform/platform_win32.cmake
@@ -665,10 +665,8 @@ if(WITH_USD)
     set(USD_INCLUDE_DIRS ${LIBDIR}/usd/include)
     set(USD_LIBRARIES
         debug ${LIBDIR}/usd/lib/libusd_m_d.lib
-        optimized ${LIBDIR}/usd/lib/usd_m.lib
+        optimized ${LIBDIR}/usd/lib/libusd_m.lib
     )
-    set(USD_LINKFLAGS_DEBUG "/WHOLEARCHIVE:libusd_m_d.lib")
-    set(USD_LINKFLAGS_RELEASE "/WHOLEARCHIVE:libusd_m.lib")
   endif()
 endif()



More information about the Bf-blender-cvs mailing list