aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/usd/003-fix-dep.patch
blob: a20b3b09693818132e0bed65dde56ff1d9d1381c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
diff --git a/cmake/defaults/Packages.cmake b/cmake/defaults/Packages.cmake
index 1b69cad..9494278 100644
--- a/cmake/defaults/Packages.cmake
+++ b/cmake/defaults/Packages.cmake
@@ -178,7 +178,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
@@ -155,7 +160,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")
@@ -189,4 +195,4 @@ if (PXR_BUILD_IMAGING)
-        if (EXISTS $ENV{VULKAN_SDK})
+        if (0)
             # Prioritize the VULKAN_SDK includes and packages before any system
             # installed headers. This is to prevent linking against older SDKs
             # that may be installed by the OS.
@@ -215,8 +221,12 @@ if (PXR_BUILD_IMAGING)
             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
diff --git a/pxr/imaging/hgiVulkan/CMakeLists.txt b/pxr/imaging/hgiVulkan/CMakeLists.txt
index 00ad75448..dff475436 100644
--- a/pxr/imaging/hgiVulkan/CMakeLists.txt
+++ b/pxr/imaging/hgiVulkan/CMakeLists.txt
@@ -40,8 +40,7 @@ pxr_library(hgiVulkan
         shaderProgram
         shaderSection
         texture
-        vk_mem_alloc
 
     PUBLIC_HEADERS
         api.h
         vulkan.h
diff --git a/pxr/imaging/hgiVulkan/device.cpp b/pxr/imaging/hgiVulkan/device.cpp
index 08bf8e0a7..bfc368169 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 1f527b9cb..b5ffd314f 100644
--- a/pxr/imaging/hgiVulkan/vulkan.h
+++ b/pxr/imaging/hgiVulkan/vulkan.h
@@ -24,7 +24,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 0a055b7..de4b73a 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 a7e566bac..559f50b9c 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_ms)
     set(libs "usd_ms")
 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)