summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: fc818f820101f658d5987c058baea11cb82abe80 (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
# Maintainer: Jefferson González <jgmdev@gmail.com>

pkgname=php-wxwidgets-git
_gitname=wxphp
pkgver=v3.0.2.0.r208.g0560d4f
_pkgver=3.0.2
pkgrel=2
pkgdesc="PHP bindings to the cross-platform wxWidgets GUI Toolkit library."
arch=('i686' 'x86_64')
url="http://wxphp.org"
install=php-wxwidgets-git.install
license=('PHP')
depends=('gtk2' 'libgl' 'libxxf86vm' 'libsm' 'sdl' 'sdl_sound' 'gstreamer' 'php56' 'webkitgtk2')
makedepends=('mesa' 'glu' 'libxt' 'gstreamer' 'sdl' 'sdl_sound' 'php56' 'webkitgtk2' 'gstreamer0.10-base-plugins')
source=(
    "http://downloads.sourceforge.net/wxwindows/wxWidgets-${_pkgver}.tar.bz2"
    "git://github.com/wxphp/${_gitname}.git"
    "make-abicheck-non-fatal.patch"
    "wxgtk-gcc6.patch"
)
sha1sums=(
    '6461eab4428c0a8b9e41781b8787510484dea800'
    'SKIP'
    'dfe38650c655395b90bf082b5734c4093508bfa3'
    '498202334c69d49c1ebbc9d36ad382cfa237f3f8'
)

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

prepare() {
    cd "${srcdir}/${_gitname}"
    phpize56
}

build() {
    if [ ! -e "${srcdir}/wxWidgets-${_pkgver}-static" ]; then
        cd "${srcdir}/wxWidgets-${_pkgver}"

        # C++ ABI check is too strict and breaks with GCC 5.1
        # https://bugzilla.redhat.com/show_bug.cgi?id=1200611
        patch -Np1 -i "${srcdir}/../make-abicheck-non-fatal.patch"

        # Fix build with GCC 6
        patch -p1 -i "${srcdir}/../wxgtk-gcc6.patch"

        CFLAGS="-fPIC -O2 -Wall -W" CXXFLAGS="-fPIC -O2" \
        ./configure --prefix="${srcdir}/wxWidgets-${_pkgver}-static" \
            --with-{gtk=2,libjpeg=sys,libpng=sys,libtiff=sys,libxpm=sys,opengl,regex=builtin,sdl} \
            --enable-{graphics_ctx,unicode,monolithic} \
            --disable-shared

        make
        make -C locale allmo
        make install
    fi

    cd "${srcdir}/${_gitname}"

    php56 tools/reference_generator.php

    ./configure \
        --with-wxwidgets="${srcdir}/wxWidgets-${_pkgver}-static" \
        --enable-wxwidgets-monolithic \
        --enable-wxwidgets-static

    make
}

package() {
    mkdir -p "${pkgdir}/usr/bin"
    mkdir -p "${pkgdir}/usr/lib/wxphp"
    mkdir -p "${pkgdir}/usr/share/applications/"
    mkdir -p "${pkgdir}/usr/share/doc/${pkgname}"
    mkdir -p "${pkgdir}/usr/share/icons/hicolor/48x48/apps/"
    mkdir -p "${pkgdir}/usr/share/icons/hicolor/scalable/apps/"

    # Add documentation to package
    cd "${srcdir}/${_gitname}"
    cp -rf doc/* "${pkgdir}/usr/share/doc/${pkgname}/"

    # Add wxphp shell script to package
    echo "#!/bin/sh" > "${pkgdir}/usr/bin/wxphp"
    echo "exec /usr/bin/php56 -d extension=wxwidgets.so \"\$@\"" >> "${pkgdir}/usr/bin/wxphp"
    chmod 0755 "${pkgdir}/usr/bin/wxphp"

    # Add desktop file
    echo "[Desktop Entry]" > "${pkgdir}/usr/share/applications/wxphp.desktop"
    echo "Name=wxPHP Shell" >> "${pkgdir}/usr/share/applications/wxphp.desktop"
    echo "GenericName=wxPHP Shell" >> "${pkgdir}/usr/share/applications/wxphp.desktop"
    echo "Comment=Shell for launching wxphp scripts." >> "${pkgdir}/usr/share/applications/wxphp.desktop"
    echo "Exec=/usr/lib/wxphp/launcher.sh" >> "${pkgdir}/usr/share/applications/wxphp.desktop"
    echo "Icon=wxphp" >> "${pkgdir}/usr/share/applications/wxphp.desktop"
    echo "Categories=Development;" >> "${pkgdir}/usr/share/applications/wxphp.desktop"
    echo "Version=1.0" >> "${pkgdir}/usr/share/applications/wxphp.desktop"
    echo "Type=Application" >> "${pkgdir}/usr/share/applications/wxphp.desktop"
    echo "Terminal=false" >> "${pkgdir}/usr/share/applications/wxphp.desktop"

    # Copy wxphp shell launcher scripts
    cp -rf tools/linux_shell/* "${pkgdir}/usr/lib/wxphp/"
    chmod -R 0755 $pkgdir/usr/lib/wxphp/*
    chmod 0644 "${pkgdir}/usr/lib/wxphp/README"

    # Copy icons
    cp artwork/icon.png "${pkgdir}/usr/share/icons/hicolor/48x48/apps/wxphp.png"
    cp artwork/icon.svg "${pkgdir}/usr/share/icons/hicolor/scalable/apps/wxphp.svg"

    # Copy wxwidgets php module
    EXTENSIONS_DIR=`php-config56 --extension-dir`
    CHROOT_EXTENSION_DIR="${pkgdir}${EXTENSIONS_DIR}"

    mkdir -p "${CHROOT_EXTENSION_DIR}"
    strip -s modules/wxwidgets.so
    cp -rf modules/wxwidgets.so "${CHROOT_EXTENSION_DIR}"
}