# Copyright 2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 inherit cmake flag-o-matic git-r3 DESCRIPTION="Git status for Bash and Zsh prompt" HOMEPAGE="https://github.com/romkatv/gitstatus" SRC_URI="https://github.com/romkatv/gitstatus/archive/v${PV}.tar.gz -> ${P}.tar.gz" # LIBGIT2_TAG depends on pkgver. They must be updated together. See libgit2_version in: # https://raw.githubusercontent.com/romkatv/gitstatus/v${pkgver}/build.info LIBGIT2_TAG="tag-5860a42d19bcd226cb6eff2dcbfcbf155d570c73" EGIT_REPO_URI="https://github.com/romkatv/libgit2" EGIT_COMMIT="${LIBGIT2_TAG}" EGIT_CHECKOUT_DIR="${WORKDIR}/${P}/deps" BUILD_DIR="${EGIT_CHECKOUT_DIR}_BUILD" CMAKE_USE_DIR="${EGIT_CHECKOUT_DIR}" IUSE="zsh-completion" LICENSE="GPL-3" SLOT="0" KEYWORDS="~amd64 ~x86" DEPEND="zsh-completion? ( app-shells/zsh )" RDEPEND="${DEPEND}" src_unpack() { if [[ -n ${A} ]]; then unpack ${A} fi git-r3_fetch git-r3_checkout } src_configure() { mycmakeargs=( -DCMAKE_BUILD_TYPE=Release -DZERO_NSEC=ON -DTHREADSAFE=ON -DUSE_BUNDLED_ZLIB=ON -DREGEX_BACKEND=builtin -DUSE_HTTP_PARSER=builtin -DUSE_SSH=OFF -DUSE_HTTPS=OFF -DBUILD_CLAR=OFF -DUSE_GSSAPI=OFF -DUSE_NTLMCLIENT=OFF -DBUILD_SHARED_LIBS=OFF ) cmake_src_configure } src_compile() { append-cflags $(test-flags-CC -fno-plt) cmake_src_compile local cxxflags=( "-I${EGIT_CHECKOUT_DIR}/include" -DGITSTATUS_ZERO_NSEC -D_GNU_SOURCE ) local ldflags=( "-L${BUILD_DIR}" -static ) append-cxxflags "${cxxflags[@]}" append-ldflags "${ldflags[@]}" emake all GITSTATUS_DAEMON= GITSTATUS_CACHE_DIR=${S}/usrbin ./install if use zsh-completion; then for file in *.zsh install; do zsh -fc "emulate zsh -o no_aliases && zcompile -R -- $file.zwc $file" || die "Couldn't zcompile" done fi } src_install() { insinto "/usr/share/${PN}" exeinto "${_}" doins gitstatus.*.sh *.info if use zsh-completion; then doins gitstatus.*.zsh{,.zwc} fi doexe install exeinto "/usr/libexec/${PN}" doexe usrbin/gitstatusd dosym "../../../libexec/${PN}/gitstatusd" \ "/usr/share/${PN}/usrbin/gitstatusd" dodoc {README,docs/listdir}.md } pkg_postinst() { elog "The easiest way to take advantage of gitstatus from Zsh is to use a theme" elog "that's already integrated with it. For example: app-shells/zsh-theme-powerlevel10k" elog "The easiest way to take advantage of gitstatus from Bash is via gitstatus.prompt.sh." elog "Follow this guide: https://github.com/romkatv/gitstatus#using-from-bash" }