- fix: can't correctly set TDM-GCC compiler
- fix: auto add 32-bit compiler sets for TDM64-GCC
This commit is contained in:
parent
879f001d0c
commit
2d65e1d93b
5
NEWS.md
5
NEWS.md
|
@ -1,9 +1,12 @@
|
||||||
Version 0.11.2 For Dev-C++ 7 Beta
|
Version 0.11.2 For Dev-C++ 7 Beta
|
||||||
- fix: button "run all problem cases" not disabled when compiling or debugging
|
- fix: button "run all problem cases" not disabled when compiling or debugging
|
||||||
- enhancement: set font for problem case input/output textedits
|
- enhancement: set font for problem case input/output textedits
|
||||||
- enhancement: when run problem cases, updates output immediately
|
- enhancement: when run program with problem cases, updates output immediately (note: stdout of the program running with problem cases is fully buffered,
|
||||||
|
so we need to fflush after each time output to stdout, or use setbuf(stdout,NULL) to turn the buffer off)
|
||||||
- fix: current line of the disassembly in the cpu window not correctly setted
|
- fix: current line of the disassembly in the cpu window not correctly setted
|
||||||
- enhancement: add "step into one machine instruction" and "step over one machine instruction" in the cpu window
|
- enhancement: add "step into one machine instruction" and "step over one machine instruction" in the cpu window
|
||||||
|
- fix: can't correctly set TDM-GCC compiler
|
||||||
|
- fix: auto add 32-bit compiler sets for TDM64-GCC
|
||||||
|
|
||||||
Version 0.11.1 For Dev-C++ 7 Beta
|
Version 0.11.1 For Dev-C++ 7 Beta
|
||||||
- enhancement: Problem's test case shouldn't accept rich text inputs
|
- enhancement: Problem's test case shouldn't accept rich text inputs
|
||||||
|
|
|
@ -2232,7 +2232,15 @@ void Settings::CompilerSet::setIniOptions(const QByteArray &value)
|
||||||
|
|
||||||
QByteArray Settings::CompilerSet::getCompilerOutput(const QString &binDir, const QString &binFile, const QStringList &arguments)
|
QByteArray Settings::CompilerSet::getCompilerOutput(const QString &binDir, const QString &binFile, const QStringList &arguments)
|
||||||
{
|
{
|
||||||
QByteArray result = runAndGetOutput(includeTrailingPathDelimiter(binDir)+binFile, binDir, arguments);
|
QProcessEnvironment env;
|
||||||
|
env.insert("LANG","en");
|
||||||
|
QByteArray result = runAndGetOutput(
|
||||||
|
includeTrailingPathDelimiter(binDir)+binFile,
|
||||||
|
binDir,
|
||||||
|
arguments,
|
||||||
|
QByteArray(),
|
||||||
|
false,
|
||||||
|
env);
|
||||||
return result.trimmed();
|
return result.trimmed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2292,6 +2300,13 @@ Settings::PCompilerSet Settings::CompilerSets::addSet(const QString &folder)
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void set64_32Options(Settings::PCompilerSet pSet) {
|
||||||
|
PCompilerOption pOption = pSet->findOption("-");
|
||||||
|
if (pOption) {
|
||||||
|
pSet->setOption(pOption,'1');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void setReleaseOptions(Settings::PCompilerSet pSet) {
|
static void setReleaseOptions(Settings::PCompilerSet pSet) {
|
||||||
PCompilerOption pOption = pSet->findOption("-O");
|
PCompilerOption pOption = pSet->findOption("-O");
|
||||||
if (pOption) {
|
if (pOption) {
|
||||||
|
@ -2370,6 +2385,27 @@ void Settings::CompilerSets::addSets(const QString &folder)
|
||||||
QString baseName = baseSet->name();
|
QString baseName = baseSet->name();
|
||||||
QString platformName;
|
QString platformName;
|
||||||
if (baseSet->target() == "x86_64") {
|
if (baseSet->target() == "x86_64") {
|
||||||
|
if (baseName.startsWith("TDM-GCC ")) {
|
||||||
|
platformName = "32-bit";
|
||||||
|
baseSet->setName(baseName + " " + platformName + " Release");
|
||||||
|
baseSet->setCompilerSetType(CompilerSetType::CST_RELEASE);
|
||||||
|
set64_32Options(baseSet);
|
||||||
|
setReleaseOptions(baseSet);
|
||||||
|
|
||||||
|
baseSet = addSet(folder);
|
||||||
|
baseSet->setName(baseName + " " + platformName + " Debug");
|
||||||
|
baseSet->setCompilerSetType(CompilerSetType::CST_DEBUG);
|
||||||
|
set64_32Options(baseSet);
|
||||||
|
setDebugOptions(baseSet);
|
||||||
|
|
||||||
|
baseSet = addSet(folder);
|
||||||
|
baseSet->setName(baseName + " " + platformName + " Profiling");
|
||||||
|
baseSet->setCompilerSetType(CompilerSetType::CST_PROFILING);
|
||||||
|
set64_32Options(baseSet);
|
||||||
|
setProfileOptions(baseSet);
|
||||||
|
|
||||||
|
baseSet = addSet(folder);
|
||||||
|
}
|
||||||
platformName = "64-bit";
|
platformName = "64-bit";
|
||||||
} else {
|
} else {
|
||||||
platformName = "32-bit";
|
platformName = "32-bit";
|
||||||
|
|
|
@ -115,14 +115,20 @@ bool isGreenEdition()
|
||||||
return gIsGreenEdition;
|
return gIsGreenEdition;
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray runAndGetOutput(const QString &cmd, const QString& workingDir, const QStringList& arguments, const QByteArray &inputContent, bool inheritEnvironment)
|
QByteArray runAndGetOutput(const QString &cmd, const QString& workingDir, const QStringList& arguments,
|
||||||
|
const QByteArray &inputContent, bool inheritEnvironment,
|
||||||
|
const QProcessEnvironment& env)
|
||||||
{
|
{
|
||||||
QProcess process;
|
QProcess process;
|
||||||
QByteArray result;
|
QByteArray result;
|
||||||
if (inheritEnvironment) {
|
if (env.isEmpty()) {
|
||||||
process.setProcessEnvironment(QProcessEnvironment::systemEnvironment());
|
if (inheritEnvironment) {
|
||||||
|
process.setProcessEnvironment(QProcessEnvironment::systemEnvironment());
|
||||||
|
} else {
|
||||||
|
process.setProcessEnvironment(QProcessEnvironment());
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
process.setProcessEnvironment(QProcessEnvironment());
|
process.setProcessEnvironment(env);
|
||||||
}
|
}
|
||||||
process.setWorkingDirectory(workingDir);
|
process.setWorkingDirectory(workingDir);
|
||||||
process.connect(&process,&QProcess::readyReadStandardError,
|
process.connect(&process,&QProcess::readyReadStandardError,
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <QThread>
|
#include <QThread>
|
||||||
|
#include <QProcessEnvironment>
|
||||||
#include "SimpleIni.h"
|
#include "SimpleIni.h"
|
||||||
|
|
||||||
using SimpleIni = CSimpleIniA;
|
using SimpleIni = CSimpleIniA;
|
||||||
|
@ -120,7 +121,8 @@ bool isTextAllAscii(const QString& text);
|
||||||
|
|
||||||
QByteArray runAndGetOutput(const QString& cmd, const QString& workingDir, const QStringList& arguments,
|
QByteArray runAndGetOutput(const QString& cmd, const QString& workingDir, const QStringList& arguments,
|
||||||
const QByteArray& inputContent = QByteArray(),
|
const QByteArray& inputContent = QByteArray(),
|
||||||
bool inheritEnvironment = false);
|
bool inheritEnvironment = false,
|
||||||
|
const QProcessEnvironment& env = QProcessEnvironment() );
|
||||||
|
|
||||||
void executeFile(const QString& fileName,
|
void executeFile(const QString& fileName,
|
||||||
const QString& params,
|
const QString& params,
|
||||||
|
|
Loading…
Reference in New Issue