This project collects a set of script for building Qt application for Android/iOS in command line environment.
Check .travis.yml to see how it works. It will demonstrate how to build a apk file using QT-CI scripts.
Since this project is a collection of script, and the script in bin folder do not have any dependence to each othter. It is not necessary to clone / download the whole repository into your build environmnet. You may just copy the script you need from this repository.
recipes/install-qt
To automaticly install Qt, you can just donwload 2 scripts and give them permition to be executed.
"recipes/install-qt" "bin/extract-qt-installer"
Then just run scritp "recipes/install-qt" with desiered verion of Qt Example:
bash install-qt 5.9.4
QT_CI_PACKAGES - packages to install. You can check availble packages if set VERBOSE to 1.
Example:
export VERBOSE=1
export QT_CI_PACKAGES=qt,qt.594,qt.594.gcc_64,qt.594.doc.qtvirtualkeyboard
git clone https://github.com/benlau/qtci.git
source qtci/path.env #Add qtci/bin and qtci/recipes to $PATH
Extract installer of Qt to target path (for Qt 5.5 or above)
Example:
extract-qt-installer qt-opensource-linux-x64-android-5.5.1.run ~/Qt
Remarks: The installation path must be absolute path
Environment Variables
VERBOSE [Optional] Set to "true" will enable VERBOSE output
QT_CI_PACKAGES [Optional] Select the components to be installed instead of using default (eg. QT_CI_PACKAGES="qt.59.gcc_64")
Extract installer of "Qt installer framework" to target path
Example:
extract-ifw qt-installer-framework-opensource-1.5.0-x64.run ~/QtIfw
Download and install Android SDK
Example:
install-android-sdk platform-tool,build-tools-20.0.0,android-19
Build a Qt Android project and sign the APK
Usage:
build-android-gradle-project project.pro
Required Environment Variables
QT_HOME [Required] The home directory of installed Qt. (e.g ~/Qt/5.7)
KEYSTORE [Optional] The location of keystore. If it is set, it will be used to sign the created apk
KEYALIAS [Optional] The alias of the keystore
KEYPASS [Optional] The password of keystore.
ANDROID_TARGET_SDK_VERSION [Optional] Target Android SDK version. The default value is "19"
Usage
increase-android-version-code AndroidManifest.xml
Given a AndroidManifest.xml file, it will increase the value of versionCode field by one.
Usage
run-unittests project.pro
Build and run an unit test project in current folder. If qpm.json was found, it will call qpm install
first.
In the folder "recipes", it contains a set of script that could download and install specific Qt toolchains for different environment. (Include Android)
Please feel free to modify and submit new recipe.
Example
apt-get install openjdk-8-jdk p7zip
source path.env #Add $PWD/bin and $PWD/recipes to $PATH
#Change to installation path
qt-5.5.1-android-19 # Install Qt 5.5.1 and Android SDK
source qt-5.5.1-android-19.env # Add installed Qt path to $PATH
- Continuous distribution for Qt applications on desktop and mobile
- Andrew's Articles - Continuous deployment for Qt applications
- benlau/quickpromise - Promise library for QML
- benlau/quickcross - QML Cross Platform Utility Library
- benlau/qsyncable - Synchronize data between models
- benlau/testable - QML Unit Test Utilities
- benlau/quickflux - Message Dispatcher / Queue for Qt/QML
- benlau/biginteger - QML BigInteger library