summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 0604a58fa9b2850c111899ce7e4b15720f723114 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# Maintainer: Chocobo1 <chocobo1 AT archlinux DOT net>

pkgname=ncurses-git
pkgver=6.5.20240601.r0.ga09f7429
pkgrel=1
pkgdesc="Screen handling and optimization package"
arch=('i686' 'x86_64')
url="https://invisible-island.net/ncurses/ncurses.html"
license=('MIT')
depends=('gcc-libs')
makedepends=('git')
provides=("ncurses=$pkgver" 'libncurses++w.so' 'libformw.so' 'libmenuw.so' 'libpanelw.so' 'libncursesw.so')
conflicts=('ncurses')
options=('staticlibs')
source=("git+https://github.com/ThomasDickey/ncurses-snapshots.git")
sha256sums=('SKIP')


pkgver() {
  cd "ncurses-snapshots"

  git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g;s/_/./g'
}

build() {
  cd "ncurses-snapshots"

  CFLAGS="$CFLAGS -ffat-lto-objects" \
  CXXFLAGS="$CXXFLAGS -ffat-lto-objects" \
  ./configure \
    --prefix="/usr" \
    --mandir="/usr/share/man" \
    --enable-pc-files \
    --enable-widec \
    --with-cxx-shared \
    --with-pkg-config-libdir="/usr/lib/pkgconfig" \
    --with-shared \
    --with-versioned-syms \
    --with-xterm-kbs=del \
    --without-ada \
    --without-debug
  make
}

package() {
  cd "ncurses-snapshots"

  make DESTDIR="$pkgdir" install
  install -Dm644 "COPYING" -t "$pkgdir/usr/share/licenses/ncurses"

  # fool packages looking to link to non-wide-character ncurses libraries
  for lib in ncurses ncurses++ form panel menu; do
    printf "INPUT(-l%sw)\n" "${lib}" > "$pkgdir/usr/lib/lib${lib}.so"
    ln -s ${lib}w.pc "$pkgdir/usr/lib/pkgconfig/${lib}.pc"
  done

  # some packages look for -lcurses during build
  printf 'INPUT(-lncursesw)\n' > "$pkgdir/usr/lib/libcursesw.so"
  ln -s libncurses.so "$pkgdir/usr/lib/libcurses.so"

  # tic and ticinfo functionality is built in by default
  # make sure that anything linking against it links against libncursesw.so instead
  for lib in tic tinfo; do
    printf "INPUT(libncursesw.so.%s)\n" "${pkgver:0:1}" > "$pkgdir/usr/lib/lib${lib}.so"
    ln -s libncursesw.so.${pkgver:0:1} "$pkgdir/usr/lib/lib${lib}.so.${pkgver:0:1}"
    ln -s ncursesw.pc "$pkgdir/usr/lib/pkgconfig/${lib}.pc"
  done
}