diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2019-10-19 02:37:28 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2019-10-19 08:55:31 -0400 |
commit | 39203a7ebd2134f40f5d2c90d960fd31d48d1448 (patch) | |
tree | 74fa69433308be8b937ade85825fe0b70e6e061e | |
parent | b652e5dd66db2b53d6faaa43ac26479ef7b388c6 (diff) | |
download | subsurface-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.yml | 40 | ||||
-rw-r--r-- | packaging/ios/qt-installer-noninteractive.qs | 60 |
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); +} |