1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-25 22:42:04 +02:00

Fix mxe build

This commit is contained in:
nordsoft
2022-11-13 05:22:19 +04:00
parent a45fb910af
commit b2b9cacac2
2 changed files with 108 additions and 109 deletions

View File

@@ -21,17 +21,16 @@
#if __has_include("QIOSIntegrationPlugin.h") #if __has_include("QIOSIntegrationPlugin.h")
#include "QIOSIntegrationPlugin.h" #include "QIOSIntegrationPlugin.h"
#endif #endif
int argcForClient;
char ** argvForClient;
#endif #endif
int __argc;
char ** __argv;
int main(int argc, char * argv[]) int main(int argc, char * argv[])
{ {
int result; int result;
#ifdef VCMI_IOS #ifdef VCMI_IOS
__argc = argc; argcForClient = argc;
__argv = argv; argvForClient = argv;
{ {
#endif #endif
QApplication vcmilauncher(argc, argv); QApplication vcmilauncher(argc, argv);
@@ -48,18 +47,18 @@ int main(int argc, char * argv[])
void startGame(const QStringList & args) void startGame(const QStringList & args)
{ {
__argc = args.size() + 1; //first argument is omitted logGlobal->warn("Starting game with the arguments: %s", args.join(" ").toStdString());
__argv = new char*[__argc];
__argv[0] = new char[strlen("vcmi")]; #ifdef Q_OS_IOS
strcpy(__argv[0], "vcmi"); argcForClient = args.size() + 1; //first argument is omitted
for(int i = 1; i < __argc; ++i) argvForClient = new char*[argcForClient];
argvForClient[0] = "vcmiclient";
for(int i = 1; i < argcForClient; ++i)
{ {
const char * s = args[i - 1].toLocal8Bit().constData(); const char * s = args[i - 1].toLocal8Bit().constData();
__argv[i] = new char[strlen(s)]; argvForClient[i] = new char[strlen(s)];
strcpy(__argv[i], s); strcpy(argvForClient[i], s);
} }
#ifdef Q_OS_IOS
logGlobal->warn("Starting game with the arguments: %s", args.join(" ").toStdString());
qApp->quit(); qApp->quit();
#else #else
startExecutable(pathToQString(VCMIDirs::get().clientPath()), args); startExecutable(pathToQString(VCMIDirs::get().clientPath()), args);

View File

@@ -8,12 +8,12 @@
* *
*/ */
#pragma once #pragma once
extern int __argc;
extern char ** __argv;
void startGame(const QStringList & args); void startGame(const QStringList & args);
#ifdef VCMI_IOS #ifdef VCMI_IOS
extern int argcForClient;
extern char** argvForClient;
extern "C" void launchGame(int argc, char * argv[]); extern "C" void launchGame(int argc, char * argv[]);
#else #else
void startExecutable(QString name, const QStringList & args); void startExecutable(QString name, const QStringList & args);