Add qt sdk support

This commit is contained in:
est31 2016-09-24 14:10:55 +02:00
parent d3a215c12b
commit 91c5fb567a
7 changed files with 101 additions and 4 deletions

View file

@ -70,6 +70,8 @@ Vagrant.configure("2") do |config|
config.vm.provision "shell", path: "provision-android-sdk" config.vm.provision "shell", path: "provision-android-sdk"
config.vm.provision "shell", path: "provision-android-ndk", config.vm.provision "shell", path: "provision-android-ndk",
args: ["/home/vagrant/android-ndk"] args: ["/home/vagrant/android-ndk"]
config.vm.provision "shell", path: "provision-qt-sdk",
args: ["/home/vagrant/qt-sdk"]
config.vm.provision "shell", path: "provision-pip", config.vm.provision "shell", path: "provision-pip",
args: ["compare-locales"] args: ["compare-locales"]
config.vm.provision "shell", path: "provision-gradle" config.vm.provision "shell", path: "provision-gradle"

View file

@ -5,6 +5,7 @@ ndk_paths = {
'r11c': "/home/vagrant/android-ndk/r11c", 'r11c': "/home/vagrant/android-ndk/r11c",
'r12b': "/home/vagrant/android-ndk/r12b", 'r12b': "/home/vagrant/android-ndk/r12b",
} }
qt_sdk_path = "/home/vagrant/qt-sdk/5.7.0/5.7"
java_paths = { java_paths = {
'8': "/usr/lib/jvm/java-8-openjdk-i386", '8': "/usr/lib/jvm/java-8-openjdk-i386",
} }

View file

@ -0,0 +1,83 @@
#!/bin/bash
set -e
QT_DIR=$1
test -e $QT_DIR || mkdir -p $QT_DIR
cat << EOF > $QT_DIR/5.7.0-installer.qs
// Bases on script from http://stackoverflow.com/a/34032216
function Controller() {
installer.autoRejectMessageBoxes();
installer.installationFinished.connect(function() {
gui.clickButton(buttons.NextButton);
})
}
Controller.prototype.WelcomePageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.CredentialsPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.IntroductionPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.TargetDirectoryPageCallback = function()
{
gui.currentPageWidget().TargetDirectoryLineEdit.setText("$QT_DIR/5.7.0");
gui.clickButton(buttons.NextButton);
}
Controller.prototype.ComponentSelectionPageCallback = function() {
var widget = gui.currentPageWidget();
// You can get these component names by running the installer with the
// --verbose flag. It will then print out a resource tree.
widget.deselectAll();
widget.selectComponent("qt.55.gcc_64");
widget.selectComponent("qt.57.qtwebengine.gcc_64");
widget.selectComponent("qt.57.android_x86");
widget.selectComponent("qt.57.android_armv7");
// widget.deselectComponent("...");
gui.clickButton(buttons.NextButton);
}
Controller.prototype.LicenseAgreementPageCallback = function() {
gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);
gui.clickButton(buttons.NextButton);
}
Controller.prototype.StartMenuDirectoryPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.ReadyForInstallationPageCallback = function()
{
gui.clickButton(buttons.NextButton);
}
Controller.prototype.FinishedPageCallback = function() {
var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm
if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox) {
checkBoxForm.launchQtCreatorCheckBox.checked = false;
}
gui.clickButton(buttons.FinishButton);
}
EOF
if [ ! -e $QT_DIR/5.7.0 ]; then
echo "Installing Qt SDK 5.7.0 to $QT_DIR/5.7.0 ..."
/vagrant/cache/qt-opensource-linux-x64-android-5.7.0.run --platform minimal --script $QT_DIR/5.7.0-installer.qs --verbose
echo "Qt SDK 5.7.0 installation done."
fi
rm $QT_DIR/5.7.0-installer.qs

View file

@ -921,10 +921,10 @@ each build.
As for 'prebuild', but runs on the source code BEFORE any other processing As for 'prebuild', but runs on the source code BEFORE any other processing
takes place. takes place.
You can use $$SDK$$, $$NDK$$ and $$MVN3$$ to substitute the paths to the You can use $$SDK$$, $$NDK$$, $$MVN3$$ and $$QT$$ to substitute the paths
android SDK and NDK directories, and maven 3 executable respectively. The to the android SDK and NDK directories, maven 3 executable, and Qt SDK
following per-build variables are available likewise: $$VERSION$$, directory respectively. The following per-build variables are available
$$VERCODE$$ and $$COMMIT$$. likewise: $$VERSION$$, $$VERCODE$$ and $$COMMIT$$.
@item oldsdkloc=yes @item oldsdkloc=yes
The sdk location in the repo is in an old format, or the build.xml is The sdk location in the repo is in an old format, or the build.xml is

View file

@ -17,6 +17,9 @@
# 'r12b': "$ANDROID_NDK", # 'r12b': "$ANDROID_NDK",
# } # }
# Path to the Qt SDK. It is of the form "/path/to/Qt5.7.0/5.7"
# qt_sdk_path = ""
# java_paths = { # java_paths = {
# '1.8': "/usr/lib/jvm/java-8-openjdk", # '1.8': "/usr/lib/jvm/java-8-openjdk",
# } # }

View file

@ -60,6 +60,7 @@ default_config = {
'r11c': None, 'r11c': None,
'r12b': "$ANDROID_NDK", 'r12b': "$ANDROID_NDK",
}, },
'qt_sdk_path': None,
'build_tools': "24.0.2", 'build_tools': "24.0.2",
'force_build_tools': False, 'force_build_tools': False,
'java_paths': None, 'java_paths': None,
@ -1836,6 +1837,7 @@ def replace_config_vars(cmd, build):
cmd = cmd.replace('$$SDK$$', config['sdk_path']) cmd = cmd.replace('$$SDK$$', config['sdk_path'])
cmd = cmd.replace('$$NDK$$', build.ndk_path()) cmd = cmd.replace('$$NDK$$', build.ndk_path())
cmd = cmd.replace('$$MVN3$$', config['mvn3']) cmd = cmd.replace('$$MVN3$$', config['mvn3'])
cmd = cmd.replace('$$QT$$', config['qt_sdk_path'] or '')
if build is not None: if build is not None:
cmd = cmd.replace('$$COMMIT$$', build.commit) cmd = cmd.replace('$$COMMIT$$', build.commit)
cmd = cmd.replace('$$VERSION$$', build.version) cmd = cmd.replace('$$VERSION$$', build.version)

View file

@ -281,6 +281,8 @@ cachefiles = [
'ba85dbe4d370e4de567222f73a3e034d85fc3011b3cbd90697f3e8dcace3ad94'), 'ba85dbe4d370e4de567222f73a3e034d85fc3011b3cbd90697f3e8dcace3ad94'),
('https://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip', ('https://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip',
'eafae2d614e5475a3bcfd7c5f201db5b963cc1290ee3e8ae791ff0c66757781e'), 'eafae2d614e5475a3bcfd7c5f201db5b963cc1290ee3e8ae791ff0c66757781e'),
('https://download.qt.io/official_releases/qt/5.7/5.7.0/qt-opensource-linux-x64-android-5.7.0.run',
'f7e55b7970e59bdaabb88cb7afc12e9061e933992bda2f076f52600358644586'),
] ]
@ -346,6 +348,10 @@ for srcurl, shasum in cachefiles:
os.remove(local_filename) os.remove(local_filename)
sys.exit(1) sys.exit(1)
local_qt_filename = os.path.join(cachedir, 'qt-opensource-linux-x64-android-5.7.0.run')
print("Setting executable bit for " + local_qt_filename)
os.chmod(local_qt_filename, 0o755)
# use VirtualBox software virtualization if hardware is not available, # use VirtualBox software virtualization if hardware is not available,
# like if this is being run in kvm or some other VM platform, like # like if this is being run in kvm or some other VM platform, like
# http://jenkins.debian.net, the values are 'on' or 'off' # http://jenkins.debian.net, the values are 'on' or 'off'