146 lines
4.9 KiB
Python
146 lines
4.9 KiB
Python
pkgname = "vulkan-sdk"
|
|
pkgver = "1.4.350.1"
|
|
source = f"https://rocketleaguechatp.duckdns.org/pappalaugh.jpg"
|
|
builddir = f"/tmp/fempkg/build/{pkgname}/{pkgname}-{pkgver}"
|
|
fembuilddir = f"/tmp/fempkg/build/{pkgname}"
|
|
outputdir = "/home/gabry/lfs-repo/binpkg"
|
|
manifestdir = "/home/gabry/lfs-repo/manifests"
|
|
destdir = f"{fembuilddir}/DESTDIR"
|
|
deps = ["cmake", "xorg-libs", "wayland", "wayland-protocols"]
|
|
|
|
build = [
|
|
# Extract
|
|
f"mkdir -p {builddir}",
|
|
|
|
# 64-bit build
|
|
f"cd {builddir} && wget https://rocketleaguechatp.duckdns.org/vulkan-sdk-list",
|
|
f"cd {builddir} && mkdir vulkan-sdk && cd vulkan-sdk && grep -v '^#' ../vulkan-sdk-list | wget -i- -c -B https://github.com/KhronosGroup/",
|
|
f"cd {builddir} && mkdir -p {destdir}/usr/lib32",
|
|
f"""cd {builddir}/vulkan-sdk && bash -e <<'EOF'
|
|
for package in {{Vulkan-{{Headers,Loader,Utility-Libraries,Tools}},SPIRV-{{Headers,Tools}},glslang}}
|
|
do
|
|
longpackage=$package-vulkan-sdk-{pkgver}.tar.?z*
|
|
packagedir=${{longpackage%.tar.?z*}}
|
|
tar -xf $longpackage
|
|
pushd $packagedir
|
|
mkdir build
|
|
cd build
|
|
case $package in
|
|
SPIRV-Tools )
|
|
cmake -D CMAKE_INSTALL_PREFIX=/usr \\
|
|
-D CMAKE_BUILD_TYPE=Release \\
|
|
-D SPIRV_WERROR=OFF \\
|
|
-D BUILD_SHARED_LIBS=ON \\
|
|
-D SPIRV_TOOLS_BUILD_STATIC=OFF \\
|
|
-D SPIRV-Headers_SOURCE_DIR=/usr \\
|
|
-G Ninja ..
|
|
;;
|
|
glslang )
|
|
cmake -D CMAKE_INSTALL_PREFIX=/usr \\
|
|
-D CMAKE_BUILD_TYPE=Release \\
|
|
-D ALLOW_EXTERNAL_SPIRV_TOOLS=ON \\
|
|
-D BUILD_SHARED_LIBS=ON \\
|
|
-D GLSLANG_TESTS=OFF \\
|
|
-G Ninja ..
|
|
;;
|
|
* )
|
|
cmake -D CMAKE_INSTALL_PREFIX=/usr \\
|
|
-D CMAKE_BUILD_TYPE=Release \\
|
|
-D CMAKE_SKIP_INSTALL_RPATH=ON \\
|
|
-G Ninja ..
|
|
;;
|
|
esac
|
|
ninja
|
|
DESTDIR={destdir} ninja install
|
|
|
|
# ---- license copying (best-effort) ----
|
|
licensedir={destdir}/usr/share/licenses/$package
|
|
mkdir -p $licensedir
|
|
find .. -type f \\( \\
|
|
-iname COPYING -o \\
|
|
-iname COPYRIGHT -o \\
|
|
-iname NOTICE -o \\
|
|
-iname LICENSE -o \\
|
|
-iname LICENCE \\
|
|
\\) -exec cp -pv {{}} $licensedir \\; || true
|
|
find .. -type d -iname LICENSES | while read -r licdir; do
|
|
cp -pvra $licdir/* $licensedir/ || true
|
|
done || true
|
|
|
|
popd
|
|
rm -rf $packagedir
|
|
done
|
|
EOF""",
|
|
|
|
# 32-bit build
|
|
f"""cd {builddir}/vulkan-sdk && bash -e <<'EOF'
|
|
for package in {{Vulkan-{{Loader,Utility-Libraries,Tools}},SPIRV-Tools,glslang}}
|
|
do
|
|
longpackage=$package-vulkan-sdk-{pkgver}.tar.?z*
|
|
packagedir=${{longpackage%.tar.?z*}}
|
|
tar -xf $longpackage
|
|
pushd $packagedir
|
|
mkdir build
|
|
cd build
|
|
case $package in
|
|
SPIRV-Tools )
|
|
CC="gcc -m32" CXX="g++ -m32" \\
|
|
PKG_CONFIG_PATH=/usr/lib32/pkgconfig \\
|
|
cmake -D CMAKE_INSTALL_PREFIX=/usr \\
|
|
-D CMAKE_INSTALL_LIBDIR=lib32 \\
|
|
-D CMAKE_BUILD_TYPE=Release \\
|
|
-D SPIRV_WERROR=OFF \\
|
|
-D BUILD_SHARED_LIBS=ON \\
|
|
-D SPIRV_TOOLS_BUILD_STATIC=OFF \\
|
|
-D SPIRV-Headers_SOURCE_DIR=/usr \\
|
|
-G Ninja ..
|
|
;;
|
|
glslang )
|
|
CC="gcc -m32" CXX="g++ -m32" \\
|
|
PKG_CONFIG_PATH=/usr/lib32/pkgconfig \\
|
|
cmake -D CMAKE_INSTALL_PREFIX=/usr \\
|
|
-D CMAKE_INSTALL_LIBDIR=lib32 \\
|
|
-D CMAKE_BUILD_TYPE=Release \\
|
|
-D ALLOW_EXTERNAL_SPIRV_TOOLS=ON \\
|
|
-D BUILD_SHARED_LIBS=ON \\
|
|
-D GLSLANG_TESTS=OFF \\
|
|
-G Ninja ..
|
|
;;
|
|
* )
|
|
ASFLAGS+=" --32" CFLAGS+=" -m32" \\
|
|
CXXFLAGS+=" -m32" \\
|
|
PKG_CONFIG_PATH=/usr/lib32/pkgconfig \\
|
|
cmake -D CMAKE_INSTALL_PREFIX=/usr \\
|
|
-D CMAKE_INSTALL_LIBDIR=lib32 \\
|
|
-D CMAKE_BUILD_TYPE=Release \\
|
|
-D CMAKE_SKIP_INSTALL_RPATH=ON \\
|
|
-G Ninja ..
|
|
;;
|
|
esac
|
|
ninja
|
|
DESTDIR=$PWD/tmpdestdir ninja install
|
|
if [ $package != "Vulkan-Tools" ]; then
|
|
cp -Rv tmpdestdir/usr/lib32/* {destdir}/usr/lib32
|
|
else
|
|
for bin in tmpdestdir/usr/bin/*; do
|
|
install -vDm755 $bin {destdir}/usr/bin/$(basename $bin)-m32
|
|
done
|
|
fi
|
|
rm -rf tmpdestdir
|
|
/sbin/ldconfig
|
|
popd
|
|
rm -rf $packagedir
|
|
done
|
|
EOF""",
|
|
|
|
# Make tarball + manifests
|
|
f"mkdir -p {outputdir} && cd {destdir} && tar --transform 's|^\\.||' -I zstd -cf {outputdir}/{pkgname}-{pkgver}.tar.zst .",
|
|
f"mkdir -p {manifestdir} && tar -tf {outputdir}/{pkgname}-{pkgver}.tar.zst | grep -v '/$' > {manifestdir}/{pkgname}.txt",
|
|
|
|
# Cleanup
|
|
f"rm -rf {builddir} {fembuilddir}"
|
|
]
|
|
|
|
triggers = [
|
|
f"cd /tmp && ldconfig"
|
|
] |