diff --git a/build-specs/Frameworks/prison-AndroidQt5.11.yaml b/build-specs/Frameworks/prison-AndroidQt5.11.yaml new file mode 100644 index 0000000..5605776 --- /dev/null +++ b/build-specs/Frameworks/prison-AndroidQt5.11.yaml @@ -0,0 +1,2 @@ +kf5-qt5: + "externalDependencies": "/opt/helpers/build-cmake libqrencode https://github.com/fukuchi/libqrencode.git -DWITH_TOOLS=OFF" diff --git a/local-metadata/project-ignore-rules.yaml b/local-metadata/project-ignore-rules.yaml index 4c9c1a2..6a96a2b 100644 --- a/local-metadata/project-ignore-rules.yaml +++ b/local-metadata/project-ignore-rules.yaml @@ -1,65 +1,64 @@ 'SUSEQt5.9': - 'kdesupport/qca' 'SUSEQt5.10': - 'kdesupport/qca' 'SUSEQt5.11': - 'kdesupport/qca' 'WindowsMSVCQt5.11': - 'kdesupport/polkit-qt-1' - 'kdesupport/qca' - 'frameworks/networkmanager-qt' - 'frameworks/modemmanager-qt' - 'frameworks/bluez-qt' - 'frameworks/prison' - 'frameworks/kdesu' - 'frameworks/kpty' - 'frameworks/kwayland' - 'frameworks/kactivities-stats' - 'kde/workspace/libksysguard' - 'kde/kdenetwork/kaccounts-integration' 'FreeBSDQt5.11': - 'kdesupport/polkit-qt-1' - 'frameworks/networkmanager-qt' - 'frameworks/modemmanager-qt' - 'kde/workspace/plymouth-kcm' - 'kde/workspace/plasma-nm' - 'kde/workspace/powerdevil' - 'kde/workspace/plasma-vault' - 'kde/kdeedu/marble' - 'kde/kdegraphics/libs/libkgeomap' - 'kde/kdenetwork/kio-extras' 'AndroidQt5.11': - 'frameworks/polkit-qt-1' # requires glib2 - 'frameworks/kwallet' # requires gpgme - 'frameworks/kactivities' # requires boost - 'frameworks/kactivities-stats' # requires boost - 'frameworks/khtml' # requires kio - 'frameworks/kdelibs4support' # requires kio - 'frameworks/baloo' #kfilemetadata - 'frameworks/modemmanager-qt' - 'frameworks/networkmanager-qt' - 'frameworks/purpose' # requires kio - 'frameworks/breeze-icons' # shouldn't be installed like we do for xdg, we have an ad-hoc solution in kirigami - 'frameworks/kjs' # looks like we need to switch to clang for this one >> https://github.com/android-ndk/ndk/issues/442 - 'frameworks/kpty' # Doesn't build, didn't investigate: kpty.cpp:587:35: error: 'getsid' was not declared in this scope - 'frameworks/kdesu' # requires kpty - 'frameworks/plasma-framework' # requires kactivities - 'frameworks/krunner' # requires plasma - 'frameworks/kwayland' # requires wayland - 'frameworks/kdoctools' # not very useful for Android - 'frameworks/kjsembed' # requires kjs - 'frameworks/kdesignerplugin' # requires kdoctools - 'frameworks/kdewebkit' # we don't have QtWebKitWidgets on the image # to look into: -- 'frameworks/prison' # Needs qrencode and dmtx - 'kde/kdegames/libkdegames' # needs openal - 'kde/kdegraphics/libs/libkexiv2' #has exiv2 external dependency - 'frameworks/kfilemetadata' # FIXME needs #include which can't be found ATM - 'kde/pim/kcalcore' # libical master doesn't build diff --git a/system-images/android/sdk/build-generic b/system-images/android/sdk/build-generic index 4094f39..79da3dc 100755 --- a/system-images/android/sdk/build-generic +++ b/system-images/android/sdk/build-generic @@ -1,83 +1,98 @@ #!/bin/bash set -e # trap 'err_report echo "error: ${BASH_SOURCE}":"${LINENO}"' exit 1 +function buildExternalDependencies +{ + deps=$(python3 ci-tooling/helpers/getsetting.py --project $1 --product $2 --platform AndroidQt5.11 --key externalDependencies) + if [[ "$deps" ]]; then + echo "running: $deps" + $deps + else + echo "No dependencies" + fi +} + package=$1 shift DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" export PATH=$DIR:$PATH export PERSIST=1 # we get the repositories for the dependencies git clone kde:sysadmin/ci-tooling || true pushd ci-tooling git clone kde:sysadmin/repo-metadata || true git clone kde:kde-build-metadata || true popd # we figure out the dependencies all_packages=$(python3 ci-tooling/helpers/list-dependencies.py $package $EXTRA_PKGS --platform AndroidQt5.11) echo "Dependencies to build: $all_packages" blacklist="`cat $DIR/skip` $SKIP $package" for a in $extrapackages $all_packages $EXTRA_PKGS do skip=0 for x in $blacklist do if [[ $a =~ ^$x$ ]]; then skip=1 break fi done if [ $skip == 1 ]; then echo "Skipping $a $skip" continue fi + buildExternalDependencies $a Frameworks + arguments=$(python3 ci-tooling/helpers/getsetting.py --project $a --product Frameworks --platform AndroidQt5.11 --key cmake-options) build-cmake $a kde:$a $arguments -DBUILD_TESTING=OFF -GNinja $EXTRA done # we now do the actual application separately # first we download the project and look for the manifest file pushd src git clone kde:$package $APP_GIT_EXTRA || true popd manifestFile=`find $(pwd)/src/$package -name AndroidManifest.xml` targetname=$(python3 ci-tooling/helpers/getsetting.py --project $package --product Applications --platform AndroidQt5.11 --key target-name || true) if [[ -z "$targetname" && -n "$manifestFile" ]] then targetname=`python3 $DIR/target-from-manifest.py $manifestFile | tr '\n' ';' | head -c -1` EXTRA+=" "-DANDROID_APK_DIR=$(dirname $manifestFile | tr '\n' ';' | head -c -1 ) fi if [[ -z "$targetname" || "$targetname" =~ ".*%%.*" ]] then appdataFile=$(find $(pwd)/src/$package -name "*.appdata.xml") if [[ -z "$appdataFile" ]]; then echo "error: No AndroidManifest.xml or *.appdata.xml file :(" exit 1 fi targetname=`python3 $DIR/target-from-appdata.py $appdataFile | tr '\n' ';' | head -c -1` fi -arguments=$(python3 ci-tooling/helpers/getsetting.py --project $package --product Applications --platform AndroidQt5.11 --key cmake-options) +buildExternalDependencies $package Applications + +arguments=$(python3 ci-tooling/helpers/getsetting.py --project $package --product Applications --platform AndroidQt5.11 --key cmake-options) build-cmake $package kde:$package -DQTANDROID_EXPORTED_TARGET=$targetname $EXTRA $arguments $@ pushd build/$package if [ -f /keys/${package}keystore-config ]; then ARGS="`cat /keys/${package}keystore-config` $ARGS" make create-apk elif [ -f /keys/androidkeystore-config ]; then ARGS="`cat /keys/androidkeystore-config` $ARGS" make create-apk else make create-apk fi if [ -d /output ] then cp *_build_apk/build/outputs/apk/*.apk /output fi