0
0
mirror of https://github.com/termux/termux-packages.git synced 2024-11-23 14:56:16 +00:00
termux-packages/x11-packages/kitty/build.sh
Termux Github Actions f7d9db6313 bump(x11/kitty): 0.37.0
This commit has been automatically submitted by Github Actions.
2024-11-02 18:18:11 +00:00

132 lines
5.6 KiB
Bash

TERMUX_PKG_HOMEPAGE=https://sw.kovidgoyal.net/kitty/
TERMUX_PKG_DESCRIPTION="Cross-platform, fast, feature-rich, GPU based terminal"
TERMUX_PKG_LICENSE="GPL-3.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION="0.37.0"
TERMUX_PKG_SRCURL=https://github.com/kovidgoyal/kitty/releases/download/v${TERMUX_PKG_VERSION}/kitty-${TERMUX_PKG_VERSION}.tar.xz
TERMUX_PKG_SHA256=efbf933dfe930abd7c88ad0860997633c9c23b46c5000c5872ae3859dfbc50ff
# fontconfig is dlopen(3)ed:
TERMUX_PKG_DEPENDS="dbus, fontconfig, harfbuzz, libpng, librsync, libx11, libxkbcommon, littlecms, ncurses, opengl, openssl, python, xxhash, zlib"
TERMUX_PKG_BUILD_DEPENDS="libxcursor, libxi, libxinerama, libxrandr, simde, xorgproto"
TERMUX_PKG_PYTHON_COMMON_DEPS="wheel"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_HOSTBUILD=true
TERMUX_PKG_RM_AFTER_INSTALL="
share/doc/kitty/html
share/terminfo/x/xterm-kitty
"
TERMUX_PKG_AUTO_UPDATE=true
# shellcheck disable=SC2164
termux_step_host_build() {
if [[ "${TERMUX_ON_DEVICE_BUILD}" == "true" ]]; then return; fi
# https://github.com/kovidgoyal/kitty/issues/6354
termux_setup_golang
termux_setup_ninja
# XXX: termux_setup_meson is not expected to be called in host build
AR=;CC=;CFLAGS=;CPPFLAGS=;CXX=;CXXFLAGS=;LD=;LDFLAGS=;PKG_CONFIG=;STRIP=
termux_setup_meson
unset AR CC CFLAGS CPPFLAGS CXX CXXFLAGS LD LDFLAGS PKG_CONFIG STRIP
local -A ver=(
[libx11]="$(. "${TERMUX_SCRIPTDIR}/packages/libx11/build.sh"; echo "${TERMUX_PKG_VERSION}")"
[libxcb]="$(. "${TERMUX_SCRIPTDIR}/packages/libxcb/build.sh"; echo "${TERMUX_PKG_VERSION}")"
[xcb_proto]="$(. "${TERMUX_SCRIPTDIR}/packages/xcb-proto/build.sh"; echo "${TERMUX_PKG_VERSION}")"
[libxkbcommon]="$(. "${TERMUX_SCRIPTDIR}/x11-packages/libxkbcommon/build.sh"; echo "${TERMUX_PKG_VERSION}")"
)
local -A srcurl=(
[libx11]="$(. "${TERMUX_SCRIPTDIR}/packages/libx11/build.sh"; echo "${TERMUX_PKG_SRCURL}")"
[libxcb]="$(. "${TERMUX_SCRIPTDIR}/packages/libxcb/build.sh"; echo "${TERMUX_PKG_SRCURL}")"
[xcb_proto]="$(. "${TERMUX_SCRIPTDIR}/packages/xcb-proto/build.sh"; echo "${TERMUX_PKG_SRCURL}")"
[libxkbcommon]="$(. "${TERMUX_SCRIPTDIR}/x11-packages/libxkbcommon/build.sh"; echo "${TERMUX_PKG_SRCURL}")"
)
local -A sha256=(
[libx11]="$(. "${TERMUX_SCRIPTDIR}/packages/libx11/build.sh"; echo "${TERMUX_PKG_SHA256}")"
[libxcb]="$(. "${TERMUX_SCRIPTDIR}/packages/libxcb/build.sh"; echo "${TERMUX_PKG_SHA256}")"
[xcb_proto]="$(. "${TERMUX_SCRIPTDIR}/packages/xcb-proto/build.sh"; echo "${TERMUX_PKG_SHA256}")"
[libxkbcommon]="$(. "${TERMUX_SCRIPTDIR}/x11-packages/libxkbcommon/build.sh"; echo "${TERMUX_PKG_SHA256}")"
)
termux_download "${srcurl[libx11]}" "${TERMUX_PKG_CACHEDIR}/$(basename "${srcurl[libx11]}")" "${sha256[libx11]}"
termux_download "${srcurl[libxcb]}" "${TERMUX_PKG_CACHEDIR}/$(basename "${srcurl[libxcb]}")" "${sha256[libxcb]}"
termux_download "${srcurl[xcb_proto]}" "${TERMUX_PKG_CACHEDIR}/$(basename "${srcurl[xcb_proto]}")" "${sha256[xcb_proto]}"
termux_download "${srcurl[libxkbcommon]}" "${TERMUX_PKG_CACHEDIR}/$(basename "${srcurl[libxkbcommon]}")" "${sha256[libxkbcommon]}"
tar -xf "${TERMUX_PKG_CACHEDIR}/$(basename "${srcurl[libx11]}")"
tar -xf "${TERMUX_PKG_CACHEDIR}/$(basename "${srcurl[libxcb]}")"
tar -xf "${TERMUX_PKG_CACHEDIR}/$(basename "${srcurl[xcb_proto]}")"
tar -xf "${TERMUX_PKG_CACHEDIR}/$(basename "${srcurl[libxkbcommon]}")"
export PKG_CONFIG_PATH="${TERMUX_PKG_HOSTBUILD_DIR}/lib/pkgconfig"
PKG_CONFIG_PATH+=":${TERMUX_PKG_HOSTBUILD_DIR}/share/pkgconfig"
PKG_CONFIG_PATH+=":${TERMUX_PKG_HOSTBUILD_DIR}/lib/x86_64-linux-gnu/pkgconfig"
pushd "xcb-proto-${ver[xcb_proto]}" || termux_error_exit "Failed to hostbuild 'xcb_proto'"
./configure --prefix "${TERMUX_PKG_HOSTBUILD_DIR}"
make -j "${TERMUX_PKG_MAKE_PROCESSES}" install
popd
pushd "libxcb-${ver[libxcb]}" || termux_error_exit "Failed to hostbuild 'libxcb'"
./configure --prefix "${TERMUX_PKG_HOSTBUILD_DIR}"
make -j "${TERMUX_PKG_MAKE_PROCESSES}" install
popd
pushd "libxkbcommon-xkbcommon-${ver[libxkbcommon]}" || termux_error_exit "Failed to hostbuild 'libxkbcommon'"
${TERMUX_MESON} \
"${TERMUX_PKG_HOSTBUILD_DIR}/build-xkbcommon" . \
--prefix "${TERMUX_PKG_HOSTBUILD_DIR}" \
-Denable-bash-completion=false \
-Denable-wayland=false \
-Denable-docs=false
ninja \
-C "${TERMUX_PKG_HOSTBUILD_DIR}/build-xkbcommon" \
-j "${TERMUX_PKG_MAKE_PROCESSES}" install
popd
pushd "libX11-${ver[libx11]}" || termux_error_exit "Failed to hostbuild 'libx11'"
./configure --prefix "${TERMUX_PKG_HOSTBUILD_DIR}"
make -j "${TERMUX_PKG_MAKE_PROCESSES}" install
popd
pushd "${TERMUX_PKG_SRCDIR}" || termux_error_exit "Failed to run './dev.sh build'"
echo "./dev.sh build" && ./dev.sh build
python3 setup.py clean --clean-for-cross-compile --verbose
popd
}
termux_step_pre_configure() {
mkdir -p "$TERMUX_PKG_SRCDIR"/fonts
termux_download \
"https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/NerdFontsSymbolsOnly/SymbolsNerdFontMono-Regular.ttf" \
"$TERMUX_PKG_SRCDIR/fonts/SymbolsNerdFontMono-Regular.ttf" \
SKIP_CHECKSUM
termux_setup_golang
CFLAGS+=" $CPPFLAGS"
sed 's|@TERMUX_PREFIX@|'"${TERMUX_PREFIX}"'|g' \
"${TERMUX_PKG_BUILDER_DIR}/posix-shm.c.in" > kitty/posix-shm.c
cp "${TERMUX_PKG_BUILDER_DIR}/reallocarray.c" glfw/
}
termux_step_make() {
if [[ "${TERMUX_ON_DEVICE_BUILD}" == "true" ]]; then
python3 setup.py linux-package \
--ignore-compiler-warnings \
--verbose
return
fi
python3 setup.py linux-package \
--ignore-compiler-warnings \
--skip-code-generation \
--verbose
# Needs a new host build each time it's built:
rm -Rf "$TERMUX_PKG_HOSTBUILD_DIR"
}
termux_step_make_install() {
cp -rT linux-package "$TERMUX_PREFIX"
}