summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: c5f57178a73a4d066f58dd646ba404e062ac9b2e (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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# Maintainer:  Vitalii Kuzhdin <vitaliikuzhdin@gmail.com>

pkgbase="ftxui"
pkgname=(
  "${pkgbase}"
  "${pkgbase}-docs"
  "${pkgbase}-examples"
)
pkgver=7.0.3
pkgrel=1
pkgdesc="A C++ Functional Terminal User Interface"
arch=(
  'i686'
  'x86_64'
)
url="https://github.com/ArthurSonzogni/FTXUI"
license=(
  'MIT'
)
makedepends=(
  # 'benchmark>=1.8.2'
  'cmake>=3.12'
  'doxygen'
  'graphviz'
  # 'gtest>=1.10'
)
_pkgsrc="${url##*/}-${pkgver}"
source=(
  "${url}/archive/refs/tags/v${pkgver}/${_pkgsrc}.tar.gz"
  "${pkgbase}_build_docs_target_all.patch"
  "${pkgbase}_make_examples_installable.patch"
  "https://github.com/jothepro/doxygen-awesome-css/archive/refs/tags/v2.3.4/doxygen-awesome-css-2.3.4.tar.gz"
)
b2sums=('d723a1df72338766d307eed91f3eb22dd3fa3dff6a90612d46c542f857cebeedad57da835891f5bbdc6c1b31681958d04150f1e6e7fed659bb66a036cf06bf6d'
        'bf9e78066ff1721f857350f9dcce6fa8ac17cfc2bb726afc6c7f75cc372832f7212cc4ad7eccefe6aa9eee72fff46958c63f485452f45dcd7b1b77b1c2b408fe'
        'c7e9e43b5d9b7f3ad825a150afa3976743f4d22fb0a443da8ed636b2323dc70137ac471ec24127dfbfa1556646967687cb9890e893c9aa3315ff7c365715f596'
        'eab70c020aa2e7254708e1938701bbc104a273b475f55f769e25aed02e0b0c8da50d62a659e384403a77ef27243cd6cd38360744e398596824f5e4f51ea6f569')

prepare() {
  cd "${srcdir}/${_pkgsrc}"
  patch -Np1 -i "${srcdir}/${pkgbase}_build_docs_target_all.patch"
  patch -Np1 -i "${srcdir}/${pkgbase}_make_examples_installable.patch"
}

build() {
  # export CXXFLAGS+=" -ffat-lto-objects"
  local cmake_options=(
    -B "${_pkgsrc}/build"
    -S "${_pkgsrc}"
    -G 'Unix Makefiles'
    -W no-author
    -D BUILD_SHARED_LIBS:BOOL=ON
    -D CMAKE_BUILD_TYPE:STRING='None'
    -D CMAKE_INSTALL_PREFIX:PATH='/usr'
    -D FTXUI_ENABLE_INSTALL:BOOL=ON
    -D FTXUI_BUILD_EXAMPLES:BOOL=ON
    -D FTXUI_BUILD_TESTS:BOOL=OFF
    -D FTXUI_BUILD_DOCS:BOOL=ON
    -D FETCHCONTENT_FULLY_DISCONNECTED:BOOL=ON
    -D FETCHCONTENT_SOURCE_DIR_DOXYGEN-AWESOME-CSS:PATH="${srcdir}/doxygen-awesome-css-2.3.4"
  )
  
  cd "${srcdir}"
  cmake "${cmake_options[@]}"
  cmake --build "${cmake_options[1]}"
}

# check() {
#   local ctest_exclude_regex=""
#   local ctest_options=(
#     --test-dir "${_pkgsrc}/build"
#     --output-on-failure
#     --parallel "$(nproc)"
#     --exclude-regex "${ctest_exclude_regex}"
#   )

#   cd "${srcdir}"
#   ctest "${ctest_options[@]}"
# }

package_ftxui() {
  depends=(
    'glibc'
    'libgcc'
    'libstdc++'
  )

  cd "${srcdir}"
  DESTDIR="${pkgdir}" cmake --install "${_pkgsrc}/build"

  cd "${_pkgsrc}"
  install -vDm644 "CHANGELOG.md" "README.md" -t "${pkgdir}/usr/share/doc/${pkgbase}"
  install -vDm644 "LICENSE" -t "${pkgdir}/usr/share/licenses/${pkgbase}"

  # examples
  cd "${pkgdir}/usr"
  rm -rf "bin"

  # docs
  cd "share/doc/${pkgbase}"
  rm -rf "html" "xml"
}

package_ftxui-docs() {
  pkgdesc+=" (documentation)"
  arch=(
    'any'
  )

  cd "${srcdir}"
  DESTDIR="${pkgdir}" cmake --install "${_pkgsrc}/build/doc"
}

package_ftxui-examples() {
  pkgdesc+=" (examples)"
  depends=(
    "${pkgbase}>=${pkgver}-${pkgrel}"
    'glibc'
    'libgcc'
    'libstdc++'
  )

  cd "${srcdir}"
  DESTDIR="${pkgdir}" cmake --install "${_pkgsrc}/build/examples"
}