Merge branch 'master' into 'master'

Add qt sdk support

Qt SDK extraction on the VM

See merge request !172
This commit is contained in:
Hans-Christoph Steiner 2016-09-27 12:54:02 +00:00
commit 84500b0049
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'