mirror of
https://github.com/lucaspalomodevelop/meshlab.git
synced 2026-03-15 00:54:38 +00:00
99 lines
2.4 KiB
C++
99 lines
2.4 KiB
C++
#include "mlapplication.h"
|
|
#include "mlexception.h"
|
|
#include <vcg/complex/complex.h>
|
|
#include <QStandardPaths>
|
|
#include <QDir>
|
|
#include "globals.h"
|
|
|
|
#ifndef MESHLAB_VERSION
|
|
#define MESHLAB_VERSION 2020.09
|
|
#endif
|
|
|
|
#if defined(__clang__)
|
|
#define ML_COMPILER "Clang"
|
|
#define ML_COMPILER_VER MeshLabApplication::versionString(__clang_major__, __clang_minor__, __clang_patchlevel__)
|
|
#elif defined(__GNUC__) || defined(__GNUG__)
|
|
#define ML_COMPILER "GCC"
|
|
#define ML_COMPILER_VER MeshLabApplication::versionString(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)
|
|
#elif defined(_MSC_VER)
|
|
#define ML_COMPILER "MSVC"
|
|
#define ML_COMPILER_VER std::to_string(_MSC_VER)
|
|
#else
|
|
#define ML_COMPILER "Unknown Compiler"
|
|
#define ML_COMPILER_VER std::string()
|
|
#endif
|
|
|
|
#ifdef NDEBUG
|
|
bool MeshLabApplication::notify( QObject * rec, QEvent * ev )
|
|
{
|
|
try {
|
|
return QApplication::notify(rec,ev);
|
|
}
|
|
catch (MLException& e) {
|
|
qCritical("%s",e.what());
|
|
}
|
|
catch (vcg::MissingComponentException &e ) {
|
|
qCritical("%s",e.what());
|
|
abort();
|
|
}
|
|
catch (...) {
|
|
qCritical("Something really bad happened!!!!!!!!!!!!!");
|
|
abort();
|
|
}
|
|
return false;
|
|
}
|
|
#endif
|
|
|
|
const QString MeshLabApplication::appVer()
|
|
{
|
|
return QString::fromStdString(meshlab::meshlabVersion());
|
|
}
|
|
|
|
const QString MeshLabApplication::compilerVersion()
|
|
{
|
|
return QString(ML_COMPILER) + QString(" ") + QString::fromStdString(ML_COMPILER_VER);
|
|
}
|
|
|
|
const QString MeshLabApplication::qtVersion()
|
|
{
|
|
return QString(QT_VERSION_STR);
|
|
}
|
|
|
|
const QString MeshLabApplication::extraPluginsLocation()
|
|
{
|
|
QDir appDir(QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).first());
|
|
appDir.mkpath(appDir.absolutePath());
|
|
|
|
appDir.mkdir("MeshLabExtraPlugins");
|
|
appDir.cd("MeshLabExtraPlugins");
|
|
|
|
//QString major = appVer().left(4);
|
|
//appDir.mkdir(major);
|
|
//appDir.cd(major);
|
|
|
|
//just for first versions, compatibility of plugins is fixed for same version of meshlab
|
|
appDir.mkdir(appVer());
|
|
appDir.cd(appVer());
|
|
|
|
return appDir.absolutePath();
|
|
}
|
|
|
|
const QString MeshLabApplication::extraShadersLocation()
|
|
{
|
|
QDir appDir(QStandardPaths::standardLocations(QStandardPaths::AppDataLocation).first());
|
|
appDir.mkpath(appDir.absolutePath());
|
|
|
|
appDir.mkdir("MeshLabExtraShaders");
|
|
appDir.cd("MeshLabExtraShaders");
|
|
|
|
return appDir.absolutePath();
|
|
}
|
|
|
|
std::string MeshLabApplication::versionString(int a, int b, int c)
|
|
{
|
|
std::ostringstream ss;
|
|
ss << a << '.' << b << '.' << c;
|
|
return ss.str();
|
|
}
|
|
|