vcpkg/ports/usd/003-fix-dep.patch

170 lines
6.0 KiB
Diff

diff --git a/cmake/defaults/Packages.cmake b/cmake/defaults/Packages.cmake
index 8742546462..16bc7306e1 100644
--- a/cmake/defaults/Packages.cmake
+++ b/cmake/defaults/Packages.cmake
@@ -172,7 +172,8 @@ if (PXR_BUILD_IMAGING)
# --OpenImageIO
if (PXR_BUILD_OPENIMAGEIO_PLUGIN)
set(REQUIRES_Imath TRUE)
- find_package(OpenImageIO REQUIRED)
+ find_package(OpenImageIO CONFIG REQUIRED)
+ set(OIIO_LIBRARIES OpenImageIO::OpenImageIO)
add_definitions(-DPXR_OIIO_PLUGIN_ENABLED)
if (OIIO_idiff_BINARY)
set(IMAGE_DIFF_TOOL ${OIIO_idiff_BINARY} CACHE STRING "Uses idiff for image diffing")
@@ -190,7 +191,12 @@ if (PXR_BUILD_IMAGING)
if (POLICY CMP0072)
cmake_policy(SET CMP0072 OLD)
endif()
+ set(previous_CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK})
+ if(APPLE) # Must find Apple OpenGL, not XQuartz OpenGL
+ set(CMAKE_FIND_FRAMEWORK FIRST)
+ endif()
find_package(OpenGL REQUIRED)
+ set(CMAKE_FIND_FRAMEWORK ${previous_CMAKE_FIND_FRAMEWORK})
add_definitions(-DPXR_GL_SUPPORT_ENABLED)
endif()
# --Metal
@@ -199,7 +205,7 @@ if (PXR_BUILD_IMAGING)
endif()
if (PXR_ENABLE_VULKAN_SUPPORT)
message(STATUS "Enabling experimental feature Vulkan support")
- if (EXISTS $ENV{VULKAN_SDK})
+ if (0)
find_package(Vulkan REQUIRED COMPONENTS shaderc_combined)
list(APPEND VULKAN_LIBS Vulkan::Vulkan Vulkan::shaderc_combined)
@@ -211,10 +217,14 @@ if (PXR_BUILD_IMAGING)
# No extra libs required
endif()
- add_definitions(-DPXR_VULKAN_SUPPORT_ENABLED)
- else()
- message(FATAL_ERROR "VULKAN_SDK not valid")
endif()
+ add_definitions(-DPXR_VULKAN_SUPPORT_ENABLED)
+ find_package(Vulkan REQUIRED)
+ find_package(unofficial-shaderc CONFIG REQUIRED)
+ find_package(VulkanMemoryAllocator CONFIG REQUIRED)
+ list(APPEND VULKAN_LIBS Vulkan::Vulkan)
+ list(APPEND VULKAN_LIBS unofficial::shaderc::shaderc)
+ list(APPEND VULKAN_LIBS GPUOpen::VulkanMemoryAllocator)
endif()
# --Opensubdiv
set(OPENSUBDIV_USE_GPU ${PXR_BUILD_GPU_SUPPORT})
diff --git a/pxr/imaging/hgiVulkan/CMakeLists.txt b/pxr/imaging/hgiVulkan/CMakeLists.txt
index e98893d3f0..772c3edb64 100644
--- a/pxr/imaging/hgiVulkan/CMakeLists.txt
+++ b/pxr/imaging/hgiVulkan/CMakeLists.txt
@@ -41,7 +41,6 @@ pxr_library(hgiVulkan
shaderProgram
shaderSection
texture
- vk_mem_alloc
PUBLIC_HEADERS
api.h
diff --git a/pxr/imaging/hgiVulkan/device.cpp b/pxr/imaging/hgiVulkan/device.cpp
index a1c44143a9..2ac706e89a 100644
--- a/pxr/imaging/hgiVulkan/device.cpp
+++ b/pxr/imaging/hgiVulkan/device.cpp
@@ -11,7 +11,8 @@
#include "pxr/imaging/hgiVulkan/hgi.h"
#include "pxr/imaging/hgiVulkan/instance.h"
#include "pxr/imaging/hgiVulkan/pipelineCache.h"
-#include "pxr/imaging/hgiVulkan/vk_mem_alloc.h"
+#define VMA_IMPLEMENTATION
+#include <vk_mem_alloc.h>
#include "pxr/base/tf/diagnostic.h"
diff --git a/pxr/imaging/hgiVulkan/vulkan.h b/pxr/imaging/hgiVulkan/vulkan.h
index 2e8f590646..7521f1f37e 100644
--- a/pxr/imaging/hgiVulkan/vulkan.h
+++ b/pxr/imaging/hgiVulkan/vulkan.h
@@ -35,7 +35,7 @@
#define VK_EXTERNAL_MEMORY_HANDLE_AUTO 0
#endif
-#include "pxr/imaging/hgiVulkan/vk_mem_alloc.h"
+#include <vk_mem_alloc.h>
// Use the default allocator (nullptr)
inline VkAllocationCallbacks*
diff --git a/pxr/imaging/plugin/hioOiio/CMakeLists.txt b/pxr/imaging/plugin/hioOiio/CMakeLists.txt
index 0a055b711d..de4b73a47d 100644
--- a/pxr/imaging/plugin/hioOiio/CMakeLists.txt
+++ b/pxr/imaging/plugin/hioOiio/CMakeLists.txt
@@ -7,6 +7,7 @@ if (NOT ${PXR_BUILD_GPU_SUPPORT})
return()
endif()
+if(0) # No need because OpenImageIO::OpenImageIO already declare its transitive dependencies correctly
# Use the import targets set by Imath's package config
if (Imath_FOUND)
set(__OIIO_IMATH_LIBS "Imath::Imath")
@@ -14,6 +15,7 @@ else()
set(__OIIO_IMATH_INCLUDE ${OPENEXR_INCLUDE_DIRS})
set(__OIIO_IMATH_LIBS ${OPENEXR_LIBRARIES})
endif()
+endif()
pxr_plugin(hioOiio
LIBRARIES
diff --git a/pxr/pxrConfig.cmake.in b/pxr/pxrConfig.cmake.in
index b83cf3d730..611a29cbc1 100644
--- a/pxr/pxrConfig.cmake.in
+++ b/pxr/pxrConfig.cmake.in
@@ -18,6 +18,25 @@ set(PXR_VERSION "@PXR_VERSION@")
include(CMakeFindDependencyMacro)
+if(@PXR_BUILD_IMAGING@)
+ if(@PXR_BUILD_OPENIMAGEIO_PLUGIN@)
+ find_dependency(OpenImageIO CONFIG)
+ endif()
+ if(@PXR_ENABLE_GL_SUPPORT@)
+ find_dependency(OpenGL REQUIRED)
+ endif()
+ if(@PXR_ENABLE_VULKAN_SUPPORT@)
+ if (NOT DEFINED Vulkan_DIR)
+ if (NOT [[@Vulkan_DIR@]] STREQUAL "")
+ set(Vulkan_DIR [[@Vulkan_DIR@]])
+ endif()
+ endif()
+ find_dependency(Vulkan REQUIRED)
+ find_dependency(unofficial-shaderc CONFIG)
+ find_dependency(VulkanMemoryAllocator CONFIG)
+ endif()
+endif()
+
# If Python support was enabled for this USD build, find the import
# targets by invoking the appropriate FindPython module. Use the same
# LIBRARY and INCLUDE_DIR settings from the original build if they
@@ -101,7 +120,7 @@ if(@Imath_FOUND@)
set(Imath_DIR [[@Imath_DIR@]])
endif()
endif()
- find_dependency(Imath)
+ find_dependency(Imath CONFIG)
endif()
# If this build is using a custom work implementation, find the package
@@ -115,14 +134,14 @@ if(NOT "@PXR_WORK_IMPL_PACKAGE@" STREQUAL "")
find_dependency(@PXR_WORK_IMPL_PACKAGE@)
endif()
-include("${PXR_CMAKE_DIR}/cmake/pxrTargets.cmake")
+include("${PXR_CMAKE_DIR}/pxrTargets.cmake")
if (TARGET usd_m)
set(libs "usd_m")
else()
set(libs "@PXR_ALL_LIBS@")
endif()
set(PXR_LIBRARIES "")
-set(PXR_INCLUDE_DIRS "${PXR_CMAKE_DIR}/include")
+set(PXR_INCLUDE_DIRS "${PXR_CMAKE_DIR}/../../include")
string(REPLACE " " ";" libs "${libs}")
foreach(lib ${libs})
get_target_property(location ${lib} LOCATION)