Meshroom/docker/qt-installer-noninteractive.qs
Alastair D'Silva f934cb4454 Build working Meshroom images based on the latest Alicevision images
This patch builds upon the AliceVision PR:
https://github.com/alicevision/AliceVision/pull/853

It ensures that Centos images build a functioning Meshroom,
and also adds Ubuntu support.

The Docker images support launch the GUI via ssh:
docker run -it --runtime nvidia -p 2222:22 --name meshroom -v</path/to/your/data>:/data alicevision/meshroom:<meshroom branch/commit>-av<AliceVision branch/commit>-ubuntu20.04-cuda11.0
ssh -p 2222 -X root@<docker host> /opt/Meshroom_bundle/Meshroom # Password is 'meshroom'

The following OS/CUDA versions are supported:
CUDA_VERSION=11.0 UBUNTU_VERSION=20.04
CUDA_VERSION=11.0 UBUNTU_VERSION=18.04
CUDA_VERSION=10.2 UBUNTU_VERSION=18.04
CUDA_VERSION=9.2 UBUNTU_VERSION=18.04

CUDA_VERSION=10.2 CENTOS_VERSION=7
CUDA_VERSION=9.2 CENTOS_VERSION=7

To build all supported images:
AV_VERSION=<AliceVision version> docker/build-all.sh

Signed-off-by: Alastair D'Silva <alastair@d-silva.org>
2020-09-09 16:46:34 +02:00

74 lines
3.1 KiB
Text

function Controller() {
installer.installationFinished.connect(function() {
gui.clickButton(buttons.NextButton);
});
installer.setMessageBoxAutomaticAnswer("OverwriteTargetDirectory", QMessageBox.Yes);
installer.setMessageBoxAutomaticAnswer("installationErrorWithRetry", QMessageBox.Ignore);
installer.setMessageBoxAutomaticAnswer("cancelInstallation", QMessageBox.Yes);
}
Controller.prototype.WelcomePageCallback = function() {
console.log("Welcome Page");
gui.clickButton(buttons.NextButton, 3000);
}
Controller.prototype.CredentialsPageCallback = function() {
console.log("Credentials Page");
var login = installer.environmentVariable("QT_CI_LOGIN");
var password = installer.environmentVariable("QT_CI_PASSWORD");
if( login === "" || password === "" ) {
console.log("No credentials provided - could stuck here forever");
gui.clickButton(buttons.CommitButton);
}
var widget = gui.currentPageWidget();
widget.loginWidget.EmailLineEdit.setText(login);
widget.loginWidget.PasswordLineEdit.setText(password);
gui.clickButton(buttons.CommitButton);
}
Controller.prototype.ComponentSelectionPageCallback = function() {
console.log("Select components");
var widget = gui.currentPageWidget();
widget.deselectAll();
widget.selectComponent("qt.qt5.5141.gcc_64");
widget.selectComponent("qt.qt5.5141.qtcharts");
widget.selectComponent("qt.qt5.5141.qtcharts.gcc_64");
gui.clickButton(buttons.NextButton);
}
Controller.prototype.IntroductionPageCallback = function() {
console.log("Introduction Page");
console.log("Retrieving meta information from remote repository");
gui.clickButton(buttons.NextButton);
}
Controller.prototype.TargetDirectoryPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.LicenseAgreementPageCallback = function() {
console.log("Accept license agreement");
var widget = gui.currentPageWidget();
if (widget != null) {
widget.AcceptLicenseRadioButton.setChecked(true);
}
gui.clickButton(buttons.NextButton);
}
Controller.prototype.ObligationsPageCallback = function() {
console.log("Accept obligation agreement");
var page = gui.pageWidgetByObjectName("ObligationsPage");
page.obligationsAgreement.setChecked(true);
page.completeChanged();
gui.clickButton(buttons.NextButton);
}
Controller.prototype.ReadyForInstallationPageCallback = function() {
console.log("Ready to install");
gui.clickButton(buttons.CommitButton);
}
Controller.prototype.FinishedPageCallback = function() {
var widget = gui.currentPageWidget();
if (widget.LaunchQtCreatorCheckBoxForm) {
// No this form for minimal platform
widget.LaunchQtCreatorCheckBoxForm.launchQtCreatorCheckBox.setChecked(false);
}
gui.clickButton(buttons.FinishButton);
}
Controller.prototype.DynamicTelemetryPluginFormCallback = function() {
var page = gui.pageWidgetByObjectName("DynamicTelemetryPluginForm");
page.statisticGroupBox.disableStatisticRadioButton.setChecked(true);
gui.clickButton(buttons.NextButton);
}