iOS build: add various support files

It's unclear why the build fails if we don't add the sample app files as
well.

[Dirk Hohndel: refactored the patches]

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Tomaz Canabrava 2016-03-06 06:46:26 -08:00 committed by Dirk Hohndel
parent 74e6e0ed37
commit 710b3615fe
9 changed files with 357 additions and 106 deletions

View file

@ -1,106 +0,0 @@
#!/bin/sh
set -e
usage () {
echo "Usage: [VARIABLE...] $(basename $0) architecture"
echo ""
echo " architecture Target architecture. [armv7|armv7s|arm64|i386|x86_64]"
echo ""
echo " VARIABLEs are:"
echo " SDKVERSION Target a specific SDK version."
echo " PREFIX Custom install prefix, useful for local installs."
echo " CHOST Configure host, set if not deducable by ARCH."
echo " SDK SDK target, set if not deducable by ARCH. [iphoneos|iphonesimulator]"
echo ""
echo " CFLAGS CPPFLAGS CXXFLAGS LDFLAGS PKG_CONFIG_PATH"
echo ""
echo " All additional parameters are passed to the configure script."
exit 1
}
# Sanity checks
if [ "$#" -lt 1 ]; then
echo "Please supply an architecture name."
usage
fi
if [ ! -x "./configure" ] ; then
echo "No configure script found."
usage
fi
# Build architecture
export ARCH=$1
# Export supplied CHOST or deduce by ARCH
if [ ! -z "$CHOST" ]; then
export CHOST
else
case $ARCH in
armv7 | armv7s )
export CHOST=arm-apple-darwin*
;;
arm64 )
export CHOST=aarch64-apple-darwin*
;;
i386 | x86_64 )
export CHOST=$ARCH-apple-darwin*
;;
* )
usage
;;
esac
fi
# Export supplied SDK or deduce by ARCH
if [ ! -z "$SDK" ]; then
export SDK
else
case $ARCH in
armv7 | armv7s | arm64 )
export SDK=iphoneos
;;
i386 | x86_64 )
export SDK=iphonesimulator
;;
* )
usage
;;
esac
fi
# Export supplied SDKVERSION or use system default
if [ ! -z "$SDKVERSION" ]; then
SDKNAME=$(basename $(xcrun --sdk $SDK --show-sdk-platform-path) .platform)
export SDKVERSION
export SDKROOT=$(xcrun --sdk $SDK --show-sdk-platform-path)"/Developer/SDKs/$SDKNAME.$SDKVERSION.sdk"
else
export SDKVERSION=$(xcrun --sdk $SDK --show-sdk-version) # current version
export SDKROOT=$(xcrun --sdk $SDK --show-sdk-path) # current version
fi
export PREFIX
# Binaries
export CC=$(xcrun --sdk $SDK --find gcc)
export CPP=$(xcrun --sdk $SDK --find gcc)" -E"
export CXX=$(xcrun --sdk $SDK --find g++)
export LD=$(xcrun --sdk $SDK --find ld)
# Flags
export CFLAGS="$CFLAGS -arch $ARCH -isysroot $SDKROOT -I$PREFIX/include -miphoneos-version-min=$SDKVERSION"
export CPPFLAGS="$CPPFLAGS -arch $ARCH -isysroot $SDKROOT -I$PREFIX/include -miphoneos-version-min=$SDKVERSION"
export CXXFLAGS="$CXXFLAGS -arch $ARCH -isysroot $SDKROOT -I$PREFIX/include"
export LDFLAGS="$LDFLAGS -arch $ARCH -isysroot $SDKROOT -L$PREFIX/lib"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH":"$SDKROOT/usr/lib/pkgconfig":"$PREFIX/lib/pkgconfig"
# Remove script parameters
shift 1
# Run configure
./configure \
--prefix="$PREFIX" \
--host="$CHOST" \
--enable-static \
--disable-shared \
$@

View file

@ -0,0 +1,13 @@
unix:!android {
isEmpty(target.path) {
qnx {
target.path = /tmp/$${TARGET}/bin
} else {
target.path = /opt/$${TARGET}/bin
}
export(target.path)
}
INSTALLS += target
}
export(INSTALLS)

View file

@ -0,0 +1,20 @@
INCLUDE(CMakeForceCompiler)
SET (CMAKE_CROSSCOMPILING TRUE)
SET (CMAKE_SYSTEM_NAME "Darwin")
SET (CMAKE_SYSTEM_PROCESSOR "arm")
SET (CMAKE_OSX_SYSROOT "$ENV{PLATFORM_DIR}")
SET (CMAKE_C_COMPILER $ENV{CC})
SET (CMAKE_CXX_COMPILER $ENV{CXX})
SET (CMAKE_FIND_ROOT_PATH "$ENV{SDK_DIR}" "$ENV{PLATFORM_DIR}")
SET (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
MESSAGE (STATUS "PLATFORM_DIR = $ENV{PLATFORM_DIR}")
MESSAGE (STATUS "SDK_DIR = $ENV{SDK_DIR}")
MESSAGE (STATUS "CC = $ENV{CC}")
MESSAGE (STATUS "CXX = $ENV{CXX}")
MESSAGE (STATUS "LD = $ENV{LD}")

View file

@ -0,0 +1,20 @@
INCLUDE(CMakeForceCompiler)
SET (CMAKE_CROSSCOMPILING TRUE)
SET (CMAKE_SYSTEM_NAME "Darwin")
SET (CMAKE_SYSTEM_PROCESSOR "i386")
SET (CMAKE_OSX_SYSROOT "$ENV{PLATFORM_DIR}")
SET (CMAKE_C_COMPILER $ENV{CC})
SET (CMAKE_CXX_COMPILER $ENV{CXX})
SET (CMAKE_FIND_ROOT_PATH "$ENV{SDK_DIR}" "$ENV{PLATFORM_DIR}")
SET (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
MESSAGE (STATUS "PLATFORM_DIR = $ENV{PLATFORM_DIR}")
MESSAGE (STATUS "SDK_DIR = $ENV{SDK_DIR}")
MESSAGE (STATUS "CC = $ENV{CC}")
MESSAGE (STATUS "CXX = $ENV{CXX}")
MESSAGE (STATUS "LD = $ENV{LD}")

View file

@ -0,0 +1,25 @@
import QtQuick 2.6
import QtQuick.Controls 1.5
import QtQuick.Layouts 1.3
Item {
width: 640
height: 480
property alias button1: button1
property alias button2: button2
RowLayout {
anchors.centerIn: parent
Button {
id: button1
text: qsTr("Press Me 1")
}
Button {
id: button2
text: qsTr("Press Me 2")
}
}
}

View file

@ -0,0 +1,13 @@
unix:!android {
isEmpty(target.path) {
qnx {
target.path = /tmp/$${TARGET}/bin
} else {
target.path = /opt/$${TARGET}/bin
}
export(target.path)
}
INSTALLS += target
}
export(INSTALLS)

View file

@ -0,0 +1,40 @@
import QtQuick 2.6
import QtQuick.Controls 1.5
import QtQuick.Dialogs 1.2
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
menuBar: MenuBar {
Menu {
title: qsTr("File")
MenuItem {
text: qsTr("&Open")
onTriggered: console.log("Open action triggered");
}
MenuItem {
text: qsTr("Exit")
onTriggered: Qt.quit();
}
}
}
MainForm {
anchors.fill: parent
button1.onClicked: messageDialog.show(qsTr("Button 1 pressed"))
button2.onClicked: messageDialog.show(qsTr("Button 2 pressed"))
}
MessageDialog {
id: messageDialog
title: qsTr("May I have your attention, please?")
function show(caption) {
messageDialog.text = caption;
messageDialog.open();
}
}
}

View file

@ -0,0 +1,6 @@
<RCC>
<qresource prefix="/">
<file>main.qml</file>
<file>MainForm.ui.qml</file>
</qresource>
</RCC>

View file

@ -0,0 +1,220 @@
TEMPLATE = app
QT += qml quick widgets positioning concurrent
DEFINES += SUBSURFACE_MOBILE
CONFIG += c++11
SOURCES += ../../../subsurface-mobile-main.cpp \
../../../subsurface-mobile-helper.cpp \
../../../subsurface-core/cloudstorage.cpp \
../../../subsurface-core/configuredivecomputerthreads.cpp \
../../../subsurface-core/devicedetails.cpp \
../../../subsurface-core/gpslocation.cpp \
../../../subsurface-core/imagedownloader.cpp \
../../../subsurface-core/qthelper.cpp \
../../../subsurface-core/checkcloudconnection.cpp \
../../../subsurface-core/color.cpp \
../../../subsurface-core/configuredivecomputer.cpp \
../../../subsurface-core/divecomputer.cpp \
../../../subsurface-core/divelogexportlogic.cpp \
../../../subsurface-core/divesite.cpp \
../../../subsurface-core/divesitehelpers.cpp \
../../../subsurface-core/exif.cpp \
../../../subsurface-core/gettextfromc.cpp \
../../../subsurface-core/isocialnetworkintegration.cpp \
../../../subsurface-core/metrics.cpp \
../../../subsurface-core/pluginmanager.cpp \
../../../subsurface-core/qt-init.cpp \
../../../subsurface-core/subsurfacesysinfo.cpp \
../../../subsurface-core/windowtitleupdate.cpp \
../../../subsurface-core/file.c \
../../../subsurface-core/subsurfacestartup.c \
../../../subsurface-core/macos.c \
../../../subsurface-core/profile.c \
../../../subsurface-core/device.c \
../../../subsurface-core/dive.c \
../../../subsurface-core/divelist.c \
../../../subsurface-core/gas-model.c \
../../../subsurface-core/gaspressures.c \
../../../subsurface-core/git-access.c \
../../../subsurface-core/liquivision.c \
../../../subsurface-core/load-git.c \
../../../subsurface-core/parse-xml.c \
../../../subsurface-core/save-html.c \
../../../subsurface-core/statistics.c \
../../../subsurface-core/worldmap-save.c \
../../../subsurface-core/libdivecomputer.c \
../../../subsurface-core/version.c \
../../../subsurface-core/save-git.c \
../../../subsurface-core/datatrak.c \
../../../subsurface-core/ostctools.c \
../../../subsurface-core/planner.c \
../../../subsurface-core/save-xml.c \
../../../subsurface-core/cochran.c \
../../../subsurface-core/deco.c \
../../../subsurface-core/divesite.c \
../../../subsurface-core/equipment.c \
../../../subsurface-core/membuffer.c \
../../../subsurface-core/sha1.c \
../../../subsurface-core/strtod.c \
../../../subsurface-core/taxonomy.c \
../../../subsurface-core/time.c \
../../../subsurface-core/uemis.c \
../../../subsurface-core/subsurface-qt/DiveObjectHelper.cpp \
../../../subsurface-core/subsurface-qt/SettingsObjectWrapper.cpp \
../../../qt-mobile/qmlmanager.cpp \
../../../qt-mobile/qmlprofile.cpp \
../../../qt-models/cylindermodel.cpp \
../../../qt-models/divelistmodel.cpp \
../../../qt-models/diveplotdatamodel.cpp \
../../../qt-models/gpslistmodel.cpp \
../../../qt-models/yearlystatisticsmodel.cpp \
../../../qt-models/diveplannermodel.cpp \
../../../qt-models/cleanertablemodel.cpp \
../../../qt-models/completionmodels.cpp \
../../../qt-models/divecomputerextradatamodel.cpp \
../../../qt-models/divecomputermodel.cpp \
../../../qt-models/divelocationmodel.cpp \
../../../qt-models/divepicturemodel.cpp \
../../../qt-models/divesitepicturesmodel.cpp \
../../../qt-models/divetripmodel.cpp \
../../../qt-models/filtermodels.cpp \
../../../qt-models/models.cpp \
../../../qt-models/tankinfomodel.cpp \
../../../qt-models/treemodel.cpp \
../../../qt-models/weightmodel.cpp \
../../../qt-models/weigthsysteminfomodel.cpp \
../../../qt-models/ssrfsortfilterproxymodel.cpp \
../../../profile-widget/divecartesianaxis.cpp \
../../../profile-widget/diveeventitem.cpp \
../../../profile-widget/diveprofileitem.cpp \
../../../profile-widget/profilewidget2.cpp \
../../../profile-widget/ruleritem.cpp \
../../../profile-widget/animationfunctions.cpp \
../../../profile-widget/divepixmapitem.cpp \
../../../profile-widget/divetooltipitem.cpp \
../../../profile-widget/tankitem.cpp \
../../../profile-widget/divelineitem.cpp \
../../../profile-widget/diverectitem.cpp \
../../../profile-widget/divetextitem.cpp
RESOURCES += qml.qrc ../../../subsurface.qrc ../../../qt-mobile/qml/mobile-resources.qrc
LIBS += ../install-root/lib/libcrypto.a \
../install-root/lib/libdivecomputer.a \
../install-root/lib/libgit2.a \
../install-root/lib/libsqlite3.a \
../install-root/lib/libzip.a \
../install-root/lib/libxslt.a \
../install-root/lib/libxml2.a \
../install-root/lib/libssh2.a \
../install-root/lib/libssl.a \
-liconv
INCLUDEPATH += ../install-root/include/ \
../install-root/lib/libzip/include \
../install-root/include/libxml2 \
../install-root/include/libxstl \
../install-root/include/libexstl \
../install-root/include/openssl \
../../.. \
../../../subsurface-core
HEADERS += \
../../../subsurface-core/libdivecomputer.h \
../../../subsurface-core/cloudstorage.h \
../../../subsurface-core/configuredivecomputerthreads.h \
../../../subsurface-core/device.h \
../../../subsurface-core/devicedetails.h \
../../../subsurface-core/dive.h \
../../../subsurface-core/git-access.h \
../../../subsurface-core/gpslocation.h \
../../../subsurface-core/helpers.h \
../../../subsurface-core/imagedownloader.h \
../../../subsurface-core/pref.h \
../../../subsurface-core/profile.h \
../../../subsurface-core/qthelper.h \
../../../subsurface-core/save-html.h \
../../../subsurface-core/statistics.h \
../../../subsurface-core/units.h \
../../../subsurface-core/qthelperfromc.h \
../../../subsurface-core/version.h \
../../../subsurface-core/planner.h \
../../../subsurface-core/divesite.h \
../../../subsurface-core/checkcloudconnection.h \
../../../subsurface-core/cochran.h \
../../../subsurface-core/color.h \
../../../subsurface-core/configuredivecomputer.h \
../../../subsurface-core/datatrak.h \
../../../subsurface-core/deco.h \
../../../subsurface-core/display.h \
../../../subsurface-core/divecomputer.h \
../../../subsurface-core/divelist.h \
../../../subsurface-core/divelogexportlogic.h \
../../../subsurface-core/divesitehelpers.h \
../../../subsurface-core/exif.h \
../../../subsurface-core/file.h \
../../../subsurface-core/gaspressures.h \
../../../subsurface-core/gettext.h \
../../../subsurface-core/gettextfromc.h \
../../../subsurface-core/isocialnetworkintegration.h \
../../../subsurface-core/membuffer.h \
../../../subsurface-core/metrics.h \
../../../subsurface-core/pluginmanager.h \
../../../subsurface-core/prefs-macros.h \
../../../subsurface-core/qt-gui.h \
../../../subsurface-core/sha1.h \
../../../subsurface-core/strndup.h \
../../../subsurface-core/subsurfacestartup.h \
../../../subsurface-core/subsurfacesysinfo.h \
../../../subsurface-core/taxonomy.h \
../../../subsurface-core/uemis.h \
../../../subsurface-core/webservice.h \
../../../subsurface-core/windowtitleupdate.h \
../../../subsurface-core/worldmap-options.h \
../../../subsurface-core/worldmap-save.h \
../../../subsurface-core/subsurface-qt/DiveObjectHelper.h \
../../../subsurface-core/subsurface-qt/SettingsObjectWrapper.h \
../../../qt-mobile/qmlmanager.h \
../../../qt-mobile/qmlprofile.h \
../../../qt-models/divelistmodel.h \
../../../qt-models/diveplotdatamodel.h \
../../../qt-models/gpslistmodel.h \
../../../qt-models/divelocationmodel.h \
../../../qt-models/cylindermodel.h \
../../../qt-models/divecomputermodel.h \
../../../qt-models/diveplannermodel.h \
../../../qt-models/divetripmodel.h \
../../../qt-models/models.h \
../../../qt-models/weightmodel.h \
../../../qt-models/cleanertablemodel.h \
../../../qt-models/divepicturemodel.h \
../../../qt-models/ssrfsortfilterproxymodel.h \
../../../qt-models/divesitepicturesmodel.h \
../../../qt-models/completionmodels.h \
../../../qt-models/weigthsysteminfomodel.h \
../../../qt-models/divecomputerextradatamodel.h \
../../../qt-models/filtermodels.h \
../../../qt-models/tankinfomodel.h \
../../../qt-models/treemodel.h \
../../../qt-models/yearlystatisticsmodel.h \
../../../profile-widget/diveprofileitem.h \
../../../profile-widget/profilewidget2.h \
../../../profile-widget/ruleritem.h \
../../../profile-widget/diveeventitem.h \
../../../profile-widget/divetooltipitem.h \
../../../profile-widget/tankitem.h \
../../../profile-widget/animationfunctions.h \
../../../profile-widget/divecartesianaxis.h \
../../../profile-widget/divelineitem.h \
../../../profile-widget/divepixmapitem.h \
../../../profile-widget/diverectitem.h \
../../../profile-widget/divetextitem.h
# Additional import path used to resolve QML modules in Qt Creator's code model
QML_IMPORT_PATH =
# Default rules for deployment.
include(deployment.pri)