summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: ab8e2d45fc11565ca2795653603d29c9c0d99989 (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
# Maintainer: dreieck
_pkgname=libusbpp
pkgname="${_pkgname}-hg"
pkgver=date20170116_r24.8797ece29e62
pkgrel=2
pkgdesc="A simple C++ wrapper around libusb providing some additional convenience functions."
arch=('i686' 'x86_64')
url="http://bitbucket.org/stativ/libusbpp"
license=('GPL3')
depends=(
  'libusb'
)
makedepends=(
  'cmake'
  'mercurial'
)
provides=(
  "${_pkgname}"
  "testhid-hg"
  "testhid"
)
conflicts=(
  "${_pkgname}"
  "testhid-hg"
  "testhid"
)
source=(
  "${_pkgname}::hg+http://bitbucket.org/stativ/libusbpp"
  "libusbpp.pc.in"
)
sha256sums=(
  'SKIP'
  '47167c82b3fdbbc942465d7f23d07ddf88df34411ad0c245ac61f94735a178f4'
)

pkgver() {
  cd "${srcdir}/${_pkgname}"

  # _ver='latest'
  _date="$(hg log -l 1 -b . -T '{date|shortdate}' | tr -d '-')"
  _rev="$(hg identify -n)"
  _hash="$(hg identify -i)"

  # if [ -z "${_ver}" ]; then
  #   printf "%s %s." "Error in 'pkgver()': Could not determine" "version" > /dev/stderr
  #   return 11
  # fi
  if [ -z "${_date}" ]; then
    printf "%s %s." "Error in 'pkgver()': Could not determine" "latest commit date" > /dev/stderr
    return 13
  fi
  if [ -z "${_rev}" ]; then
    printf "%s %s." "Error in 'pkgver()': Could not determine" "commit count" > /dev/stderr
    return 12
  fi
  if [ -z "${_hash}" ]; then
    printf "%s %s." "Error in 'pkgver()': Could not determine" "global revision ID" > /dev/stderr
    return 14
  fi

  printf "date%s_r%s.%s" "${_date}" "${_rev}" "${_hash}"
}

prepare() {
  cd "${srcdir}/${_pkgname}"

  msg2 "Creating mercurial commit log ..."
  hg log -b . --style changelog > "ChangeLog-mercurial.txt"
}

build() {
  cd "${srcdir}/${_pkgname}"

  msg2 "Running 'cmake' ..."
  cmake . \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_COLOR_MAKEFILE=ON \
    -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
    -DCMAKE_VERBOSE_MAKEFILE=ON \
    -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
    -DCMAKE_C_FLAGS="${CFLAGS}" \
    -DCMAKE_EXE_LINKER_FLAGS="${LDFLAGS}" \
    -DCMAKE_MODULE_LINKER_FLAGS="${LDFLAGS}" \
    -DCMAKE_SHARED_LINKER_FLAGS="${LDFLAGS}"

  msg2 "Running 'make' ..."
  make

  msg2 "Converting to a shared '.so'-library ..."
  gcc ${CFLAGS} ${LDFLAGS} $(pkg-config --cflags --libs libusb-1.0) -shared -o "libusbpp.so" "src/libusbpp.a"

  msg2 "Generating pkg-config file ..."
  sed 's|@VERSION@|'"${pkgver}"'|g' "${srcdir}/libusbpp.pc.in" > 'libusbpp.pc'
}

package() {
  cd "${srcdir}/${_pkgname}"

  # Installation of main software.
  msg2 "Running 'make install' ..."
  make DESTDIR="${pkgdir}/" install

  msg2 "Remiving '.a'-file, Installing shared '.so'-lib ..."
  rm -v "${pkgdir}/usr/lib/libusbpp.a"
  install -Dvm644 "libusbpp.so" "${pkgdir}/usr/lib/libusbpp.so"

  msg2 "Installing pkg-config file ..."
  install -Dvm644 libusbpp.pc "${pkgdir}/usr/lib/pkgconfig/libusbpp.pc"

  # Install documentation
  msg2 "Inatalling documentation ..."
  for _docfile in ChangeLog-mercurial.txt README; do
    install -Dvm644 "${_docfile}" "${pkgdir}/usr/share/doc/${_pkgname}/${_docfile}"
  done

  # Install license file.
  msg2 "Installing license file ..."
  install -Dvm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING.txt"
  install -Dvm644 COPYING.LESSER "${pkgdir}/usr/share/licenses/${pkgname}/COPYING.LESSER.txt"
}