diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 104 |
1 files changed, 55 insertions, 49 deletions
@@ -22,13 +22,13 @@ _skip_web_engine=false _static_build=false _build_from_head=false _local_qt5_repo="/opt/dev/src/qtproject/qt5" -_wayland_compositor=true -pkgver=5.6.0 -pkgrel=10 - -# PKGBUILD +pkgrel=1 _piver=1 + +_pkgvermajmin="5.7" +pkgver="${_pkgvermajmin}.0" + pkgname="qt-sdk-raspberry-pi${_piver}" if $_static_build; then @@ -36,7 +36,7 @@ if $_static_build; then fi if $_build_from_head; then - _pkgver=6.6.6 + pkgver=6.6.6 fi provides=("${pkgname}") @@ -44,18 +44,24 @@ conflicts=("${pkgname}") _packaginguser=$(whoami) _libspkgname="${pkgname}-target-libs" _mkspec="linux-rpi${_piver}-g++" -_pkgver=${pkgver}-rc + +_pkgver=${pkgver}-beta + _baseprefix=/opt _installprefix=${_baseprefix}/${pkgname} -_source_package_name=qt-everywhere-opensource-src-${_pkgver} +_qt_package_name_prefix="qt-everywhere-opensource-src" +_source_package_name=${_qt_package_name_prefix}-${_pkgver} + pkgdesc="Qt SDK for the Raspberry Pi${_piver}" arch=("x86_64") url="http://www.qt.io" license=("LGPL3" "GPL3") depends=("qpi-toolchain" "qtcreator") makedepends=("git" "pkgconfig" "gcc") -source=("git://github.com/sirspudd/mkspecs.git" "https://download.qt.io/development_releases/qt/5.6/${_pkgver}/single/${_source_package_name}.7z") -sha256sums=("SKIP" "82ed4bc1bf7735747e1612f322f8723dfd84f05fa4dca9398863e6527a0c1971") +source=("git://github.com/sirspudd/mkspecs.git" "https://download.qt.io/development_releases/qt/${_pkgvermajmin}/${_pkgver}/single/${_source_package_name}.7z") + +sha256sums=("SKIP" "d3df816772492d3d4e9bd542d5dfb45071821ab973ab8c426ae96fda4a47a8b9") + options=('!strip') install=qpi.install _fully_qualified_install_script="${startdir}/${install}" @@ -78,7 +84,16 @@ fi #end sanity check -if $_static_build || $_skip_web_engine || [[ ${_piver} = "1" ]]; then +# callbacks +finish() { + if [[ -n ${startdir} ]]; then + cd ${startdir} + git checkout qpi.install + fi +} +trap finish EXIT + +if $_static_build || $_skip_web_engine || [[ ${_piver} = "1" ]] || [[ ${_piver} = "3" ]]; then _device_configure_flags="$_device_configure_flags -skip qtwebengine" fi @@ -90,14 +105,14 @@ if $_build_from_head; then _device_configure_flags="$_device_configure_flags -skip qt3d -skip qtsystems -skip qttools -skip qtwebkit" fi -if $_wayland_compositor; then - _device_configure_flags="$_device_configure_flags -skip qtwayland" -fi - build() { local _srcdir="${srcdir}/${_source_package_name}" - local _bindir="${_srcdir}-build" - local _mkspec_dir="${_srcdir}/qtbase/mkspecs/devices/${_mkspec}" + local _basedir="${_srcdir}/qtbase" + local _waylanddir="${_srcdir}/qtwayland" + local _webenginedir="${_srcdir}/qtwebengine" + local _locationdir="${_srcdir}/qtlocation" + local _bindir="${_srcdir}" + local _mkspec_dir="${_basedir}/mkspecs/devices/${_mkspec}" # Qt tries to do the right thing and stores these, breaking cross compilation unset LDFLAGS @@ -108,17 +123,13 @@ if $_build_from_head; then _srcdir="${_local_qt5_repo}" fi + cd ${_srcdir} + # Get our mkspec rm -Rf $_mkspec_dir cp -r "${srcdir}/mkspecs/${_mkspec}" $_mkspec_dir - mkdir -p ${_bindir} - cd ${_bindir} - - # skipping due to build issues: qtquickcontrols2 # skipping on principle: qtscript xcb - # skipping because of the target in question: widgets qtwebchannel - # TODO: qtwebengine, a little bulky but useful # Too bleeding big # -developer-build \ @@ -127,22 +138,37 @@ fi # Chromium requires python2 to be the system python on your build host # I literally symlink /usr/bin/python to /usr/bin/python2 on arch - # patch + # build qtwebengine with our mkspec local _webenginefileoverride="${_srcdir}/qtwebengine/tools/qmake/mkspecs/features/functions.prf" sed -i "s/linux-clang/linux*/" ${_webenginefileoverride} || exit 1 - local _reducerelocations="${_srcdir}/qtbase/config.tests/unix/bsymbolic_functions.test" + + # hard coded off, so we have to hard code it on + local _reducerelocations="${_basedir}/config.tests/unix/bsymbolic_functions.test" sed -i "s/error/warning/" ${_reducerelocations} || exit 1 - # No longer required as we explicitly set CFLAGS = foo in the mkspec # Work around our embarresing propensity to stomp on your own tailored build configuration - sed -i "s/O[23]/Os/" ${_srcdir}/qtbase/mkspecs/common/gcc-base.conf || exit 1 + sed -i "s/O[23]/Os/" ${_basedir}/mkspecs/common/gcc-base.conf || exit 1 + + # incorporate journald fix + local _patch_dir=${startdir} + cd ${_basedir} + patch -p1 < ${_patch_dir}/0001-Make-CFLAGS-CXXFLAGS-behave-consistently-in-config.t.patch + patch -p1 < ${_patch_dir}/0002-Adjust-egl-config.test-to-pass-sysrooted-libs.patch + cd ${_webenginedir} + patch -p1 < ${_patch_dir}/0001-Include-neon-support-for-any-fpu-.-neon.patch + patch -p1 < ${_patch_dir}/0001-Always-define-arm_thumb.patch # end patch + mkdir -p ${_bindir} + cd ${_bindir} + # Breaks in qtwayland # -qtnamespace Pi \ ${_srcdir}/configure \ + -no-icu \ + -v \ -qreal float \ -release \ -silent \ @@ -158,14 +184,12 @@ fi -prefix ${_installprefix} \ -opengl es2 \ -egl \ - -no-icu \ + -journald \ \ - -no-widgets \ -make libs \ -no-xcb \ \ -skip qtscript \ - -skip qtenginio \ \ -sysroot ${_sysroot} \ -device ${_mkspec} \ @@ -173,16 +197,6 @@ fi ${_device_configure_flags} || exit 1 make || exit 1 - -if $_wayland_compositor; then - # regrettably required, as qtwayland barfs on shadow builds - # as private header paths not included: no clue how to fix, bypassing - - cp -r "${_srcdir}/qtwayland" "${_bindir}" || exit 1 - cd "${_bindir}/qtwayland" - ${_bindir}/qtbase/bin/qmake CONFIG+=wayland-compositor || exit 1 - make || exit 1 -fi } create_install_script() @@ -196,7 +210,7 @@ create_install_script() package() { local _srcdir="${srcdir}/${_source_package_name}" - local _bindir="${_srcdir}-build" + local _bindir="${_srcdir}" create_install_script @@ -207,12 +221,6 @@ package() { cd "${_bindir}" INSTALL_ROOT="$pkgdir" make install || exit 1 -if $_wayland_compositor; then - # regrettably required - cd "${_bindir}/qtwayland" - INSTALL_ROOT="$pkgdir" make install || exit 1 -fi - # Qt is now installed to $pkgdir/$sysroot/$prefix # manually generate/decompose host/target local _libsdir="${startdir}/${_libspkgname}" @@ -239,7 +247,5 @@ fi cd ${_libsdir} runuser -l ${_packaginguser} -c 'makepkg -d -f' || exit 1 - echo "the libs package for the Raspberry Pi${_piver} is in the ${_packaginguser} home directory awaiting deployment" - mv ${_libsdir}/${_libspkgname}-${pkgver}-${pkgrel}-any.pkg.tar.xz ${startdir} } |