ENH: Move SetErrorMode around calls to generate and configure instead of setting it for the whole application.
This commit is contained in:
parent
6e3dd78b8b
commit
0b8837814a
|
@ -16,11 +16,6 @@
|
||||||
#include <QTranslator>
|
#include <QTranslator>
|
||||||
#include <QLocale>
|
#include <QLocale>
|
||||||
#include "QMacInstallDialog.h"
|
#include "QMacInstallDialog.h"
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
|
||||||
#include "windows.h" // for SetErrorMode
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "CMakeSetupDialog.h"
|
#include "CMakeSetupDialog.h"
|
||||||
#include "cmDocumentation.h"
|
#include "cmDocumentation.h"
|
||||||
#include "cmake.h"
|
#include "cmake.h"
|
||||||
|
@ -103,10 +98,6 @@ int main(int argc, char** argv)
|
||||||
}
|
}
|
||||||
|
|
||||||
QApplication app(argc, argv);
|
QApplication app(argc, argv);
|
||||||
#ifdef Q_OS_WIN
|
|
||||||
// QApplication changes error mode, let's put it back
|
|
||||||
SetErrorMode(0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// clean out standard Qt paths for plugins, which we don't use anyway
|
// clean out standard Qt paths for plugins, which we don't use anyway
|
||||||
// when creating Mac bundles, it potentially causes problems
|
// when creating Mac bundles, it potentially causes problems
|
||||||
|
|
|
@ -20,6 +20,10 @@
|
||||||
#include "cmSystemTools.h"
|
#include "cmSystemTools.h"
|
||||||
#include "cmExternalMakefileProjectGenerator.h"
|
#include "cmExternalMakefileProjectGenerator.h"
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
#include "qt_windows.h" // For SetErrorMode
|
||||||
|
#endif
|
||||||
|
|
||||||
QCMake::QCMake(QObject* p)
|
QCMake::QCMake(QObject* p)
|
||||||
: QObject(p)
|
: QObject(p)
|
||||||
{
|
{
|
||||||
|
@ -148,6 +152,10 @@ void QCMake::setGenerator(const QString& gen)
|
||||||
|
|
||||||
void QCMake::configure()
|
void QCMake::configure()
|
||||||
{
|
{
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
UINT lastErrorMode = SetErrorMode(0);
|
||||||
|
#endif
|
||||||
|
|
||||||
this->CMakeInstance->SetHomeDirectory(this->SourceDirectory.toAscii().data());
|
this->CMakeInstance->SetHomeDirectory(this->SourceDirectory.toAscii().data());
|
||||||
this->CMakeInstance->SetStartDirectory(this->SourceDirectory.toAscii().data());
|
this->CMakeInstance->SetStartDirectory(this->SourceDirectory.toAscii().data());
|
||||||
this->CMakeInstance->SetHomeOutputDirectory(this->BinaryDirectory.toAscii().data());
|
this->CMakeInstance->SetHomeOutputDirectory(this->BinaryDirectory.toAscii().data());
|
||||||
|
@ -162,14 +170,27 @@ void QCMake::configure()
|
||||||
|
|
||||||
int err = this->CMakeInstance->Configure();
|
int err = this->CMakeInstance->Configure();
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
SetErrorMode(lastErrorMode);
|
||||||
|
#endif
|
||||||
|
|
||||||
emit this->propertiesChanged(this->properties());
|
emit this->propertiesChanged(this->properties());
|
||||||
emit this->configureDone(err);
|
emit this->configureDone(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QCMake::generate()
|
void QCMake::generate()
|
||||||
{
|
{
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
UINT lastErrorMode = SetErrorMode(0);
|
||||||
|
#endif
|
||||||
|
|
||||||
cmSystemTools::ResetErrorOccuredFlag();
|
cmSystemTools::ResetErrorOccuredFlag();
|
||||||
int err = this->CMakeInstance->Generate();
|
int err = this->CMakeInstance->Generate();
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
SetErrorMode(lastErrorMode);
|
||||||
|
#endif
|
||||||
|
|
||||||
emit this->generateDone(err);
|
emit this->generateDone(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue