Re-Organize Vulkan build order a bit

This commit is contained in:
BtbN
2021-11-13 14:06:39 +01:00
parent 176e853bbe
commit 1cd3f207c5
4 changed files with 1 additions and 0 deletions

View File

@ -0,0 +1,38 @@
#!/bin/bash
HEADERS_REPO="https://github.com/KhronosGroup/Vulkan-Headers.git"
HEADERS_VERSION="1.2.198"
ffbuild_enabled() {
[[ $ADDINS_STR == *4.4* ]] && return -1
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$HEADERS_REPO" "v$HEADERS_VERSION" vkheaders
cd vkheaders
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
cat >"$FFBUILD_PREFIX"/lib/pkgconfig/vulkan.pc <<EOF
prefix=$FFBUILD_PREFIX
includedir=\${prefix}/include
Name: vulkan
Version: $HEADERS_VERSION
Description: Vulkan (Headers Only)
Cflags: -I\${includedir}
EOF
}
ffbuild_configure() {
echo --enable-vulkan
}
ffbuild_unconfigure() {
echo --disable-vulkan
}

View File

@ -0,0 +1,32 @@
#!/bin/bash
GLSLANG_REPO="https://github.com/KhronosGroup/glslang.git"
GLSLANG_COMMIT="d1608ab1ef17f1488bdcbfe11f2c3c96ac482fce"
ffbuild_enabled() {
[[ $ADDINS_STR == *4.4* ]] && return -1
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$GLSLANG_REPO" "$GLSLANG_COMMIT" glslang
cd glslang
python3 ./update_glslang_sources.py
mkdir build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \
-DBUILD_SHARED_LIBS=OFF -DBUILD_EXTERNAL=ON -DBUILD_TESTING=OFF -DENABLE_CTEST=OFF \
-DENABLE_OPT=ON -DENABLE_HLSL=ON -DENABLE_GLSLANG_BINARIES=OFF ..
make -j$(nproc)
make install
}
ffbuild_configure() {
echo --enable-libglslang
}
ffbuild_unconfigure() {
echo --disable-libglslang
}

View File

@ -0,0 +1,42 @@
#!/bin/bash
SPIRV_CROSS_REPO="https://github.com/KhronosGroup/SPIRV-Cross.git"
SPIRV_CROSS_COMMIT="401296d3b8fc60193e99ccabb81eb3e4fe2dd802"
ffbuild_enabled() {
[[ $ADDINS_STR == *4.4* ]] && return -1
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$SPIRV_CROSS_REPO" "$SPIRV_CROSS_COMMIT" spirv-cross
cd spirv-cross
VER_MAJ="$(grep 'set(spirv-cross-abi-major' CMakeLists.txt | sed -re 's/.* ([0-9]+)\)/\1/')"
VER_MIN="$(grep 'set(spirv-cross-abi-minor' CMakeLists.txt | sed -re 's/.* ([0-9]+)\)/\1/')"
VER_PCH="$(grep 'set(spirv-cross-abi-patch' CMakeLists.txt | sed -re 's/.* ([0-9]+)\)/\1/')"
VER_FULL="$VER_MAJ.$VER_MIN.$VER_PCH"
mkdir build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE="$FFBUILD_CMAKE_TOOLCHAIN" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$FFBUILD_PREFIX" \
-DSPIRV_CROSS_SHARED=OFF -DSPIRV_CROSS_STATIC=ON -DSPIRV_CROSS_CLI=OFF -DSPIRV_CROSS_ENABLE_TESTS=OFF -DSPIRV_CROSS_FORCE_PIC=ON -DSPIRV_CROSS_ENABLE_CPP=OFF ..
make -j$(nproc)
make install
cat >"$FFBUILD_PREFIX"/lib/pkgconfig/spirv-cross-c-shared.pc <<EOF
prefix=$FFBUILD_PREFIX
exec_prefix=\${prefix}
libdir=\${prefix}/lib
sharedlibdir=\${prefix}/lib
includedir=\${prefix}/include/spirv_cross
Name: spirv-cross-c-shared
Description: C API for SPIRV-Cross
Version: $VER_FULL
Requires:
Libs: -L\${libdir} -L\${sharedlibdir} -lspirv-cross-c -lspirv-cross-glsl -lspirv-cross-hlsl -lspirv-cross-reflect -lspirv-cross-msl -lspirv-cross-util -lspirv-cross-core -lstdc++
Cflags: -I\${includedir}
EOF
}

View File

@ -0,0 +1,60 @@
#!/bin/bash
PLACEBO_REPO="https://code.videolan.org/videolan/libplacebo.git"
PLACEBO_COMMIT="e91a59f055a2d4025b587fa9e9cf91a6ba934377"
ffbuild_enabled() {
[[ $ADDINS_STR == *4.4* ]] && return -1
return 0
}
ffbuild_dockerbuild() {
git-mini-clone "$PLACEBO_REPO" "$PLACEBO_COMMIT" placebo
cd placebo
mkdir build && cd build
local myconf=(
--prefix="$FFBUILD_PREFIX"
--buildtype=release
--default-library=static
-Dvulkan=enabled
-Dvulkan-link=false
-Dvulkan-registry="$FFBUILD_PREFIX"/share/vulkan/registry/vk.xml
-Dglslang=enabled
-Ddemos=false
-Dtests=false
-Dbench=false
-Dfuzz=false
)
if [[ $TARGET == win* ]]; then
myconf+=(
-Dd3d11=enabled
)
fi
if [[ $TARGET == win* || $TARGET == linux* ]]; then
myconf+=(
--cross-file=/cross.meson
)
else
echo "Unknown target"
return -1
fi
meson "${myconf[@]}" ..
ninja -j$(nproc)
ninja install
echo "Libs.private: -lstdc++" >> "$FFBUILD_PREFIX"/lib/pkgconfig/libplacebo.pc
}
ffbuild_configure() {
echo --enable-libplacebo
}
ffbuild_unconfigure() {
[[ $ADDINS_STR == *4.4* ]] && return 0
echo --disable-libplacebo
}