2020-09-07 15:40:37 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2021-04-05 06:47:23 +00:00
|
|
|
LOADER_REPO="https://github.com/KhronosGroup/Vulkan-Loader.git"
|
2021-10-28 18:47:11 +00:00
|
|
|
LOADER_COMMIT="830a0724aa281d7cad98eda59b850871f024bb41"
|
2020-09-07 15:40:37 +00:00
|
|
|
|
|
|
|
ffbuild_enabled() {
|
2021-05-13 00:17:17 +00:00
|
|
|
# The various graphics systems(xcb, xlib, wayland, ...) need figured out first
|
|
|
|
[[ $TARGET == linux* ]] && return -1
|
|
|
|
|
2020-09-07 15:40:37 +00:00
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
ffbuild_dockerstage() {
|
2021-04-05 17:22:03 +00:00
|
|
|
to_df "RUN --mount=src=${SELF},dst=/stage.sh --mount=src=patches/vulkan,dst=/patches run_stage /stage.sh"
|
2020-09-07 15:40:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
ffbuild_dockerbuild() {
|
2021-04-05 06:47:23 +00:00
|
|
|
git clone "$LOADER_REPO" loader
|
|
|
|
git -C loader checkout "$LOADER_COMMIT"
|
2020-09-07 15:40:37 +00:00
|
|
|
|
2021-04-05 17:22:03 +00:00
|
|
|
for patch in /patches/*.patch; do
|
2021-04-05 06:47:23 +00:00
|
|
|
echo "Applying $patch"
|
|
|
|
git -C loader am -3 < "$patch"
|
|
|
|
done
|
2020-09-07 19:32:38 +00:00
|
|
|
|
|
|
|
HEADERS_REPO="$(grep -A10 'name.*:.*Vulkan-Headers' loader/scripts/known_good.json | grep url | head -n1 | cut -d'"' -f4)"
|
|
|
|
HEADERS_COMMIT="$(grep -A10 'name.*:.*Vulkan-Headers' loader/scripts/known_good.json | grep commit | head -n1 | cut -d'"' -f4)"
|
|
|
|
|
|
|
|
git-mini-clone "$HEADERS_REPO" "$HEADERS_COMMIT" headers
|
|
|
|
|
|
|
|
cd headers
|
|
|
|
|
|
|
|
mkdir build && cd build
|
|
|
|
|
|
|
|
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" ..
|
|
|
|
make -j$(nproc)
|
|
|
|
make install
|
|
|
|
|
|
|
|
cd ../../loader
|
|
|
|
|
|
|
|
mkdir build && cd build
|
|
|
|
|
2021-04-05 00:20:36 +00:00
|
|
|
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" -DBUILD_TESTS=OFF -DBUILD_STATIC_LOADER=ON ..
|
2020-09-07 19:32:38 +00:00
|
|
|
make -j$(nproc)
|
|
|
|
make install
|
2021-04-29 23:39:47 +00:00
|
|
|
|
|
|
|
ln -s libvulkan-1.a /opt/ffbuild/lib/libvulkan.a
|
2020-09-07 15:40:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
ffbuild_configure() {
|
|
|
|
echo --enable-vulkan
|
|
|
|
}
|
|
|
|
|
|
|
|
ffbuild_unconfigure() {
|
|
|
|
echo --disable-vulkan
|
|
|
|
}
|