- Android port fixes for the Qt frontend

- Coded a small resource downloader in QML from the Qt frontend. It's completly useless for the moment and it's poorly integrated
- Various tweaking in the Qt project file for Symbian and Android
This commit is contained in:
Xawotihs
2011-12-20 23:11:27 +00:00
parent c74f22dae3
commit e5417319b8
7 changed files with 655 additions and 80 deletions
+60 -39
View File
@@ -1,6 +1,10 @@
#define GL_GLEXT_PROTOTYPES #define GL_GLEXT_PROTOTYPES
#include <QtOpenGL> #include <QtOpenGL>
#include <QTime> #include <QTime>
#include <QtGui/QApplication>
#include <QtDeclarative>
#include "qmlapplicationviewer.h"
#include "filedownloader.h"
#if (defined FORCE_GLES) #if (defined FORCE_GLES)
#undef GL_ES_VERSION_2_0 #undef GL_ES_VERSION_2_0
@@ -107,7 +111,7 @@ protected:
{ {
if (event->type() == QEvent::Gesture) if (event->type() == QEvent::Gesture)
return gestureEvent(static_cast<QGestureEvent*>(event)); return gestureEvent(static_cast<QGestureEvent*>(event));
#if (defined Q_WS_MAEMO_5) || (defined MEEGO_EDITION_HARMATTAN) #if (defined Q_WS_MAEMO_5) || (defined MEEGO_EDITION_HARMATTAN) || (defined Q_WS_ANDROID)
else if (event->type() == QEvent::WindowActivate) else if (event->type() == QEvent::WindowActivate)
{ {
JGE::GetInstance()->Resume(); JGE::GetInstance()->Resume();
@@ -165,7 +169,7 @@ protected:
bool timerStarted; bool timerStarted;
QRect viewPort; QRect viewPort;
#if (defined Q_WS_MAEMO_5) || (defined MEEGO_EDITION_HARMATTAN) #if (defined Q_WS_MAEMO_5) || (defined MEEGO_EDITION_HARMATTAN) || (defined Q_WS_ANDROID)
int mMouseDownX; int mMouseDownX;
int mMouseDownY; int mMouseDownY;
qint64 mLastFingerDownTime; qint64 mLastFingerDownTime;
@@ -398,7 +402,7 @@ void JGEQtRenderer::paintGL()
void JGEQtRenderer::timerEvent( QTimerEvent* ) void JGEQtRenderer::timerEvent( QTimerEvent* )
{ {
if(this->isVisible() if(this->isVisible()
#if (defined Q_WS_MAEMO_5) || (defined MEEGO_EDITION_HARMATTAN) #if (defined Q_WS_MAEMO_5) || (defined MEEGO_EDITION_HARMATTAN) || (defined Q_WS_ANDROID)
// This one is funny, this gives us 0% CPU when the app is in background for 1 line of code =) // This one is funny, this gives us 0% CPU when the app is in background for 1 line of code =)
&& this->isActiveWindow() && this->isActiveWindow()
#endif #endif
@@ -416,7 +420,9 @@ void JGEQtRenderer::timerEvent( QTimerEvent* )
g_engine->SetDelta((float)dt / 1000.0f); g_engine->SetDelta((float)dt / 1000.0f);
g_engine->Update((float)dt / 1000.0f); g_engine->Update((float)dt / 1000.0f);
updateGL(); // we stop rendering if the window is hidden
if(!isHidden())
updateGL();
} }
} }
@@ -444,7 +450,7 @@ void JGEQtRenderer::mousePressEvent(QMouseEvent *event)
g_engine->LeftClicked( g_engine->LeftClicked(
((lastPos.x()-viewPort.left())*SCREEN_WIDTH)/actualWidth, ((lastPos.x()-viewPort.left())*SCREEN_WIDTH)/actualWidth,
((lastPos.y()-viewPort.top())*SCREEN_HEIGHT)/actualHeight); ((lastPos.y()-viewPort.top())*SCREEN_HEIGHT)/actualHeight);
#if (!defined Q_WS_MAEMO_5) && (!defined MEEGO_EDITION_HARMATTAN) #if (!defined Q_WS_MAEMO_5) && (!defined MEEGO_EDITION_HARMATTAN) && (!defined Q_WS_ANDROID)
g_engine->HoldKey_NoRepeat(JGE_BTN_OK); g_engine->HoldKey_NoRepeat(JGE_BTN_OK);
#else #else
mMouseDownX = lastPos.x(); mMouseDownX = lastPos.x();
@@ -486,7 +492,7 @@ void JGEQtRenderer::mouseReleaseEvent(QMouseEvent *event)
lastPos.y() <= viewPort.bottom() && lastPos.y() <= viewPort.bottom() &&
lastPos.x() <= viewPort.right() && lastPos.x() <= viewPort.right() &&
lastPos.x() >= viewPort.left()) { lastPos.x() >= viewPort.left()) {
#if (defined Q_WS_MAEMO_5) || (defined MEEGO_EDITION_HARMATTAN) #if (defined Q_WS_MAEMO_5) || (defined MEEGO_EDITION_HARMATTAN) || (defined Q_WS_ANDROID)
if(g_startTimer.elapsed() - mLastFingerDownTime <= kTapEventTimeout ) if(g_startTimer.elapsed() - mLastFingerDownTime <= kTapEventTimeout )
{ {
if(abs(mMouseDownX - lastPos.x()) < kHitzonePliancy && if(abs(mMouseDownX - lastPos.x()) < kHitzonePliancy &&
@@ -629,7 +635,7 @@ void JGEQtRenderer::showEvent ( QShowEvent * event )
{ {
if(!timerStarted) if(!timerStarted)
{ {
#if (defined Q_WS_MAEMO_5) || (defined MEEGO_EDITION_HARMATTAN) #if (defined Q_WS_MAEMO_5) || (defined MEEGO_EDITION_HARMATTAN) || (defined Q_WS_ANDROID)
// 30 fps max on mobile // 30 fps max on mobile
timerId = startTimer(33); timerId = startTimer(33);
#else #else
@@ -642,61 +648,76 @@ void JGEQtRenderer::showEvent ( QShowEvent * event )
void JGEQtRenderer::hideEvent ( QHideEvent * event ) void JGEQtRenderer::hideEvent ( QHideEvent * event )
{ {
#if (defined Q_WS_MAEMO_5) || (defined MEEGO_EDITION_HARMATTAN) || (defined Q_WS_ANDROID)
if(timerStarted) if(timerStarted)
{ {
killTimer(timerId); killTimer(timerId);
timerStarted = false; timerStarted = false;
} }
#endif
} }
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
QApplication a( argc, argv ); QScopedPointer<QApplication> app(createApplication(argc, argv));
QDir::setCurrent(QCoreApplication::applicationDirPath () ); QDir::setCurrent(QCoreApplication::applicationDirPath () );
qDebug() << "Current path : " << QCoreApplication::applicationDirPath ();
qDebug() << "Current path : " << QCoreApplication::applicationDirPath (); QScopedPointer<QmlApplicationViewer> viewer(QmlApplicationViewer::create());
// FIXME with something actually useful
FileDownloader fileDownloader(QUrl("http://wagic.googlecode.com/files/wagic_0.16.0meego0_armel.deb"), "w00t.dat", 0);
g_launcher = new JGameLauncher(); if(!fileDownloader.isDone()){
viewer->setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
viewer->setMainQmlFile(QLatin1String("qml/QmlWagic/main.qml"));
viewer->rootContext()->setContextProperty("fileDownloader", &fileDownloader);
viewer->showExpanded();
u32 flags = g_launcher->GetInitFlags(); // FIXME we're actually have to close the QML app to start the native app...
app->exec();
}
if ((flags&JINIT_FLAG_ENABLE3D)!=0) g_launcher = new JGameLauncher();
{
JRenderer::Set3DFlag(true);
}
g_glwidget = new JGEQtRenderer(NULL); u32 flags = g_launcher->GetInitFlags();
g_glwidget->resize(ACTUAL_SCREEN_WIDTH, ACTUAL_SCREEN_HEIGHT);
a.setApplicationName(g_launcher->GetName()); if ((flags&JINIT_FLAG_ENABLE3D)!=0)
//a.setAutoSipEnabled(true); {
JRenderer::Set3DFlag(true);
}
#if (defined Q_WS_MAEMO_5) || (defined MEEGO_EDITION_HARMATTAN) g_glwidget = new JGEQtRenderer(NULL);
// We start in fullscreen on mobile g_glwidget->resize(ACTUAL_SCREEN_WIDTH, ACTUAL_SCREEN_HEIGHT);
g_glwidget->showFullScreen();
app->setApplicationName(g_launcher->GetName());
//a.setAutoSipEnabled(true);
#if (defined Q_WS_MAEMO_5) || (defined MEEGO_EDITION_HARMATTAN) || (defined Q_WS_ANDROID)
// We start in fullscreen on mobile
g_glwidget->showFullScreen();
#else #else
// not on desktop // not on desktop
g_glwidget->show(); g_glwidget->show();
#endif #endif
JGECreateDefaultBindings(); JGECreateDefaultBindings();
if (!InitGame()) if (!InitGame())
{ {
qCritical("Could not init the game\n"); qCritical("Could not init the game\n");
return 1; return 1;
} }
a.exec(); app->exec();
if (g_launcher) if (g_launcher)
delete g_launcher; delete g_launcher;
if(g_glwidget) if(g_glwidget)
delete g_glwidget; delete g_glwidget;
// Shutdown // Shutdown
DestroyGame(); DestroyGame();
return 0; return 0;
} }
+48
View File
@@ -0,0 +1,48 @@
import QtQuick 1.0
Rectangle {
id: progressbar
property int minimum: 0
property int maximum: 100
property int value: 0
width: 150
height: 80
radius: 10
gradient: Gradient {
GradientStop { id: gradient1; position: 0.0; color: "red" }
GradientStop { id: gradient2; position: 0.7; color: "blue" }
}
border.width: 2
border.color: "blue"
opacity: 0.7
smooth: true
clip: true
Rectangle {
id: highlight
property int widthDest: ((progressbar.width * (value - minimum)) / (maximum - minimum))
anchors { left: parent.left; top: parent.top; bottom: parent.bottom }
width: highlight.widthDest
radius: 10
gradient: Gradient {
GradientStop { id: gradient3; position: 0.0; color: "blue" }
GradientStop { id: gradient4; position: 0.7; color: "red" }
}
smooth: true
Behavior on width { SmoothedAnimation { velocity: 1200 } }
}
Text {
anchors { centerIn: progressbar }
color: "black"
font.pixelSize: 12
font.bold: true
text: Math.floor((value - minimum) / (maximum - minimum) * 100) + '%'
}
}
+43
View File
@@ -0,0 +1,43 @@
import QtQuick 1.0
Rectangle {
id: main
width: 360
height: 360
scale: 1
Column{
id: column1
x: -48
y: 0
width: 457
height: 374
anchors.horizontalCenterOffset: 1
scale: 1
anchors.horizontalCenter: parent.horizontalCenter
spacing: 35
Image {
id: logo
fillMode: Image.PreserveAspectFit
anchors.horizontalCenter: parent.horizontalCenter
source: "http://wololo.net/forum/styles/prosilver/imageset/site_logo.gif"
}
Text {
text: qsTr("Downloading resources")
anchors.horizontalCenter: parent.horizontalCenter
wrapMode: Text.WordWrap
}
ProgressBar {
id: progressbar
value: fileDownloader.received
anchors.horizontalCenter: parent.horizontalCenter
}
}
}
@@ -0,0 +1,174 @@
// checksum 0xee24 version 0x70013
/*
This file was generated by the Qt Quick Application wizard of Qt Creator.
QmlApplicationViewer is a convenience class containing mobile device specific
code such as screen orientation handling. Also QML paths and debugging are
handled here.
It is recommended not to modify this file, since newer versions of Qt Creator
may offer an updated version of it.
*/
#include "qmlapplicationviewer.h"
#include <QtCore/QDir>
#include <QtCore/QFileInfo>
#include <QtGui/QApplication>
#include <QtDeclarative/QDeclarativeComponent>
#include <QtDeclarative/QDeclarativeEngine>
#include <QtDeclarative/QDeclarativeContext>
#include <qplatformdefs.h> // MEEGO_EDITION_HARMATTAN
#ifdef HARMATTAN_BOOSTER
#include <MDeclarativeCache>
#endif
#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
#include <qt_private/qdeclarativedebughelper_p.h>
#if !defined(NO_JSDEBUGGER)
#include <jsdebuggeragent.h>
#endif
#if !defined(NO_QMLOBSERVER)
#include <qdeclarativeviewobserver.h>
#endif
// Enable debugging before any QDeclarativeEngine is created
struct QmlJsDebuggingEnabler
{
QmlJsDebuggingEnabler()
{
QDeclarativeDebugHelper::enableDebugging();
}
};
// Execute code in constructor before first QDeclarativeEngine is instantiated
static QmlJsDebuggingEnabler enableDebuggingHelper;
#endif // QMLJSDEBUGGER
class QmlApplicationViewerPrivate
{
QString mainQmlFile;
friend class QmlApplicationViewer;
static QString adjustPath(const QString &path);
};
QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
{
#ifdef Q_OS_UNIX
#ifdef Q_OS_MAC
if (!QDir::isAbsolutePath(path))
return QString::fromLatin1("%1/../Resources/%2")
.arg(QCoreApplication::applicationDirPath(), path);
#else
const QString pathInInstallDir =
QString::fromLatin1("%1/../%2").arg(QCoreApplication::applicationDirPath(), path);
if (QFileInfo(pathInInstallDir).exists())
return pathInInstallDir;
#endif
#endif
return path;
}
QmlApplicationViewer::QmlApplicationViewer(QWidget *parent)
: QDeclarativeView(parent)
, d(new QmlApplicationViewerPrivate())
{
connect(engine(), SIGNAL(quit()), SLOT(close()));
setResizeMode(QDeclarativeView::SizeRootObjectToView);
// Qt versions prior to 4.8.0 don't have QML/JS debugging services built in
#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800
#if !defined(NO_JSDEBUGGER)
new QmlJSDebugger::JSDebuggerAgent(engine());
#endif
#if !defined(NO_QMLOBSERVER)
new QmlJSDebugger::QDeclarativeViewObserver(this, this);
#endif
#endif
}
QmlApplicationViewer::~QmlApplicationViewer()
{
delete d;
}
QmlApplicationViewer *QmlApplicationViewer::create()
{
return new QmlApplicationViewer();
}
void QmlApplicationViewer::setMainQmlFile(const QString &file)
{
d->mainQmlFile = QmlApplicationViewerPrivate::adjustPath(file);
setSource(QUrl::fromLocalFile(d->mainQmlFile));
}
void QmlApplicationViewer::addImportPath(const QString &path)
{
engine()->addImportPath(QmlApplicationViewerPrivate::adjustPath(path));
}
void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
{
#if defined(Q_OS_SYMBIAN)
// If the version of Qt on the device is < 4.7.2, that attribute won't work
if (orientation != ScreenOrientationAuto) {
const QStringList v = QString::fromAscii(qVersion()).split(QLatin1Char('.'));
if (v.count() == 3 && (v.at(0).toInt() << 16 | v.at(1).toInt() << 8 | v.at(2).toInt()) < 0x040702) {
qWarning("Screen orientation locking only supported with Qt 4.7.2 and above");
return;
}
}
#endif // Q_OS_SYMBIAN
Qt::WidgetAttribute attribute;
switch (orientation) {
#if QT_VERSION < 0x040702
// Qt < 4.7.2 does not yet have the Qt::WA_*Orientation attributes
case ScreenOrientationLockPortrait:
attribute = static_cast<Qt::WidgetAttribute>(128);
break;
case ScreenOrientationLockLandscape:
attribute = static_cast<Qt::WidgetAttribute>(129);
break;
default:
case ScreenOrientationAuto:
attribute = static_cast<Qt::WidgetAttribute>(130);
break;
#else // QT_VERSION < 0x040702
case ScreenOrientationLockPortrait:
attribute = Qt::WA_LockPortraitOrientation;
break;
case ScreenOrientationLockLandscape:
attribute = Qt::WA_LockLandscapeOrientation;
break;
default:
case ScreenOrientationAuto:
attribute = Qt::WA_AutoOrientation;
break;
#endif // QT_VERSION < 0x040702
};
setAttribute(attribute, true);
}
void QmlApplicationViewer::showExpanded()
{
#if defined(Q_OS_SYMBIAN) || defined(MEEGO_EDITION_HARMATTAN) || defined(Q_WS_SIMULATOR)
showFullScreen();
#elif defined(Q_WS_MAEMO_5)
showMaximized();
#else
show();
#endif
}
QApplication *createApplication(int &argc, char **argv)
{
#ifdef HARMATTAN_BOOSTER
return MDeclarativeCache::qApplication(argc, argv);
#else
return new QApplication(argc, argv);
#endif
}
@@ -0,0 +1,46 @@
// checksum 0x898f version 0x70013
/*
This file was generated by the Qt Quick Application wizard of Qt Creator.
QmlApplicationViewer is a convenience class containing mobile device specific
code such as screen orientation handling. Also QML paths and debugging are
handled here.
It is recommended not to modify this file, since newer versions of Qt Creator
may offer an updated version of it.
*/
#ifndef QMLAPPLICATIONVIEWER_H
#define QMLAPPLICATIONVIEWER_H
#include <QtDeclarative/QDeclarativeView>
class QmlApplicationViewer : public QDeclarativeView
{
Q_OBJECT
public:
enum ScreenOrientation {
ScreenOrientationLockPortrait,
ScreenOrientationLockLandscape,
ScreenOrientationAuto
};
explicit QmlApplicationViewer(QWidget *parent = 0);
virtual ~QmlApplicationViewer();
static QmlApplicationViewer *create();
void setMainQmlFile(const QString &file);
void addImportPath(const QString &path);
// Note that this will only have an effect on Symbian and Fremantle.
void setOrientation(ScreenOrientation orientation);
void showExpanded();
private:
class QmlApplicationViewerPrivate *d;
};
QApplication *createApplication(int &argc, char **argv);
#endif // QMLAPPLICATIONVIEWER_H
@@ -0,0 +1,148 @@
# checksum 0x5b42 version 0x70013
# This file was generated by the Qt Quick Application wizard of Qt Creator.
# The code below adds the QmlApplicationViewer to the project and handles the
# activation of QML debugging.
# It is recommended not to modify this file, since newer versions of Qt Creator
# may offer an updated version of it.
QT += declarative
SOURCES += $$PWD/qmlapplicationviewer.cpp
HEADERS += $$PWD/qmlapplicationviewer.h
INCLUDEPATH += $$PWD
# Include JS debugger library if QMLJSDEBUGGER_PATH is set
!isEmpty(QMLJSDEBUGGER_PATH) {
include($$QMLJSDEBUGGER_PATH/qmljsdebugger-lib.pri)
} else {
DEFINES -= QMLJSDEBUGGER
}
contains(CONFIG,qdeclarative-boostable):contains(MEEGO_EDITION,harmattan) {
DEFINES += HARMATTAN_BOOSTER
}
# This file was generated by an application wizard of Qt Creator.
# The code below handles deployment to Symbian and Maemo, aswell as copying
# of the application data to shadow build directories on desktop.
# It is recommended not to modify this file, since newer versions of Qt Creator
# may offer an updated version of it.
defineTest(qtcAddDeployment) {
for(deploymentfolder, DEPLOYMENTFOLDERS) {
item = item$${deploymentfolder}
itemsources = $${item}.sources
$$itemsources = $$eval($${deploymentfolder}.source)
itempath = $${item}.path
$$itempath= $$eval($${deploymentfolder}.target)
export($$itemsources)
export($$itempath)
DEPLOYMENT += $$item
}
MAINPROFILEPWD = $$PWD
symbian {
isEmpty(ICON):exists($${TARGET}.svg):ICON = $${TARGET}.svg
isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
} else:win32 {
copyCommand =
for(deploymentfolder, DEPLOYMENTFOLDERS) {
source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
source = $$replace(source, /, \\)
sourcePathSegments = $$split(source, \\)
target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments)
target = $$replace(target, /, \\)
target ~= s,\\\\\\.?\\\\,\\,
!isEqual(source,$$target) {
!isEmpty(copyCommand):copyCommand += &&
isEqual(QMAKE_DIR_SEP, \\) {
copyCommand += $(COPY_DIR) \"$$source\" \"$$target\"
} else {
source = $$replace(source, \\\\, /)
target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
target = $$replace(target, \\\\, /)
copyCommand += test -d \"$$target\" || mkdir -p \"$$target\" && cp -r \"$$source\" \"$$target\"
}
}
}
!isEmpty(copyCommand) {
copyCommand = @echo Copying application data... && $$copyCommand
copydeploymentfolders.commands = $$copyCommand
first.depends = $(first) copydeploymentfolders
export(first.depends)
export(copydeploymentfolders.commands)
QMAKE_EXTRA_TARGETS += first copydeploymentfolders
}
} else:unix {
maemo5 {
desktopfile.files = $${TARGET}.desktop
desktopfile.path = /usr/share/applications/hildon
icon.files = $${TARGET}64.png
icon.path = /usr/share/icons/hicolor/64x64/apps
} else:!isEmpty(MEEGO_VERSION_MAJOR) {
desktopfile.files = $${TARGET}_harmattan.desktop
desktopfile.path = /usr/share/applications
icon.files = $${TARGET}80.png
icon.path = /usr/share/icons/hicolor/80x80/apps
} else { # Assumed to be a Desktop Unix
copyCommand =
for(deploymentfolder, DEPLOYMENTFOLDERS) {
source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
source = $$replace(source, \\\\, /)
macx {
target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target)
} else {
target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
}
target = $$replace(target, \\\\, /)
sourcePathSegments = $$split(source, /)
targetFullPath = $$target/$$last(sourcePathSegments)
targetFullPath ~= s,/\\.?/,/,
!isEqual(source,$$targetFullPath) {
!isEmpty(copyCommand):copyCommand += &&
copyCommand += $(MKDIR) \"$$target\"
copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\"
}
}
!isEmpty(copyCommand) {
copyCommand = @echo Copying application data... && $$copyCommand
copydeploymentfolders.commands = $$copyCommand
first.depends = $(first) copydeploymentfolders
export(first.depends)
export(copydeploymentfolders.commands)
QMAKE_EXTRA_TARGETS += first copydeploymentfolders
}
}
installPrefix = /opt/$${TARGET}
for(deploymentfolder, DEPLOYMENTFOLDERS) {
item = item$${deploymentfolder}
itemfiles = $${item}.files
$$itemfiles = $$eval($${deploymentfolder}.source)
itempath = $${item}.path
$$itempath = $${installPrefix}/$$eval($${deploymentfolder}.target)
export($$itemfiles)
export($$itempath)
INSTALLS += $$item
}
!isEmpty(desktopfile.path) {
export(icon.files)
export(icon.path)
export(desktopfile.files)
export(desktopfile.path)
INSTALLS += icon desktopfile
}
target.path = $${installPrefix}/bin
export(target.path)
INSTALLS += target
}
export (ICON)
export (INSTALLS)
export (DEPLOYMENT)
export (TARGET.EPOCHEAPSIZE)
export (TARGET.CAPABILITY)
export (LIBS)
export (QMAKE_EXTRA_TARGETS)
}
+136 -41
View File
@@ -1,45 +1,47 @@
#------------------------------------------------- # Add more folders to ship with the application, here
# folder_01.source = qml/QmlWagic
# Project created by QtCreator 2010-06-30T19:48:30 folder_01.target = qml
# DEPLOYMENTFOLDERS = folder_01
#-------------------------------------------------
QT += core gui opengl phonon TARGET = wagic
QT += core gui opengl network
!android:QT += phonon
maemo5:QT += dbus
#CONFIG += warn_off precompile_header // causes some massives errors on mac.
VERSION = 0.16.0
TARGET = wagic TARGET = wagic
TEMPLATE = app TEMPLATE = app
#!macx:CONFIG += precompile_header
unix|macx:QMAKE_CXXFLAGS += -Wno-unused-parameter unix|macx:QMAKE_CXXFLAGS += -Wno-unused-parameter
unix|macx:!maemo5:QMAKE_CXXFLAGS += -Werror unix|macx:!maemo5:!symbian:QMAKE_CXXFLAGS += -Werror
windows:DEFINES += WIN32 windows:DEFINES += WIN32
windows:DEFINES += _CRT_SECURE_NO_WARNINGS windows:DEFINES += _CRT_SECURE_NO_WARNINGS
unix|macx:DEFINES += LINUX unix|macx:DEFINES += LINUX
CONFIG(debug, debug|release):DEFINES += _DEBUG CONFIG(debug, debug|release):DEFINES += _DEBUG
DEFINES += QT_CONFIG DEFINES += QT_CONFIG
DEFINES += USE_PHONON !android:DEFINES += USE_PHONON
maemo5 { DEFINES += QT_NO_DEBUG_OUTPUT
QT += dbus
}
windows:INCLUDEPATH += ../../JGE/Dependencies/include windows:INCLUDEPATH += ../../JGE/Dependencies/include
windows:INCLUDEPATH += extra windows:INCLUDEPATH += extra
unix:!symbian:INCLUDEPATH += /usr/include/GL unix:!symbian:INCLUDEPATH += /usr/include/GL
macx:INCLUDEPATH += /opt/include macx:INCLUDEPATH += /opt/include
INCLUDEPATH += ../../JGE/include/qt
INCLUDEPATH += ../../JGE/include INCLUDEPATH += ../../JGE/include
INCLUDEPATH += ../../JGE/src/zipFS INCLUDEPATH += ../../JGE/src/zipFS
INCLUDEPATH += ../../Boost INCLUDEPATH += ../../Boost
INCLUDEPATH += include INCLUDEPATH += include
OBJECTS_DIR = objs !symbian:DESTDIR = bin
MOC_DIR = objs
DESTDIR = bin
symbian:DEFINES += FORCE_GLES
symbian:DEFINES += QT_OPENGL_ES_1
unix:LIBS += -lz unix:!symbian:LIBS += -lz
PRECOMPILED_HEADER = include/PrecompiledHeader.h PRECOMPILED_HEADER = include/PrecompiledHeader.h
# MGT #DEFINES += TESTSUITE
#DEFINES += TRACK_OBJECT_USAGE
DEFINES += AI_CHANGE_TESTING
#DEFINES += ACTION_LOGGING_TESTING
SOURCES += \ SOURCES += \
src/AbilityParser.cpp\ src/AbilityParser.cpp\
src/ActionElement.cpp\ src/ActionElement.cpp\
@@ -48,7 +50,7 @@ SOURCES += \
src/AIHints.cpp\ src/AIHints.cpp\
src/AIMomirPlayer.cpp\ src/AIMomirPlayer.cpp\
src/AIPlayer.cpp\ src/AIPlayer.cpp\
src/AIPlayerBaka.cpp\ src/AIPlayerBaka.cpp\
src/AIStats.cpp\ src/AIStats.cpp\
src/AllAbilities.cpp\ src/AllAbilities.cpp\
src/CardDescriptor.cpp\ src/CardDescriptor.cpp\
@@ -57,7 +59,6 @@ SOURCES += \
src/CardGui.cpp\ src/CardGui.cpp\
src/CardPrimitive.cpp\ src/CardPrimitive.cpp\
src/CardSelector.cpp\ src/CardSelector.cpp\
src/CardSelectorSingleton.cpp\
src/Closest.cpp\ src/Closest.cpp\
src/Counters.cpp\ src/Counters.cpp\
src/Credits.cpp\ src/Credits.cpp\
@@ -146,12 +147,26 @@ SOURCES += \
src/WFilter.cpp\ src/WFilter.cpp\
src/WFont.cpp\ src/WFont.cpp\
src/WGui.cpp\ src/WGui.cpp\
src/WResourceManager.cpp src/WResourceManager.cpp \
src/GameSerializer.cpp \
src/AIPlayerBakaB.cpp
CONFIG(debug, debug|release):SOURCES += src/TestSuiteAI.cpp CONFIG(debug, debug|release):
SOURCES += src/TestSuiteAI.cpp
HEADERS += \ HEADERS += \
include/CacheEngine.h\
include/AllAbilities.h\ include/AllAbilities.h\
include/AbilityParser.h\
include/PrecompiledHeader.h\
include/WResource_Fwd.h\
include/PlayRestrictions.h\
include/ModRules.h\
include/AIHints.h\
include/AIPlayerBaka.h\
include/AIPlayerBakaB.h\
include/DeckEditorMenu.h\
include/WResourceManagerImpl.h\
include/DeckMenu.h\ include/DeckMenu.h\
include/DeckMenuItem.h\ include/DeckMenuItem.h\
include/ExtraCost.h\ include/ExtraCost.h\
@@ -209,7 +224,6 @@ HEADERS += \
include/OSD.h\ include/OSD.h\
include/Translate.h\ include/Translate.h\
include/CardSelector.h\ include/CardSelector.h\
include/CardSelectorSingleton.h\
include/GuiBackground.h\ include/GuiBackground.h\
include/PhaseRing.h\ include/PhaseRing.h\
include/TranslateKeys.h\ include/TranslateKeys.h\
@@ -253,10 +267,12 @@ HEADERS += \
include/DeckManager.h\ include/DeckManager.h\
include/SimplePopup.h\ include/SimplePopup.h\
include/SimpleMenu.h\ include/SimpleMenu.h\
include/ObjectAnalytics.h include/ObjectAnalytics.h \
include/GameSerializer.h
# JGE, could probably be moved outside # JGE, could probably be moved outside
SOURCES += \ SOURCES += \
../../JGE/src/qt/filedownloader.cpp\
../../JGE/src/Qtmain.cpp\ ../../JGE/src/Qtmain.cpp\
../../JGE/src/Encoding.cpp\ ../../JGE/src/Encoding.cpp\
../../JGE/src/JAnimator.cpp\ ../../JGE/src/JAnimator.cpp\
@@ -288,13 +304,15 @@ SOURCES += \
../../JGE/src/hge/hgeparticle.cpp\ ../../JGE/src/hge/hgeparticle.cpp\
../../JGE/src/hge/hgerect.cpp\ ../../JGE/src/hge/hgerect.cpp\
../../JGE/src/hge/hgevector.cpp\ ../../JGE/src/hge/hgevector.cpp\
../../JGE/src/zipFS/zfsystem.cpp\ ../../JGE/src/zipFS/zfsystem.cpp\
../../JGE/src/zipFS/ziphdr.cpp\ ../../JGE/src/zipFS/ziphdr.cpp\
../../JGE/src/zipFS/zstream.cpp\ ../../JGE/src/zipFS/zstream.cpp\
../../JGE/src/pc/JSfx.cpp\ ../../JGE/src/pc/JSfx.cpp\
../../JGE/src/pc/JGfx.cpp ../../JGE/src/pc/JGfx.cpp
HEADERS += \ HEADERS += \
../../JGE/include/qt/filedownloader.h\
../../JGE/include/Threading.h\
../../JGE/include/decoder_prx.h\ ../../JGE/include/decoder_prx.h\
../../JGE/include/DebugRoutines.h\ ../../JGE/include/DebugRoutines.h\
../../JGE/include/Encoding.h\ ../../JGE/include/Encoding.h\
@@ -328,10 +346,28 @@ HEADERS += \
../../JGE/include/Vector2D.h\ ../../JGE/include/Vector2D.h\
../../JGE/include/Vector3D.h\ ../../JGE/include/Vector3D.h\
../../JGE/include/vram.h\ ../../JGE/include/vram.h\
../../JGE/include/hge/hgecolor.h\
../../JGE/include/hge/hgedistort.h\
../../JGE/include/hge/hgefont.h\
../../JGE/include/hge/hgeparticle.h\
../../JGE/include/hge/hgerect.h\
../../JGE/include/hge/hgevector.h\
../../JGE/src/unzip/unzip.h\
../../JGE/src/unzip/ioapi.h\
../../JGE/src/zipFS/zstream_zlib.h\
../../JGE/src/zipFS/zfsystem.h\
../../JGE/src/zipFS/zstream.h\
../../JGE/src/zipFS/ziphdr.h\
../../JGE/src/zipFS/stdafx.h\
../../JGE/src/zipFS/fileio.h\
../../JGE/src/tinyxml/tinystr.h\ ../../JGE/src/tinyxml/tinystr.h\
../../JGE/src/tinyxml/tinyxml.h\ ../../JGE/src/tinyxml/tinyxml.h\
../../JGE/include/vram.h ../../JGE/include/vram.h
# Please do not modify the following two lines. Required for deployment.
include(qml/qmlapplicationviewer/qmlapplicationviewer.pri)
qtcAddDeployment()
# maemo 5 packaging # maemo 5 packaging
maemo5: { maemo5: {
# Variables # Variables
@@ -364,16 +400,9 @@ maemo5: {
launcher.path = $$BINDIR launcher.path = $$BINDIR
launcher.files += debian/launcher launcher.files += debian/launcher
}
# Meego/maemo 6 packaging (no launcher) # Meego/maemo 6 packaging (no launcher)
#unix:!symbian:!maemo5 { } else:contains(MEEGO_EDITION,harmattan): {
exists($$QMAKE_INCDIR_QT"/../qmsystem2/qmkeys.h"):!contains(MEEGO_EDITION,harmattan): {
MEEGO_VERSION_MAJOR = 1
MEEGO_VERSION_MINOR = 2
MEEGO_VERSION_PATCH = 0
MEEGO_EDITION = harmattan
DEFINES += MEEGO_EDITION_HARMATTAN
# Variables # Variables
BINDIR = /opt/wagic/bin BINDIR = /opt/wagic/bin
@@ -443,10 +472,76 @@ exists($$QMAKE_INCDIR_QT"/../qmsystem2/qmkeys.h"):!contains(MEEGO_EDITION,harmat
res_themes.path = $$RESDIR/themes res_themes.path = $$RESDIR/themes
res_themes.files += bin/Res/themes/* res_themes.files += bin/Res/themes/*
} else:symbian {
TARGET.UID3 = 0xE1D807D3
# Smart Installer package's UID
# This UID is from the protected range
# and therefore the package will fail to install if self-signed
# By default qmake uses the unprotected range value if unprotected UID is defined for the application
# and 0x2002CCCF value if protected UID is given to the application
#symbian:DEPLOYMENT.installer_header = 0x2002CCCF
# Allow network access on Symbian... that's probably pointless
TARGET.CAPABILITY += NetworkServices
RESDIR = some/res/dir
USERDIR = some/user/dir
DEFINES += RESDIR=\"$$RESDIR\"
DEFINES += USERDIR=\"$$USERDIR\"
} else:android {
DEFINES += Q_WS_ANDROID
RESDIR = Res
USERDIR = /sdcard/Wagic/Res
DEFINES += RESDIR=\\\"$$RESDIR\\\"
DEFINES += USERDIR=\\\"$$USERDIR\\\"
} else:unix { } else:unix {
RESDIR = Res RESDIR = Res
USERDIR = ~/.Wagic USERDIR = ~/.Wagic
DEFINES += RESDIR=\\\"$$RESDIR\\\" DEFINES += RESDIR=\\\"$$RESDIR\\\"
DEFINES += USERDIR=\\\"$$USERDIR\\\" DEFINES += USERDIR=\\\"$$USERDIR\\\"
} else:windows {
RESDIR = ./Res
USERDIR = ./user
DEFINES += RESDIR=\\\"$$RESDIR\\\"
DEFINES += USERDIR=\\\"$$USERDIR\\\"
} }
OTHER_FILES += \
android/AndroidManifest.xml \
android/res/layout/splash.xml \
android/res/values-ru/strings.xml \
android/res/values-it/strings.xml \
android/res/values/strings.xml \
android/res/values/libs.xml \
android/res/values-id/strings.xml \
android/res/values-rs/strings.xml \
android/res/values-nl/strings.xml \
android/res/values-zh-rCN/strings.xml \
android/res/values-ro/strings.xml \
android/res/drawable-ldpi/icon.png \
android/res/drawable-mdpi/icon.png \
android/res/values-et/strings.xml \
android/res/values-fr/strings.xml \
android/res/values-ja/strings.xml \
android/res/values-el/strings.xml \
android/res/values-pt-rBR/strings.xml \
android/res/values-fa/strings.xml \
android/res/drawable/logo.png \
android/res/drawable/icon.png \
android/res/values-nb/strings.xml \
android/res/values-ms/strings.xml \
android/res/values-de/strings.xml \
android/res/values-zh-rTW/strings.xml \
android/res/values-pl/strings.xml \
android/res/drawable-hdpi/icon.png \
android/src/org/kde/necessitas/origo/QtApplication.java \
android/src/org/kde/necessitas/origo/QtActivity.java \
android/src/org/kde/necessitas/ministro/IMinistroCallback.aidl \
android/src/org/kde/necessitas/ministro/IMinistro.aidl