summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 80b89c1ae90183c77ecc41f517bbddb786af6524 (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
# Maintainer: Butui Hu <hot123tea123@gmail.com>

_pkgname=decord
pkgname=('python-decord' 'python-decord-cuda')
pkgver=0.6.0
pkgrel=9
pkgdesc="An efficient video loader for deep learning with smart shuffling that's super easy to digest"
arch=('x86_64')
url='https://github.com/dmlc/decord'
license=('Apache-2.0')
depends=(
  ffmpeg6.1
  glibc
  gcc-libs
  python-numpy
)
makedepends=(
  chrpath
  cmake
  cuda
  cython
  git
  nvidia-utils
  python-build
  python-installer
  python-setuptools
  python-wheel
  chrpath
)
source=("${_pkgname}-${pkgver}::git+https://github.com/dmlc/decord.git#tag=v${pkgver}"
        "0002-fix-building-with-ffmpeg.patch"
)
sha512sums=('f91944e7931f18576cdedd69edc9f651189db2dbc63e7f211cb894cea71bc9df0f4f83ef27f2449da4c9cf13517c310ed0ef6bdd01d01f48258e0f7bf3efa027'
            'b5d01e3666ce961276100eeea779333ab440a169f0de23c4382e88436a362a1c732eb5e99137701f689cbbde13a14fec9118195e22a58253c3a8bc595aab54af')

prepare() {
  cd "${_pkgname}-${pkgver}"
  git submodule update --init --recursive
  # fix building with ffmpeg 6
  patch -p1 -i ${srcdir}/0002-fix-building-with-ffmpeg.patch
  cp -a "${srcdir}/${_pkgname}-${pkgver}" "${srcdir}/${_pkgname}-cuda-${pkgver}"
}

build() {
  # building without CUDA
  cmake \
    -B "${srcdir}/${_pkgname}-${pkgver}/build" \
    -DCMAKE_BUILD_TYPE=None \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_SKIP_INSTALL_RPATH=ON \
    -DFFMPEG_INCLUDE_DIR=/usr/include/ffmpeg6.1 \
    -DFFMPEG_LIBRARIES="/usr/lib/ffmpeg6.1/libavformat.so;/usr/lib/ffmpeg6.1/libavfilter.so;/usr/lib/ffmpeg6.1/libavcodec.so;/usr/lib/ffmpeg6.1/libavutil.so;/usr/lib/ffmpeg6.1/libavdevice.so;/usr/lib/ffmpeg6.1/libswresample.so" \
    -DUSE_CUDA=OFF \
    -S "${srcdir}/${_pkgname}-${pkgver}"
  make -C "${srcdir}/${_pkgname}-${pkgver}/build" VERBOSE=1
  cd "${srcdir}/${_pkgname}-${pkgver}/python"
  python -m build --wheel --no-isolation

  # building with CUDA
  cmake \
    -B "${srcdir}/${_pkgname}-cuda-${pkgver}/build" \
    -DCMAKE_BUILD_TYPE=None \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_SKIP_INSTALL_RPATH=ON \
    -DFFMPEG_INCLUDE_DIR=/usr/include/ffmpeg6.1 \
    -DFFMPEG_LIBRARIES="/usr/lib/ffmpeg6.1/libavformat.so;/usr/lib/ffmpeg6.1/libavfilter.so;/usr/lib/ffmpeg6.1/libavcodec.so;/usr/lib/ffmpeg6.1/libavutil.so;/usr/lib/ffmpeg6.1/libavdevice.so;/usr/lib/ffmpeg6.1/libswresample.so" \
    -DUSE_CUDA=ON \
    -S "${srcdir}/${_pkgname}-cuda-${pkgver}"
  make -C "${srcdir}/${_pkgname}-cuda-${pkgver}/build" VERBOSE=1
  cd "${srcdir}/${_pkgname}-cuda-${pkgver}/python"
  python -m build --wheel --no-isolation
}

package_python-decord() {
  cd "${srcdir}/${_pkgname}-${pkgver}/python"
  python -m installer --destdir="${pkgdir}" dist/*.whl
}

package_python-decord-cuda() {
  pkgdesc="${pkgdesc} (with CUDA)"
  depends+=(
    cuda
    libcudart.so
    nvidia-utils
  )
  provides=(python-decord=${pkgver})
  conflicts=(python-decord)

  cd "${srcdir}/${_pkgname}-cuda-${pkgver}/python"
  python -m installer --destdir="${pkgdir}" dist/*.whl
  find ${pkgdir} -type f -name "*.so" -exec chrpath --delete {} \;
}
# vim:set ts=2 sw=2 et: