summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2019-10-19 02:37:28 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-10-19 08:55:31 -0400
commit39203a7ebd2134f40f5d2c90d960fd31d48d1448 (patch)
tree74fa69433308be8b937ade85825fe0b70e6e061e
parentb652e5dd66db2b53d6faaa43ac26479ef7b388c6 (diff)
downloadsubsurface-39203a7ebd2134f40f5d2c90d960fd31d48d1448.tar.gz
GitHub Action: add iOS build
This is incredibly brute force, downloading a 3+GB installer and installing all of the Qt/iOS binaries. This first attempt is mainly to get an idea how long this will take and if this will fit within the size constraints of the build VM. This commit doesn't even try to build, yet. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--.github/workflows/ios.yml40
-rw-r--r--packaging/ios/qt-installer-noninteractive.qs60
2 files changed, 100 insertions, 0 deletions
diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml
new file mode 100644
index 000000000..316b2290c
--- /dev/null
+++ b/.github/workflows/ios.yml
@@ -0,0 +1,40 @@
+name: iOS
+on: push
+
+jobs:
+ mobileBuild:
+ runs-on: macOS-latest
+ steps:
+ - name: checkout sources
+ uses: actions/checkout@v1
+ - name: setup Homebrew
+ run: brew install autoconf automake libtool
+ - name: set our Qt build
+ run: |
+ env
+ curl -L --output qt-opensource-mac-x64-5.13.1.dmg https://download.qt.io/archive/qt/5.13/5.13.1/qt-opensource-mac-x64-5.13.1.dmg
+ df -h
+ mkdir -p mnt
+ sudo hdiutil attach -mountroot $PWD/mnt -noverify -noautoopen -verbose qt-opensource-mac-x64-5.13.1.dmg
+ df -h
+ ls -l mnt
+ find mnt
+ ./mnt/qt-opensource-mac-x64-5.13.1/qt-opensource-mac-x64-5.13.1.app/Contents/MacOS/qt-opensource-mac-x64-5.13.1 --platform minimal --script packaging/ios/qt-installer-noninteractive.qs --no-force-installations
+ df -h
+ - name: build Subsurface-mobile for iOS
+ run: |
+ ls -l $HOME $HOME/Qt
+ cd packaging/ios
+ ln -s $HOME/Qt Qt
+ pushd Qt
+ ls -l
+ popd
+ echo "build dependencies"
+ bash -x build.sh -simulator
+ echo "Subsurface-mobile for iOS"
+ cd build-Subsurface-mobile-*for_iOS-Release
+ sed -i.bak 's/-Wall/-Wno-everything/' Makefile # make the build far less verbose
+ make -j2
+
+
+
diff --git a/packaging/ios/qt-installer-noninteractive.qs b/packaging/ios/qt-installer-noninteractive.qs
new file mode 100644
index 000000000..5b1faa5ba
--- /dev/null
+++ b/packaging/ios/qt-installer-noninteractive.qs
@@ -0,0 +1,60 @@
+// http://stackoverflow.com/a/34032216/78204
+
+function Controller() {
+ installer.autoRejectMessageBoxes();
+ installer.setMessageBoxAutomaticAnswer("OverwriteTargetDirectory", QMessageBox.Yes);
+ installer.installationFinished.connect(function() {
+ gui.clickButton(buttons.NextButton);
+ })
+}
+
+Controller.prototype.WelcomePageCallback = function() {
+ gui.clickButton(buttons.NextButton,3000);
+}
+
+Controller.prototype.CredentialsPageCallback = function() {
+ gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.IntroductionPageCallback = function() {
+ gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.TargetDirectoryPageCallback = function()
+{
+ gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.value("HomeDir") + "/Qt");
+ //gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.value("InstallerDirPath") + "/Qt");
+ //gui.currentPageWidget().TargetDirectoryLineEdit.setText("/scratch/Qt");
+ gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.ComponentSelectionPageCallback = function() {
+ var widget = gui.currentPageWidget();
+
+ widget.deselectAll();
+ widget.selectComponent('qt.qt5.5131.ios');
+
+ 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);
+}