Skip to content
Snippets Groups Projects
PKGBUILD 4.2 KiB
Newer Older
nfg's avatar
nfg committed
# Copyright     : Obarun
#------------------------
# Maintainer    : Eric Vidal <eric@obarun.org>
# Maintainer    : Jean-Michel T.Dydak <jean-michel@obarun.org>
#----------------
# Pkgbuild Src  : https://git.obarun.org/pkg/obextra/qt5-base
#--------------------------------------------------------------
# DESCRIPTION ]

pkgbase=qt5-base
_basever=5.15.10
pkgver=5.15.10+kde+r147
pkgrel=2
pkgdesc="A cross-platform application and UI framework"
url='https://www.qt.io'

pkgname=(
    'qt5-base'
    'qt5-xcb-private-headers'
)

track="commit"
target="e24dc54b2b4054413650904288aa7a363eee23a7"
source=(
    "git+https://invent.kde.org/qt/qt/${pkgbase/5-/}#${track}=${target}"
    qt5-base-cflags.patch
    qt5-base-nostrip.patch
)

#----------------------
# BUILD CONFIGURATION ]

makedepends=(
    'libfbclient'
    'mariadb-libs'
    'unixodbc'
    'postgresql-libs'
    'alsa-lib'
    'gst-plugins-base-libs'
    'gtk3'
    'libpulse'
    'cups'
    'freetds'
    'vulkan-headers'
    'git'
)

#options=('debug')

#------------------------
# INSTALL CONFIGURATION ]

depends=(
    'libjpeg-turbo'
    'xcb-util-keysyms'
    'xcb-util-renderutil'
    'libgl'
    'fontconfig'
    'xdg-utils'
    'shared-mime-info'
    'xcb-util-wm'
    'libxrender'
    'libxi'
    'sqlite'
    'xcb-util-image'
    'mesa'
    'tslib'
    'libinput'
    'libxkbcommon-x11'
    'libproxy'
    'libcups'
    'double-conversion'
    'md4c'
)

optdepends=(
    'qt5-svg: to use SVG icon themes'
    'qt5-wayland: to run Qt applications in a Wayland session'
    'postgresql-libs: PostgreSQL driver'
    'mariadb-libs: MariaDB driver'
    'unixodbc: ODBC driver'
    'libfbclient: Firebird/iBase driver'
    'freetds: MS SQL driver'
    'gtk3: GTK platform plugin'
    'perl: for fixqt4hearders and syncqt'
)

groups=(
    'qt'
    'qt5'
)

conflicts=(
    'qtchooser'
)

#--------------------
# BUILD PREPARATION ]

pkgver() {
    cd ${pkgbase/5-}
    echo "$_basever+kde+r"`git rev-list --count v$_basever-lts-lgpl..$target` | sed -e 's|+kde+r0||'
}

prepare() {
    cd ${pkgbase/5-}

    patch -p1 < ../qt5-base-cflags.patch ## Use system CFLAGS in qmake
    patch -p1 < ../qt5-base-nostrip.patch ## Don't strip binaries with qmake
}

#--------
# BUILD ]

build() {
    cd ${pkgbase/5-}

    local configure_options=(
        -confirm-license -opensource -v
        -prefix /usr
        -docdir /usr/share/doc/qt
        -headerdir /usr/include/qt
        -archdatadir /usr/lib/qt
        -datadir /usr/share/qt
        -sysconfdir /etc/xdg
        -examplesdir /usr/share/doc/qt/examples
        -plugin-sql-sqlite
        -plugin-sql-mysql
        -plugin-sql-psql
        -plugin-sql-odbc
        -plugin-sql-ibase
        -system-sqlite
        -openssl-linked
        -nomake examples
        -no-rpath
        -dbus-linked
        -system-harfbuzz
        -libproxy
        -no-mimetype-database
        -no-use-gold-linker
        -no-reduce-relocations
        -no-strip
        -ltcg
    )

    ./configure "${configure_options[@]}"

    ## No configure flag for fat static libs with lto
    bin/qmake CONFIG+=fat-static-lto -- -redo

    make
}

#----------
# PACKAGE ]

package_qt5-base() {
    pkgdesc="A cross-platform application and UI framework"
    depends+=(
        'qt5-translations'
    )

    cd ${pkgbase/5-}
    make INSTALL_ROOT="$pkgdir" install

    install -Dm644 LICENSE* -t "$pkgdir"/usr/share/licenses/$pkgbase

    ## Drop QMAKE_PRL_BUILD_DIR because reference the build dir
    find "$pkgdir"/usr/lib -type f -name '*.prl' \
     -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;

    ## Fix wrong qmake path in pri file
    sed -i "s|$srcdir/${pkgbase/5-}|/usr|" \
     "$pkgdir"/usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri

    ## Symlinks for backwards compatibility
    for b in "$pkgdir"/usr/bin/*; do
     ln -s $(basename $b) "$pkgdir"/usr/bin/$(basename $b)-qt5
    done
}

package_qt5-xcb-private-headers() {
    pkgdesc="Private headers for Qt5 Xcb"
    depends=(
        "qt5-base=$pkgver"
    )

    cd ${pkgbase/5-}
    install -d -m755 "$pkgdir"/usr/include/qtxcb-private
    cp -r src/plugins/platforms/xcb/*.h "$pkgdir"/usr/include/qtxcb-private/
}

#--------------------
# ARCH LICENSE AUTH ]

arch=(x86_64)
license=(GPL3 LGPL3 FDL custom)

sha512sums=('')