[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