diff options
author | Donald Carr | 2016-11-15 20:42:01 -0800 |
---|---|---|
committer | Donald Carr | 2017-01-13 06:17:07 -0800 |
commit | 763b5ae736f47a64cda465b5b028372037ea8758 (patch) | |
tree | f846c1f62337611f086d77d6852de1a605761342 | |
parent | ae9e0f380ee2db8aa6d98fb0ca3f86e919e958a3 (diff) | |
download | aur-763b5ae736f47a64cda465b5b028372037ea8758.tar.gz |
Sanity Checking: Target host builds with same recipe
Change-Id: Ib5f7cb63cef1e3dcfa613a26128ce97e2cc2d1fb
-rw-r--r-- | PKGBUILD | 166 | ||||
-rw-r--r-- | PKGBUILD.libs | 3 | ||||
-rw-r--r-- | PKGBUILD.libs.debug | 19 |
3 files changed, 132 insertions, 56 deletions
@@ -24,20 +24,22 @@ _building=true if [[ -z ${startdir} ]]; then _building=false; fi # Options +_target_host=false _sysroot="" _piver="" _use_mesa=false _float=false _shadow_build=false -_debug=false +_debug=true _skip_web_engine=true _static_build=false _build_from_head=false _patching=true # Sanity check options - -if $_building; then +if $_target_host; then + _piver="" +elif $_building; then if [[ -z $_piver ]] && [[ -n $LOCAL_PI_VER ]]; then _piver=$LOCAL_PI_VER; fi _sysroot=/mnt/pi${_piver} if [[ -z "${_piver}" ]]; then @@ -62,7 +64,7 @@ $_build_from_head && pkgver=6.6.6 _pkgver=${pkgver}${_dev_suffix} _release_type="development_releases" _mkspec="linux-rpi${_piver}-g++" -_device_configure_flags="" +_additional_configure_flags="" _profiled_gpu_fn=qpi-proprietary.sh __eglpkgconfigpath="${__pkgconfigpath}/egl.pc" @@ -83,29 +85,44 @@ case ${_piver} in ;; esac +if $_target_host; then + _use_mesa=true +else + depends=("qpi${_piver}-toolchain") + install=qpi.install + + rm $install + touch $install +fi + +if [[ -f testing ]]; then + _skip_web_engine=true; + _debug=false; +fi + if [[ -z "${_dev_suffix}" ]]; then _release_type="official_releases"; fi -if [[ -f testing ]]; then _skip_web_engine=true; fi $_build_from_head && _patching=false && _shadow_build=true -$_skip_web_engine && _device_configure_flags="$_device_configure_flags -skip qtwebengine" -$_static_build && _device_configure_flags="$_device_configure_flags -static" -$_float && _device_configure_flags="$_device_configure_flags -qreal float" +$_skip_web_engine && _additional_configure_flags="$_additional_configure_flags -skip qtwebengine" +$_static_build && _additional_configure_flags="$_additional_configure_flags -static" +$_float && _additional_configure_flags="$_additional_configure_flags -qreal float" # PKGBUILD vars -pkgrel=2 -pkgname="qt-sdk-raspberry-pi${_piver}" +pkgrel=3 +pkgname="qt-sdk" +if [[ -n ${_piver} ]]; then + pkgname="${pkgname}-raspberry-pi${_piver}" +fi $_static_build && pkgname="${pkgname}-static" + if $_debug; then - _build_type="-debug" - pkgname="${pkgname}-debug" -else - _build_type="-release" - _device_configure_flags="$_device_configure_flags -reduce-exports -ltcg" + _additional_configure_flags="-force-debug-info -separate-debug-info" fi _libspkgname="${pkgname}-target-libs" +_libsdebugpkgname="${pkgname}-target-libs-debug" _packaginguser=$(whoami) _baseprefix=/opt _installprefix=${_baseprefix}/${pkgname} @@ -116,25 +133,47 @@ pkgdesc="Qt SDK for the Raspberry Pi 1/2/3" arch=("x86_64") url="http://www.qt.io" license=("LGPL3" "GPL3") -depends=("qpi${_piver}-toolchain") optdepends=('qtcreator: Integrated Raspberry Pi IDE development') makedepends=("git" "pkgconfig" "gcc") _provider=http://qt.mirror.constant.com/ #_provider=https://download.qt.io +# shouldn't be needed +#-hostprefix ${_installprefix} \ +_core_configure_options="\ + -prefix ${_installprefix} \ + -confirm-license \ + -opensource \ + -v \ + -silent \ + -c++std 14 \ + -release \ + -fontconfig \ + -system-freetype \ + -pch \ + -opengl es2 \ + -egl \ + -journald \ + -make libs \ + -no-icu \ + -no-compile-examples \ + \ + -reduce-relocations \ + -reduce-exports \ + -ltcg \ + \ + -skip qtscript" + if ! $_build_from_head; then source=("git://github.com/sirspudd/mkspecs.git" "${_provider}/${_release_type}/qt/${_pkgvermajmin}/${_pkgver}/single/${_source_package_name}.7z") sha256sums=("SKIP" "8a8b57ee26e076316208bcb371cbecbfebdb0d59c1f4949e8f84bc848987b55b") fi options=('!strip') -install=qpi.install -rm $install -touch $install if ${_use_mesa}; then _profiled_gpu_fn=qpi-mesa.sh - _device_configure_flags="$_device_configure_flags -gbm -kms" + _additional_configure_flags="$_additional_configure_flags -gbm -kms" else if [[ -f ${__eglpkgconfigpath} ]] || [[ -f ${__glespkgconfigpath} ]] ; then echo "Mesa is about to eat our communal poodle; delete egl.pc and glesv2.pc in your sysroot" @@ -150,7 +189,10 @@ finish() { touch $install fi } -trap finish EXIT + +if ! $_target_host; then + trap finish EXIT +fi build() { # Qt tries to do the right thing and stores these, breaking cross compilation @@ -179,11 +221,13 @@ build() { cd ${_srcdir} -if $_patching; then +if ! $_target_host; then # Get our mkspec rm -Rf $_mkspec_dir cp -r "${srcdir}/mkspecs/${_mkspec}" $_mkspec_dir +fi +if $_patching; then # build qtwebengine with our mkspec local _webenginefileoverride="${_srcdir}/qtwebengine/tools/qmake/mkspecs/features/functions.prf" sed -i "s/linux-clang/linux*/" ${_webenginefileoverride} || exit 1 @@ -216,38 +260,21 @@ fi # Just because you can enable something doesnt mean you should # Prepare for breakage in all your Qt derived projects #-qtnamespace "Pi${_piver}" \ + +if $_target_host; then local _configure_line="${_srcdir}/configure \ - -confirm-license \ - -opensource \ - -v \ - \ - $_build_type \ - -fontconfig \ - -system-freetype \ - -reduce-relocations \ - -reduce-exports \ - -silent \ + ${_core_configure_options} \ + ${_additional_configure_flags}" +else + local _configure_line="${_srcdir}/configure \ + ${_core_configure_options} \ -qtlibinfix "Pi${_piver}" \ - -pch \ - -opengl es2 \ - -egl \ - -journald \ - \ - -hostprefix ${_installprefix} \ - -prefix ${_installprefix} \ - \ - -make libs \ - \ - -no-icu \ - -no-compile-examples \ - -no-xcb \ - \ - -skip qtscript \ - \ -sysroot ${_sysroot} \ -device ${_mkspec} \ -device-option CROSS_COMPILE=/opt/${_toolchain_name}/bin/${_toolchain_name}- \ - ${_device_configure_flags}" + -no-xcb \ + ${_additional_configure_flags}" +fi echo ${_configure_line} > configure_line ${_configure_line} || exit 1 make || exit 1 @@ -271,7 +298,9 @@ if $_shadow_build; then _bindir="${_srcdir}-build" fi +if ! $_target_host; then create_install_script +fi # cleanup rm -Rf ${pkgdir} @@ -282,23 +311,49 @@ fi # Qt is now installed to $pkgdir/$sysroot/$prefix # manually generate/decompose host/target + local _libsdir="${startdir}/${_libspkgname}" + local _libsdebugdir="${startdir}/${_libsdebugpkgname}" + local _libspkgdir="${_libsdir}/topkg" + local _libsdebugpkgdir="${_libsdebugdir}/topkg" + local _libspkgbuild="${_libsdir}/PKGBUILD" + local _libsdebugpkgbuild="${_libsdebugdir}/PKGBUILD" + local _pkgprofiled=${_libspkgdir}/etc/profile.d local _profiledfn=qpi.sh - rm -Rf ${_libspkgdir} - mkdir -p ${_libspkgdir} + + local _installed_dir="${pkgdir}/${_sysroot}/${_baseprefix}" +if $_target_host; then + _installed_dir="${pkgdir}/${_baseprefix}" +fi + + rm -Rf ${_libspkgdir} ${_libsdebugpkgdir} + mkdir -p ${_libspkgdir} ${_libsdebugpkgdir} cp ${startdir}/PKGBUILD.libs ${_libspkgbuild} - mv "${pkgdir}/${_sysroot}/${_baseprefix}" ${_libspkgdir} + cp ${startdir}/PKGBUILD.libs.debug ${_libsdebugpkgbuild} + + cd $(dirname ${_installed_dir}) + find $(basename ${_installed_dir}) -name '*.debug' -exec cp --parents '{}' ${_libsdebugpkgdir} \; -exec rm '{}' \; + + mv ${_installed_dir} ${_libspkgdir} + # set correct libs version sed -i "s/libspkgrel/${pkgrel}/" ${_libspkgbuild} || exit 1 sed -i "s/libspkgver/${pkgver}/" ${_libspkgbuild} || exit 1 sed -i "s/libspkgname/${_libspkgname}/" ${_libspkgbuild} || exit 1 sed -i "s/libspiver/${_piver}/" ${_libspkgbuild} || exit 1 - if ! ${_static_build}; then + # debug + sed -i "s/libspkgrel/${pkgrel}/" ${_libsdebugpkgbuild} || exit 1 + sed -i "s/libspkgver/${pkgver}/" ${_libsdebugpkgbuild} || exit 1 + sed -i "s/libspkgname/${_libspkgname}/" ${_libsdebugpkgbuild} || exit 1 + sed -i "s/libsdebugpkgname/${_libsdebugpkgname}/" ${_libsdebugpkgbuild} || exit 1 + sed -i "s/libspiver/${_piver}/" ${_libsdebugpkgbuild} || exit 1 + + if ! ${_target_host} && ! ${_static_build}; then mkdir -p ${_pkgprofiled} cp -L ${startdir}/${_profiledfn} ${_pkgprofiled} || exit 1 cp -L ${startdir}/${_profiled_gpu_fn} ${_pkgprofiled} || exit 1 @@ -314,6 +369,9 @@ fi cd ${_libsdir} runuser -l ${_packaginguser} -c 'makepkg -d -f' || exit 1 - mv ${_libsdir}/${_libspkgname}-${pkgver}-${pkgrel}-any.pkg.tar.xz ${startdir} + + cd ${_libsdebugdir} + runuser -l ${_packaginguser} -c 'makepkg -d -f' || exit 1 + mv ${_libsdebugdir}/${_libsdebugpkgname}-${pkgver}-${pkgrel}-any.pkg.tar.xz ${startdir} } diff --git a/PKGBUILD.libs b/PKGBUILD.libs index 3ef32a976c70..ed1e77bed023 100644 --- a/PKGBUILD.libs +++ b/PKGBUILD.libs @@ -1,8 +1,7 @@ # Maintainer: Donald Carr <sirspudd at gmail dot com> pkgname=libspkgname -_declarative_pkgname="qt5-declarative" -provides=("qt-sdk-raspberry-pi-target-libs" "${_declarative_pkgname}") +provides=("qt5-declarative" "libspkgname") pkgver=libspkgver pkgrel=libspkgrel pkgdesc="Qt ${pkgver} libs cross compiled for the Raspberry Pi libspiver" diff --git a/PKGBUILD.libs.debug b/PKGBUILD.libs.debug new file mode 100644 index 000000000000..5b1a586e3a6e --- /dev/null +++ b/PKGBUILD.libs.debug @@ -0,0 +1,19 @@ +# Maintainer: Donald Carr <sirspudd at gmail dot com> + +pkgname=libsdebugpkgname +provides=("qt5-declarative" "libsdebugpkgname") +pkgver=libspkgver +pkgrel=libspkgrel +pkgdesc="Qt ${pkgver} libs cross compiled for the Raspberry Pi libspiver" +# I don't know how to set this correct for cross architecture builds +arch=("any") +url="http://www.qt.io" +license=("LGPL3" "GPL3") +source=() +sha256sums=() +options=('!strip') +depends=("libspkgname") + +package() { + mv ${startdir}/topkg/* ${pkgdir} +} |