21 #include <qmessagebox.h>
24 #include <QQuickWindow>
30 static QtMessageHandler old_handler;
32 static void MyQTMessageHandler(QtMsgType type,
const QMessageLogContext& context,
const QString& message)
34 if (old_handler != NULL)
36 old_handler(type, context, message);
51 selected = QMessageBox::critical(NULL,
"Attention !", message,
"Debug",
"Continue",
"Quit");
60 else if (selected == 1)
64 else if (selected == 2)
73 static int tyMain(
int argc,
char** argv)
77 old_handler = qInstallMessageHandler(MyQTMessageHandler);
78 QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts);
79 QQuickWindow::setGraphicsApi(QSGRendererInterface::OpenGLRhi);
81 QtWebView::initialize();
85 success = tyApp.run();
93 qInstallMessageHandler(old_handler);
97 success ? ret = 0 : ret = 1;
102 bool setenv(
const char* pVarEnvName, QString& pVarEnvValue,
bool pForceUpdate)
105 QString currentVarEnvValue = QString::fromLocal8Bit(qgetenv(pVarEnvName));
106 if (currentVarEnvValue !=
"" && !pForceUpdate)
109 currentVarEnvValue.toUtf8().data());
110 pVarEnvValue = currentVarEnvValue;
115 pVarEnvValue.toUtf8().data());
116 ret = qputenv(pVarEnvName, pVarEnvValue.toUtf8());
124 const QChar
SEP = QDir::listSeparator();
126 const char* PLUGINS =
"/pluginsd";
127 const char* CYTHON =
"/cython_d";
129 const char* PLUGINS =
"/plugins";
130 const char* CYTHON =
"/cython";
134 const char* PYTHON_DIR_NAME =
"/Python313";
135 const char* PYTHON_EXECUTABLE =
"/python.exe";
136 const char* PYTHON_LIBS =
"/Lib";
137 const char* PYTHON_SCRIPTS =
"/Scripts";
139 const char* PYTHON_DIR_NAME =
"Python3";
140 const char* PYTHON_EXECUTABLE =
"/bin/python";
141 const char* PYTHON_LIBS =
"/lib";
142 const char* PYTHON_SCRIPTS =
"/bin";
145 const QString TYMPAN_INSTALL_DIR = QDir::toNativeSeparators(QDir::currentPath());
148 ret |= qputenv(
"PYTHONIOENCODING",
"UTF8");
150 QString TYMPAN_INSTALL_PATH = QString(TYMPAN_INSTALL_DIR);
151 ret |=
setenv(
"TYMPAN_INSTALL_PATH", TYMPAN_INSTALL_PATH,
false);
153 QString PYTHONTYMPAN = QDir::toNativeSeparators(TYMPAN_INSTALL_DIR + QString(PYTHON_DIR_NAME));
154 ret |=
setenv(
"PYTHONTYMPAN", PYTHONTYMPAN,
false);
157 QString TYMPAN_SOLVERDIR = QDir::toNativeSeparators(TYMPAN_INSTALL_DIR + QString(PLUGINS));
158 ret |=
setenv(
"TYMPAN_SOLVERDIR", TYMPAN_SOLVERDIR,
false);
160 QString CGAL_BINDINGS_PATH = QDir::toNativeSeparators(TYMPAN_INSTALL_DIR + CYTHON + QString(
"/CGAL"));
161 ret |=
setenv(
"CGAL_BINDINGS_PATH", CGAL_BINDINGS_PATH,
false);
163 QString TYMPAN_PYTHON_INTERP = QDir::toNativeSeparators(PYTHONTYMPAN + QString(PYTHON_EXECUTABLE));
164 ret |=
setenv(
"TYMPAN_PYTHON_INTERP", TYMPAN_PYTHON_INTERP,
false);
166 QString PYTHONPATH = QDir::toNativeSeparators(TYMPAN_INSTALL_DIR + CYTHON) +
SEP + PYTHONTYMPAN +
SEP +
167 QDir::toNativeSeparators(PYTHONTYMPAN +
"/DLLs") +
SEP +
168 QDir::toNativeSeparators(PYTHONTYMPAN + PYTHON_LIBS) +
SEP +
169 QDir::toNativeSeparators(PYTHONTYMPAN + PYTHON_LIBS +
"/site-packages") +
SEP +
172 ret |=
setenv(
"PYTHONPATH", PYTHONPATH,
false);
174 QString PATH = TYMPAN_INSTALL_DIR +
SEP + PYTHONTYMPAN +
SEP +
175 QDir::toNativeSeparators(PYTHONTYMPAN +
"/DLLs") +
SEP +
176 QDir::toNativeSeparators(PYTHONTYMPAN + PYTHON_LIBS) +
SEP +
177 QDir::toNativeSeparators(PYTHONTYMPAN + PYTHON_SCRIPTS);
178 ret |=
setenv(
"PATH", PATH,
true);
180 QString LD_LIBRARY_PATH = QDir::toNativeSeparators(TYMPAN_INSTALL_DIR + PYTHON_LIBS) +
SEP +
181 QDir::toNativeSeparators(TYMPAN_INSTALL_DIR + CYTHON) +
SEP +
182 QDir::toNativeSeparators(TYMPAN_INSTALL_DIR + CYTHON + QString(
"/CGAL"));
183 ret |=
setenv(
"LD_LIBRARY_PATH", LD_LIBRARY_PATH,
false);
185 QString PYTHONLEGACYWINDOWSSTDIO = QString(
"1");
186 ret |=
setenv(
"PYTHONLEGACYWINDOWSSTDIO", PYTHONLEGACYWINDOWSSTDIO,
false);
191 int main(
int argc,
char** argv)
193 QApplication::setStyle(
"Fusion");
195 bool ret_setenv =
true;
205 ret = tyMain(argc, argv);
pour l'application Tympan (fichier header)
virtual void debug(const char *message,...)
static OMessageManager * get()
virtual void info(const char *message,...)
Classe principale pour l'application Tympan.
static uint64 getConstructorCount()
static uint64 getIdGenerationCount()
static uint64 getDestructorCount()
int main(int argc, char **argv)
bool setenv(const char *pVarEnvName, QString &pVarEnvValue, bool pForceUpdate)