blob: 416b8bc308d5fdacd92896eee61cdfda62b02ba4 (
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
|
# USD plugins do not produce .lib
set(VCPKG_POLICY_DLLS_WITHOUT_LIBS enabled)
# Proper support for a true static usd build is left as a future port improvement.
vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
# zero-pad version components to two digits
string(REPLACE "." ";" version_components ${VERSION})
foreach(component IN LISTS version_components)
string(LENGTH ${component} component_length)
if(component_length LESS 2)
list(APPEND USD_VERSION "0${component}")
else()
list(APPEND USD_VERSION "${component}")
endif()
endforeach()
string(JOIN "." USD_VERSION ${USD_VERSION})
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO PixarAnimationStudios/OpenUSD
REF "v${USD_VERSION}"
SHA512 fbe1e632473883e47f4bfeb16cab314bbbe8a7b404a5c071ca613bbf288526e505edd7a5edfdd9f85dd16da6d0d91fa0d4f8c783882094d3691f77685817fea6
HEAD_REF release
PATCHES
003-fix-dep.patch
004-fix_cmake_package.patch
007-fix_cmake_hgi_interop.patch
008-fix_clang8_compiler_error.patch
009-vcpkg_install_folder_conventions.patch
010-cmake_export_plugin_as_modules.patch
013-openimageio-3.patch
)
# Changes accompanying 003-fix-dep.patch
file(REMOVE
"${SOURCE_PATH}/cmake/modules/FindOpenColorIO.cmake"
"${SOURCE_PATH}/pxr/imaging/hgiVulkan/vk_mem_alloc.cpp"
"${SOURCE_PATH}/pxr/imaging/hgiVulkan/vk_mem_alloc.h"
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
imaging PXR_BUILD_IMAGING
imaging PXR_BUILD_USD_IMAGING
imaging PXR_ENABLE_GL_SUPPORT
materialx PXR_ENABLE_MATERIALX_SUPPORT
openimageio PXR_BUILD_OPENIMAGEIO_PLUGIN
vulkan PXR_ENABLE_VULKAN_SUPPORT
)
vcpkg_cmake_configure(
SOURCE_PATH ${SOURCE_PATH}
OPTIONS ${FEATURE_OPTIONS}
-DPXR_BUILD_DOCUMENTATION:BOOL=OFF
-DPXR_BUILD_EXAMPLES:BOOL=OFF
-DPXR_BUILD_TESTS:BOOL=OFF
-DPXR_BUILD_TUTORIALS:BOOL=OFF
-DPXR_BUILD_USD_TOOLS:BOOL=OFF
-DPXR_BUILD_ALEMBIC_PLUGIN:BOOL=OFF
-DPXR_BUILD_DRACO_PLUGIN:BOOL=OFF
-DPXR_BUILD_EMBREE_PLUGIN:BOOL=OFF
-DPXR_BUILD_PRMAN_PLUGIN:BOOL=OFF
-DPXR_ENABLE_OPENVDB_SUPPORT:BOOL=OFF
-DPXR_ENABLE_PTEX_SUPPORT:BOOL=OFF
-DPXR_PREFER_SAFETY_OVER_SPEED:BOOL=ON
-DPXR_ENABLE_PYTHON_SUPPORT:BOOL=OFF
-DPXR_USE_DEBUG_PYTHON:BOOL=OFF
MAYBE_UNUSED_VARIABLES
PXR_USE_PYTHON_3
PYTHON_EXECUTABLE
)
vcpkg_cmake_install()
vcpkg_copy_pdbs()
# Handle debug path for USD plugins
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
file(GLOB_RECURSE debug_targets
"${CURRENT_PACKAGES_DIR}/debug/share/pxr/*-debug.cmake"
)
foreach(debug_target IN LISTS debug_targets)
file(READ "${debug_target}" contents)
string(REPLACE "\${_IMPORT_PREFIX}/usd" "\${_IMPORT_PREFIX}/debug/usd" contents "${contents}")
string(REPLACE "\${_IMPORT_PREFIX}/plugin" "\${_IMPORT_PREFIX}/debug/plugin" contents "${contents}")
file(WRITE "${debug_target}" "${contents}")
endforeach()
endif()
vcpkg_cmake_config_fixup(PACKAGE_NAME "pxr")
file(REMOVE_RECURSE
"${CURRENT_PACKAGES_DIR}/debug/include"
"${CURRENT_PACKAGES_DIR}/debug/share"
)
if(VCPKG_TARGET_IS_WINDOWS)
# Move all dlls to bin
file(GLOB RELEASE_DLL ${CURRENT_PACKAGES_DIR}/lib/*.dll)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin)
if(NOT VCPKG_BUILD_TYPE)
file(GLOB DEBUG_DLL ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll)
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin)
endif()
foreach(CURRENT_FROM ${RELEASE_DLL} ${DEBUG_DLL})
string(REPLACE "/lib/" "/bin/" CURRENT_TO ${CURRENT_FROM})
file(RENAME ${CURRENT_FROM} ${CURRENT_TO})
endforeach()
function(file_replace_regex filename match_string replace_string)
file(READ ${filename} _contents)
string(REGEX REPLACE "${match_string}" "${replace_string}" _contents "${_contents}")
file(WRITE ${filename} "${_contents}")
endfunction()
# fix dll path for cmake
if(NOT VCPKG_BUILD_TYPE)
file_replace_regex(${CURRENT_PACKAGES_DIR}/share/pxr/pxrTargets-debug.cmake "debug/lib/([a-zA-Z0-9_]+)\\.dll" "debug/bin/\\1.dll")
endif()
file_replace_regex(${CURRENT_PACKAGES_DIR}/share/pxr/pxrTargets-release.cmake "lib/([a-zA-Z0-9_]+)\\.dll" "bin/\\1.dll")
# fix plugInfo.json for runtime
file(GLOB_RECURSE PLUGINFO_FILES ${CURRENT_PACKAGES_DIR}/lib/usd/*/resources/plugInfo.json)
file(GLOB_RECURSE PLUGINFO_FILES_DEBUG ${CURRENT_PACKAGES_DIR}/debug/lib/usd/*/resources/plugInfo.json)
foreach(PLUGINFO ${PLUGINFO_FILES} ${PLUGINFO_FILES_DEBUG})
file_replace_regex(${PLUGINFO} [=["LibraryPath": "../../([a-zA-Z0-9_]+).dll"]=] [=["LibraryPath": "../../../bin/\1.dll"]=])
endforeach()
endif()
# Handle copyright
vcpkg_install_copyright(FILE_LIST ${SOURCE_PATH}/LICENSE.txt)
|