|
16 | 16 | # |
17 | 17 |
|
18 | 18 | set -e |
| 19 | +set -o pipefail |
19 | 20 |
|
20 | 21 | THIS_DIR=$(DIRNAME=$(dirname "$0"); cd "$DIRNAME"; pwd) |
21 | 22 | cd "$THIS_DIR" |
@@ -74,7 +75,7 @@ echo "[*] fetch dependencies for $LIB_NAME" |
74 | 75 | echo "----------------------" |
75 | 76 |
|
76 | 77 | cd $MR_BUILD_SOURCE |
77 | | -if [ -d "External" ]; then |
| 78 | +if [ -d "External/build" ]; then |
78 | 79 | echo "dependencies already exist" |
79 | 80 | else |
80 | 81 | if [ -f "./fetchDependencies" ]; then |
@@ -105,11 +106,8 @@ xcodebuild -project "$MR_BUILD_SOURCE/MoltenVKPackaging.xcodeproj" \ |
105 | 106 | -scheme "MoltenVK Package ($scheme_suffix)" \ |
106 | 107 | -destination "generic/platform=$dest" \ |
107 | 108 | -configuration Release \ |
108 | | - -parallelizeTargets \ |
109 | | - ONLY_ACTIVE_ARCH=YES \ |
110 | | - ARCHS="$arch_param" \ |
111 | 109 | CODE_SIGNING_ALLOWED=NO \ |
112 | | - build || true |
| 110 | + build |
113 | 111 |
|
114 | 112 | pkg_static_dir="$MR_BUILD_SOURCE/Package/Release/MoltenVK/static" |
115 | 113 | if [[ -d "$pkg_static_dir/MoltenVK.xcframework" ]]; then |
@@ -143,3 +141,47 @@ if [[ -d "$vk_video_headers" ]]; then |
143 | 141 | cp -RL "$vk_video_headers"/* "$MR_BUILD_PREFIX/include/vk_video/" |
144 | 142 | echo "Copied vk_video headers to $MR_BUILD_PREFIX/include/vk_video/" |
145 | 143 | fi |
| 144 | + |
| 145 | +echo "----------------------" |
| 146 | +echo "[*] generate pkg-config files" |
| 147 | +echo "----------------------" |
| 148 | + |
| 149 | +mkdir -p "$MR_BUILD_PREFIX/lib/pkgconfig" |
| 150 | + |
| 151 | +MOLTENVK_MAJOR=$(grep "MVK_VERSION_MAJOR" "$MR_BUILD_PREFIX/include/MoltenVK/mvk_private_api.h" | grep -oE "[0-9]+" | head -1) |
| 152 | +MOLTENVK_MINOR=$(grep "MVK_VERSION_MINOR" "$MR_BUILD_PREFIX/include/MoltenVK/mvk_private_api.h" | grep -oE "[0-9]+" | head -1) |
| 153 | +MOLTENVK_PATCH=$(grep "MVK_VERSION_PATCH" "$MR_BUILD_PREFIX/include/MoltenVK/mvk_private_api.h" | grep -oE "[0-9]+" | head -1) |
| 154 | +MOLTENVK_VERSION="${MOLTENVK_MAJOR}.${MOLTENVK_MINOR}.${MOLTENVK_PATCH}" |
| 155 | + |
| 156 | +VULKAN_VERSION="1.3.250" |
| 157 | + |
| 158 | +cat > "$MR_BUILD_PREFIX/lib/pkgconfig/vulkan.pc" << EOF |
| 159 | +prefix=${MR_BUILD_PREFIX} |
| 160 | +exec_prefix=\${prefix} |
| 161 | +libdir=\${exec_prefix}/lib |
| 162 | +includedir=\${prefix}/include |
| 163 | +
|
| 164 | +Name: Vulkan |
| 165 | +Description: Vulkan loader (MoltenVK) |
| 166 | +Version: ${VULKAN_VERSION} |
| 167 | +Libs: -L\${libdir} -lMoltenVK |
| 168 | +Libs.private: -framework Metal -framework Foundation -framework QuartzCore -framework IOKit -framework IOSurface -lc++ |
| 169 | +Cflags: -I\${includedir} -I\${includedir}/vulkan |
| 170 | +EOF |
| 171 | + |
| 172 | +cat > "$MR_BUILD_PREFIX/lib/pkgconfig/moltenvk.pc" << EOF |
| 173 | +prefix=${MR_BUILD_PREFIX} |
| 174 | +exec_prefix=\${prefix} |
| 175 | +libdir=\${exec_prefix}/lib |
| 176 | +includedir=\${prefix}/include |
| 177 | +
|
| 178 | +Name: MoltenVK |
| 179 | +Description: Vulkan implementation on Metal for macOS and iOS |
| 180 | +Version: ${MOLTENVK_VERSION} |
| 181 | +Libs: -L\${libdir} -lMoltenVK |
| 182 | +Libs.private: -framework Metal -framework Foundation -framework QuartzCore -framework IOKit -framework IOSurface -lc++ |
| 183 | +Cflags: -I\${includedir} -I\${includedir}/vulkan -I\${includedir}/MoltenVK |
| 184 | +Requires: vulkan |
| 185 | +EOF |
| 186 | + |
| 187 | +echo "Generated vulkan.pc (${VULKAN_VERSION}) and moltenvk.pc (${MOLTENVK_VERSION})" |
0 commit comments