Skip to content

Commit 7bb83db

Browse files
committed
build-moltenvk: switch to cmake
1 parent 136f08f commit 7bb83db

2 files changed

Lines changed: 28 additions & 15 deletions

File tree

build-moltenvk

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,30 +9,40 @@ set -a; . .env; set +a
99
pkgname="moltenvk"
1010
pkgdir="${STOWDIR}/${pkgname}"
1111
srcdir="src/MoltenVK"
12-
builddir="Package/Latest/MoltenVK/dynamic/dylib/macOS"
13-
xcodebuild="xcodebuild ARCHS=$(uname -m) ONLY_ACTIVE_ARCH=YES"
12+
builddir="${TMPDIR:-/tmp}/build.${pkgname}"
13+
icddir="${pkgdir}/etc/vulkan/icd.d"
1414

1515
echo
1616
echo "*** $0: started"
1717

18-
cd "${srcdir}"
18+
rm -rf "${builddir}"
1919

20-
sed -i '' 's/xcodebuild "$@"/'"${xcodebuild}"' "$@"/g' fetchDependencies
21-
sed -Ei '' 's/(XCODEBUILD := ).*/\1'"${xcodebuild}"'/' Makefile
22-
./fetchDependencies --macos --v-headers-root "${PREFIX}"
23-
make macos MVK_CONFIG_LOG_LEVEL=1 MVK_USE_METAL_PRIVATE_API=1 "$@"
20+
cmake -B "${builddir}" -S "${srcdir}" \
21+
-DCMAKE_INSTALL_PREFIX="${pkgdir}" \
22+
-DCMAKE_INSTALL_NAME_DIR="${pkgdir}/lib" \
23+
-DCMAKE_BUILD_TYPE=Release \
24+
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
25+
-DMVK_CONFIG_LOG_LEVEL=error \
26+
-DCPM_SOURCE_CACHE=src/CPM \
27+
-Wno-dev \
28+
"$@"
2429

25-
sed -i '' 's;\./;../../../lib/;' "${builddir}"/MoltenVK_icd.json
26-
echo
27-
echo 'MoltenVK_icd.json:'
28-
cat "${builddir}"/MoltenVK_icd.json
29-
echo
30+
cmake --build "${builddir}"
3031

3132
rm -rf "${pkgdir}"
3233

33-
install -d "${pkgdir}"/{lib,etc/vulkan/icd.d}
34-
install -vm755 "${builddir}"/libMoltenVK.dylib "${pkgdir}"/lib
35-
install -vm644 "${builddir}"/MoltenVK_icd.json "${pkgdir}"/etc/vulkan/icd.d
34+
cmake --install "${builddir}"
35+
install -d "${icddir}"
36+
install -vm644 "${srcdir}"/MoltenVK/icd/MoltenVK_icd.json "${icddir}"
37+
sed -i '' "s;\./;${pkgdir}/lib/;" "${icddir}"/MoltenVK_icd.json
38+
rm -rf "${pkgdir}"/{bin,share}
3639
stow -Rd "${STOWDIR}" "${pkgname}"
3740

41+
echo
42+
echo 'MoltenVK_icd.json:'
43+
cat "${icddir}"/MoltenVK_icd.json
44+
echo
45+
46+
rm -rf "${builddir}"
47+
3848
echo "*** $0: finished"

fetch

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,9 @@ fetch_moltenvk() {
138138
local url="https://github.com/KhronosGroup/MoltenVK.git"
139139
rm -rf src/MoltenVK
140140
git -C src clone --depth 1 "${url}"
141+
142+
echo -e '\n\ntarget_compile_definitions(MoltenVK_Common PUBLIC' \
143+
'MVK_USE_METAL_PRIVATE_API=1)' >> src/MoltenVK/Common/CMakeLists.txt
141144
}
142145

143146
fetch_mpv() {

0 commit comments

Comments
 (0)