subrepo: subdir: "foot" merged: "6108099" upstream: origin: "https://aur.archlinux.org/foot.git" branch: "master" commit: "6108099" git-subrepo: version: "0.4.3" origin: "???" commit: "???"
		
			
				
	
	
		
			107 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
# Maintainer: Daniel Eklöf <daniel at ekloef dot se>
 | 
						||
pkgdesc="Wayland terminal emulator - fast, lightweight and minimalistic"
 | 
						||
pkgname=foot
 | 
						||
pkgver=1.8.2  # Don’t forget to update CHANGELOG.md
 | 
						||
pkgrel=1
 | 
						||
arch=('x86_64' 'aarch64')
 | 
						||
url=https://codeberg.org/dnkl/foot
 | 
						||
license=(mit)
 | 
						||
changelog=CHANGELOG.md
 | 
						||
depends=('libxkbcommon' 'wayland' 'pixman' 'fontconfig' 'libutf8proc' 'fcft' 'foot-terminfo')
 | 
						||
makedepends=('meson' 'ninja' 'scdoc' 'python' 'ncurses' 'wayland-protocols' 'tllist')  # ‘llvm’, for PGO with clang
 | 
						||
checkdepends=('check')
 | 
						||
optdepends=('libnotify: desktop notifications'
 | 
						||
            'xdg-utils: URI launching'
 | 
						||
            'bash-completion: bash completions for foot itself')
 | 
						||
source=(${pkgname}-${pkgver}.tar.gz::${url}/archive/${pkgver}.tar.gz)
 | 
						||
sha256sums=('50cf5b9f3cc1ebaafa62255eea22395e8267cce21e119bc6f7ecacf11f15dada')
 | 
						||
 | 
						||
build() {
 | 
						||
  cd foot
 | 
						||
 | 
						||
  local compiler=other
 | 
						||
  local do_pgo=no
 | 
						||
 | 
						||
  # makepkg uses -O2 by default, but we *really* want -O3
 | 
						||
  CFLAGS+=" -O3"
 | 
						||
 | 
						||
  # Figure out which compiler we're using, and whether or not to do PGO
 | 
						||
  case $(${CC-cc} --version) in
 | 
						||
    *GCC*)
 | 
						||
      compiler=gcc
 | 
						||
      do_pgo=yes
 | 
						||
      ;;
 | 
						||
 | 
						||
    *clang*)
 | 
						||
      compiler=clang
 | 
						||
 | 
						||
      # We need llvm to be able to manage the profiling data
 | 
						||
      if command -v llvm-profdata > /dev/null; then
 | 
						||
        do_pgo=yes
 | 
						||
 | 
						||
        # Meson adds -fprofile-correction, which Clang doesn't
 | 
						||
        # understand
 | 
						||
        CFLAGS+=" -Wno-ignored-optimization-argument"
 | 
						||
      fi
 | 
						||
      ;;
 | 
						||
  esac
 | 
						||
 | 
						||
  meson \
 | 
						||
    --prefix=/usr \
 | 
						||
    --buildtype=release \
 | 
						||
    --wrap-mode=nodownload \
 | 
						||
    -Db_lto=true \
 | 
						||
    -Dterminfo-install-location=disabled \
 | 
						||
    . build
 | 
						||
 | 
						||
  if [[ ${do_pgo} == yes ]]; then
 | 
						||
    find -name "*.gcda" -delete
 | 
						||
    meson configure -Db_pgo=generate build
 | 
						||
    ninja -C build
 | 
						||
 | 
						||
    local script_options="--scroll --scroll-region --colors-regular --colors-bright --colors-256 --colors-rgb --attr-bold --attr-italic --attr-underline --sixel"
 | 
						||
 | 
						||
    local tmp_file=$(mktemp)
 | 
						||
 | 
						||
    if [[ -v WAYLAND_DISPLAY ]]; then
 | 
						||
      # TODO: remove the sleep in the next release (with SIGWINCH
 | 
						||
      # fixes in generate-alt-random-writes.py)
 | 
						||
      build/footclient --version
 | 
						||
      build/foot \
 | 
						||
        --config /dev/null \
 | 
						||
        --term=xterm \
 | 
						||
        sh -c "sleep 2 && ./scripts/generate-alt-random-writes.py ${script_options} ${tmp_file} && cat ${tmp_file}"
 | 
						||
    else
 | 
						||
      build/footclient --version
 | 
						||
      build/foot --version
 | 
						||
      ./scripts/generate-alt-random-writes.py \
 | 
						||
        --rows=67 \
 | 
						||
        --cols=135 \
 | 
						||
        ${script_options} \
 | 
						||
        ${tmp_file}
 | 
						||
      build/pgo ${tmp_file} ${tmp_file} ${tmp_file}
 | 
						||
    fi
 | 
						||
 | 
						||
    rm "${tmp_file}"
 | 
						||
 | 
						||
    if [[ ${compiler} == clang ]]; then
 | 
						||
      llvm-profdata merge default_*profraw --output=build/default.profdata
 | 
						||
    fi
 | 
						||
 | 
						||
    meson configure -Db_pgo=use build
 | 
						||
  fi
 | 
						||
 | 
						||
  ninja -C build
 | 
						||
}
 | 
						||
 | 
						||
check() {
 | 
						||
  cd foot
 | 
						||
  ninja -C build test
 | 
						||
}
 | 
						||
 | 
						||
package() {
 | 
						||
  cd foot
 | 
						||
  DESTDIR="${pkgdir}/" ninja -C build install
 | 
						||
  install -Dm 644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
 | 
						||
}
 |