mirror of
				https://github.com/f-droid/fdroidserver.git
				synced 2025-11-04 06:30:27 +03:00 
			
		
		
		
	Add qt sdk support
This commit is contained in:
		
							parent
							
								
									d3a215c12b
								
							
						
					
					
						commit
						91c5fb567a
					
				
					 7 changed files with 101 additions and 4 deletions
				
			
		
							
								
								
									
										2
									
								
								buildserver/Vagrantfile
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								buildserver/Vagrantfile
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -70,6 +70,8 @@ Vagrant.configure("2") do |config|
 | 
			
		|||
  config.vm.provision "shell", path: "provision-android-sdk"
 | 
			
		||||
  config.vm.provision "shell", path: "provision-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",
 | 
			
		||||
    args: ["compare-locales"]
 | 
			
		||||
  config.vm.provision "shell", path: "provision-gradle"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,6 +5,7 @@ ndk_paths = {
 | 
			
		|||
    'r11c': "/home/vagrant/android-ndk/r11c",
 | 
			
		||||
    'r12b': "/home/vagrant/android-ndk/r12b",
 | 
			
		||||
}
 | 
			
		||||
qt_sdk_path = "/home/vagrant/qt-sdk/5.7.0/5.7"
 | 
			
		||||
java_paths = {
 | 
			
		||||
    '8': "/usr/lib/jvm/java-8-openjdk-i386",
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										83
									
								
								buildserver/provision-qt-sdk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								buildserver/provision-qt-sdk
									
										
									
									
									
										Normal 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
 | 
			
		||||
| 
						 | 
				
			
			@ -921,10 +921,10 @@ each build.
 | 
			
		|||
As for 'prebuild', but runs on the source code BEFORE any other processing
 | 
			
		||||
takes place.
 | 
			
		||||
 | 
			
		||||
You can use $$SDK$$, $$NDK$$ and $$MVN3$$ to substitute the paths to the
 | 
			
		||||
android SDK and NDK directories, and maven 3 executable respectively. The
 | 
			
		||||
following per-build variables are available likewise: $$VERSION$$,
 | 
			
		||||
$$VERCODE$$ and $$COMMIT$$.
 | 
			
		||||
You can use $$SDK$$, $$NDK$$, $$MVN3$$ and $$QT$$ to substitute the paths
 | 
			
		||||
to the android SDK and NDK directories, maven 3 executable, and Qt SDK
 | 
			
		||||
directory respectively. The following per-build variables are available
 | 
			
		||||
likewise: $$VERSION$$, $$VERCODE$$ and $$COMMIT$$.
 | 
			
		||||
 | 
			
		||||
@item oldsdkloc=yes
 | 
			
		||||
The sdk location in the repo is in an old format, or the build.xml is
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,6 +17,9 @@
 | 
			
		|||
#     '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 = {
 | 
			
		||||
#     '1.8': "/usr/lib/jvm/java-8-openjdk",
 | 
			
		||||
# }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -60,6 +60,7 @@ default_config = {
 | 
			
		|||
        'r11c': None,
 | 
			
		||||
        'r12b': "$ANDROID_NDK",
 | 
			
		||||
    },
 | 
			
		||||
    'qt_sdk_path': None,
 | 
			
		||||
    'build_tools': "24.0.2",
 | 
			
		||||
    'force_build_tools': False,
 | 
			
		||||
    'java_paths': None,
 | 
			
		||||
| 
						 | 
				
			
			@ -1836,6 +1837,7 @@ def replace_config_vars(cmd, build):
 | 
			
		|||
    cmd = cmd.replace('$$SDK$$', config['sdk_path'])
 | 
			
		||||
    cmd = cmd.replace('$$NDK$$', build.ndk_path())
 | 
			
		||||
    cmd = cmd.replace('$$MVN3$$', config['mvn3'])
 | 
			
		||||
    cmd = cmd.replace('$$QT$$', config['qt_sdk_path'] or '')
 | 
			
		||||
    if build is not None:
 | 
			
		||||
        cmd = cmd.replace('$$COMMIT$$', build.commit)
 | 
			
		||||
        cmd = cmd.replace('$$VERSION$$', build.version)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -281,6 +281,8 @@ cachefiles = [
 | 
			
		|||
     'ba85dbe4d370e4de567222f73a3e034d85fc3011b3cbd90697f3e8dcace3ad94'),
 | 
			
		||||
    ('https://dl.google.com/android/repository/android-ndk-r12b-linux-x86_64.zip',
 | 
			
		||||
     '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)
 | 
			
		||||
        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,
 | 
			
		||||
# like if this is being run in kvm or some other VM platform, like
 | 
			
		||||
# http://jenkins.debian.net, the values are 'on' or 'off'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue