summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: f80ca688cac57e3d909b3dfc5d9754882b4ac482 (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
# Maintainer : Daniel Bermond < gmail-com: danielbermond >

pkgname=openni2-git
_srcname=OpenNI2
pkgver=2.2.beta.r25.g1fce8ed
pkgrel=6
pkgdesc='Framework for sensor-based Natural Interaction (git version)'
arch=('i686' 'x86_64')
url='https://github.com/occipital/OpenNI2/'
license=('APACHE')
depends=('freeglut' 'glu' 'libusb' 'java-environment' 'libjpeg-turbo')
makedepends=('git' 'python' 'doxygen' 'graphviz')
provides=('openni2')
conflicts=('openni2')
source=('git+https://github.com/occipital/OpenNI2.git'
        '0002-Change-path-of-config-files-to-etc-openni2.patch'
        '0003-Use-system-wide-libjpeg.patch'
        '0005-change-default-ni-drivers-path.patch'
        '0013-Fix-GCC6-compilation.patch'
        '0014-fix-format-overflow-for-GCC7.patch'
        '0015-Initialize-variable-for-gcc7.patch'
        'libopenni2.pc')
sha256sums=('SKIP'
            '368c0b41a26a65377359ce22a914cb8b6f4020e2972f67f151f2b9bdbf1a5a50'
            '1ca20e60ac10a193cbf0ca4759230ba7930479baa7d237476583359e7b62f604'
            '635c762230a2dc57977c7f42cc7d1c25438d3864baca7632360466e8c031e3b5'
            '0fd53b2c41a48cb4b28e67c6cfcedf4d17ffbe675bd2eb21793a683bbb0d85bb'
            '05e95ab2375294a37354dab5ed746ff5c6de6e5ed1792ad398f489d6d35af93e'
            '196128c92803cbfaa67643703e043247475b6c718af8cd9b4333806d2e04d762'
            '57c9236c77133437a533d3cac6775da4749a070dd468e88e29b07d7a83aaaab1')

prepare() {
    cd "$_srcname"
    
    # fix building documentation with java 8
    # https://github.com/OpenNI/OpenNI2/issues/87
    local _javaver
    _javaver="$(archlinux-java get | grep -o '^[^-]*.[0-9]*')"
    if [ "$(vercmp "$_javaver" java-8)" -ge '0' ] 
    then
        sed -i "s/cmd = \[javaDocExe, '-d', 'java'\]/cmd = [javaDocExe, '-d', 'java', '-Xdoclint:none']/" Source/Documentation/Runme.py
    fi
    
    # apply patches
    patch -Np1 -i "${srcdir}/0002-Change-path-of-config-files-to-etc-openni2.patch"
    patch -Np1 -i "${srcdir}/0003-Use-system-wide-libjpeg.patch"
    patch -Np1 -i "${srcdir}/0005-change-default-ni-drivers-path.patch"
    patch -Np1 -i "${srcdir}/0013-Fix-GCC6-compilation.patch"
    patch -Np1 -i "${srcdir}/0014-fix-format-overflow-for-GCC7.patch"
    patch -Np1 -i "${srcdir}/0015-Initialize-variable-for-gcc7.patch"
}

pkgver() {
    cd "$_srcname"
    
    git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/^v//'
}

build() {
    cd "$_srcname"
    make
    make doc
}

package() {
    [ "$CARCH" = 'x86_64' ] && local _architecture='x64'
    [ "$CARCH" = 'i686'   ] && local _architecture='x86'
    
    # directories creation
    mkdir -p "${pkgdir}/usr/"{bin,include/openni2/{Driver,Linux-Arm,Linux-x86}}
    mkdir -p "${pkgdir}/usr/lib/"{OpenNI2/Drivers,pkgconfig}
    mkdir -p "${pkgdir}/usr/share/"{doc/"${pkgname}",licenses/"${pkgname}"}
    mkdir -p "${pkgdir}/usr/lib/udev/rules.d" # usb rules (udev rules)
    mkdir -p "${pkgdir}/etc/openni2/Drivers"  # config
    
    # binaries and libraries
    cd "${_srcname}/Bin/${_architecture}-Release"
    install    -m755 NiViewer             "${pkgdir}/usr/bin/NiViewer2"
    install -D -m755 ClosestPointViewer   "${pkgdir}/usr/bin"
    install -D -m755 EventBasedRead       "${pkgdir}/usr/bin"
    install -D -m755 Multi*               "${pkgdir}/usr/bin"
    install -D -m755 MWClosestPointApp    "${pkgdir}/usr/bin"
    install -D -m755 PS*                  "${pkgdir}/usr/bin"
    install -D -m755 Simple*              "${pkgdir}/usr/bin"
    install -D -m755 *.so                 "${pkgdir}/usr/lib"
    install -D -m755 OpenNI2/Drivers/*.so "${pkgdir}/usr/lib/OpenNI2/Drivers"
    
    # includes
    cd "${srcdir}/${_srcname}/Include"
    install -D -m644 *.h         "${pkgdir}/usr/include/openni2"
    install -D -m644 Driver/*    "${pkgdir}/usr/include/openni2/Driver"
    install -D -m644 Linux-Arm/* "${pkgdir}/usr/include/openni2/Linux-Arm"
    install -D -m644 Linux-x86/* "${pkgdir}/usr/include/openni2/Linux-x86"
    
    # udev rules
    cd "${srcdir}/${_srcname}/Packaging/Linux"
    install -m644 primesense-usb.rules "${pkgdir}/usr/lib/udev/rules.d/60-openni2-usb.rules"
    
    # config
    cd "${srcdir}/${_srcname}/Config"
    install -D -m644 *.ini             "${pkgdir}/etc/openni2"
    install -D -m644 OpenNI2/Drivers/* "${pkgdir}/etc/openni2/Drivers"
    
    # documentation
    cd "${srcdir}/${_srcname}/Source/Documentation/html"
    install -D -m644 * "${pkgdir}/usr/share/doc/${pkgname}"
    
    # pkg-config file
    cd "$srcdir"
    install -D -m644 libopenni2.pc "${pkgdir}/usr/lib/pkgconfig"
    
    # license
    cd "$_srcname"
    install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}"
    install -D -m644 NOTICE  "${pkgdir}/usr/share/licenses/${pkgname}"
}