blob: 91d7941f41a769093ab061e4beeeb702437ecaa1 [file] [log] [blame]
diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autogenstep.cpp qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autogenstep.cpp
--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autogenstep.cpp 2015-04-14 19:57:23.551710900 +0100
+++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autogenstep.cpp 2015-04-14 19:57:53.638531400 +0100
@@ -34,6 +34,7 @@
#include "autotoolsproject.h"
#include "autotoolsbuildconfiguration.h"
#include "autotoolsprojectconstants.h"
+#include "shellprocessparameters.h"
#include <projectexplorer/buildsteplist.h>
#include <projectexplorer/target.h>
@@ -107,11 +107,12 @@
ProcessParameters *pp = processParameters();
pp->setMacroExpander(bc->macroExpander());
- pp->setEnvironment(bc->environment());
const QString projectDir(bc->target()->project()->projectDirectory().toString());
pp->setWorkingDirectory(projectDir);
- pp->setCommand("./autogen.sh");
- pp->setArguments(additionalArguments());
+ ShellScriptProcessParametersSetCommandAndArguments(pp,
+ bc->environment(),
+ QLatin1String("./autogen.sh"),
+ additionalArguments());
pp->resolveAll();
return AbstractProcessStep::init(earlierSteps);
@@ -223,11 +225,12 @@
ProcessParameters param;
param.setMacroExpander(bc->macroExpander());
- param.setEnvironment(bc->environment());
const QString projectDir(bc->target()->project()->projectDirectory().toString());
param.setWorkingDirectory(projectDir);
- param.setCommand("./autogen.sh");
- param.setArguments(m_autogenStep->additionalArguments());
+ ShellScriptProcessParametersSetCommandAndArguments(&param,
+ bc->environment(),
+ QLatin1String("./autogen.sh"),
+ m_autogenStep->additionalArguments());
m_summaryText = param.summary(displayName());
emit updateSummary();
}
diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp
--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp 2015-04-14 19:57:23.552210900 +0100
+++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autoreconfstep.cpp 2015-04-14 19:57:53.676036200 +0100
@@ -34,6 +34,7 @@
#include "autotoolsproject.h"
#include "autotoolsbuildconfiguration.h"
#include "autotoolsprojectconstants.h"
+#include "shellprocessparameters.h"
#include <projectexplorer/buildsteplist.h>
#include <projectexplorer/target.h>
@@ -157,11 +158,12 @@
ProcessParameters *pp = processParameters();
pp->setMacroExpander(bc->macroExpander());
- pp->setEnvironment(bc->environment());
const QString projectDir(bc->target()->project()->projectDirectory().toString());
pp->setWorkingDirectory(projectDir);
- pp->setCommand("autoreconf");
- pp->setArguments(additionalArguments());
+ ShellScriptProcessParametersSetCommandAndArguments(pp,
+ bc->environment(),
+ QLatin1String("autoreconf"),
+ additionalArguments());
pp->resolveAll();
return AbstractProcessStep::init(earlierSteps);
@@ -270,11 +272,12 @@
ProcessParameters param;
param.setMacroExpander(bc->macroExpander());
- param.setEnvironment(bc->environment());
const QString projectDir(bc->target()->project()->projectDirectory().toString());
param.setWorkingDirectory(projectDir);
- param.setCommand("autoreconf");
- param.setArguments(m_autoreconfStep->additionalArguments());
+ ShellScriptProcessParametersSetCommandAndArguments(&param,
+ bc->environment(),
+ QLatin1String("autoreconf"),
+ m_autoreconfStep->additionalArguments());
m_summaryText = param.summary(displayName());
emit updateSummary();
}
diff -urN qt-creator-opensource-src-3.4.0.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro qt-creator-opensource-src-3.4.0/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro
--- qt-creator-opensource-src-3.4.0.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro 2015-04-21 16:56:56.000000000 +0100
+++ qt-creator-opensource-src-3.4.0/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.pro 2015-04-24 00:37:06.163960200 +0100
@@ -14,7 +14,8 @@
autoreconfstep.h\
configurestep.h\
makefileparserthread.h\
- makefileparser.h
+ makefileparser.h \
+ shellprocessparameters.h
SOURCES = autotoolsprojectplugin.cpp\
autotoolsopenprojectwizard.cpp\
autotoolsmanager.cpp\
@@ -28,4 +29,5 @@
autoreconfstep.cpp\
configurestep.cpp\
makefileparserthread.cpp\
- makefileparser.cpp
+ makefileparser.cpp\
+ shellprocessparameters.cpp
diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs
--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs 2015-04-14 19:57:23.592716100 +0100
+++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/autotoolsprojectmanager.qbs 2015-04-14 19:57:53.873561300 +0100
@@ -41,5 +41,7 @@
"makefileparserthread.h",
"makestep.cpp",
"makestep.h",
+ "shellprocessparameters.cpp",
+ "shellprocessparameters.h",
]
}
diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/configurestep.cpp qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/configurestep.cpp
--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/configurestep.cpp 2015-04-14 19:57:23.594216300 +0100
+++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/configurestep.cpp 2015-04-14 19:57:53.912566200 +0100
@@ -34,6 +34,7 @@
#include "autotoolsproject.h"
#include "autotoolsbuildconfiguration.h"
#include "autotoolsprojectconstants.h"
+#include "shellprocessparameters.h"
#include <projectexplorer/buildsteplist.h>
#include <projectexplorer/target.h>
@@ -172,10 +173,11 @@
ProcessParameters *pp = processParameters();
pp->setMacroExpander(bc->macroExpander());
- pp->setEnvironment(bc->environment());
pp->setWorkingDirectory(bc->buildDirectory().toString());
- pp->setCommand(projectDirRelativeToBuildDir(bc) + "configure");
- pp->setArguments(additionalArguments());
+ ShellScriptProcessParametersSetCommandAndArguments(pp,
+ bc->environment(),
+ projectDirRelativeToBuildDir(bc) + QLatin1String("configure"),
+ additionalArguments());
pp->resolveAll();
return AbstractProcessStep::init(earlierSteps);
@@ -295,10 +297,11 @@
ProcessParameters param;
param.setMacroExpander(bc->macroExpander());
- param.setEnvironment(bc->environment());
param.setWorkingDirectory(bc->buildDirectory().toString());
- param.setCommand(projectDirRelativeToBuildDir(bc) + "configure");
- param.setArguments(m_configureStep->additionalArguments());
+ ShellScriptProcessParametersSetCommandAndArguments(&param,
+ bc->environment(),
+ projectDirRelativeToBuildDir(bc) + QLatin1String("configure"),
+ m_configureStep->additionalArguments());
m_summaryText = param.summaryInWorkdir(displayName());
emit updateSummary();
}
diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/makestep.cpp qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/makestep.cpp
--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/makestep.cpp 2015-04-14 19:57:23.637221700 +0100
+++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/makestep.cpp 2015-04-14 19:57:53.927568100 +0100
@@ -34,6 +34,7 @@
#include "autotoolsproject.h"
#include "autotoolsprojectconstants.h"
#include "autotoolsbuildconfiguration.h"
+#include "shellprocessparameters.h"
#include <projectexplorer/buildsteplist.h>
#include <projectexplorer/target.h>
@@ -138,10 +139,8 @@
pp->setMacroExpander(bc->macroExpander());
Utils::Environment env = bc->environment();
Utils::Environment::setupEnglishOutput(&env);
- pp->setEnvironment(env);
pp->setWorkingDirectory(bc->buildDirectory().toString());
- pp->setCommand(tcList.at(0)->makeCommand(bc->environment()));
- pp->setArguments(arguments);
+ ShellScriptProcessParametersSetMakeCommandAndArguments(pp, env, tcList.at(0), bc, arguments);
pp->resolveAll();
setOutputParser(new GnuMakeParser());
@@ -262,10 +265,8 @@
ProcessParameters param;
param.setMacroExpander(m_makeStep->macroExpander());
- param.setEnvironment(bc->environment());
param.setWorkingDirectory(bc->buildDirectory().toString());
- param.setCommand(tcList.at(0)->makeCommand(bc->environment()));
- param.setArguments(arguments);
+ ShellScriptProcessParametersSetMakeCommandAndArguments(&param, bc->environment(), tcList.at(0), bc, arguments);
m_summaryText = param.summary(displayName());
} else {
m_summaryText = QLatin1String("<b>") + ToolChainKitInformation::msgNoToolChainInTarget() + QLatin1String("</b>");
diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/shellprocessparameters.cpp qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/shellprocessparameters.cpp
--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/shellprocessparameters.cpp 1970-01-01 01:00:00.000000000 +0100
+++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/shellprocessparameters.cpp 2015-04-14 20:04:01.013682100 +0100
@@ -0,0 +1,89 @@
+/**************************************************************************
+**
+** Copyright (C) 2014 Ray Donnelly.
+** Author: Ray Donnelly (mingw.android@gmail.com)
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of Qt Creator.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+****************************************************************************/
+
+#include <QString>
+#include <QProcess>
+#include <QDir>
+#include <QFileInfo>
+
+#include "shellprocessparameters.h"
+
+using namespace Utils;
+using namespace ProjectExplorer;
+
+void ShellScriptProcessParametersSetCommandAndArguments(ProcessParameters *procParams,
+ Environment const& env,
+ QString command, QString args)
+{
+#if defined(Q_OS_WIN)
+ /* MSYS2 specific. This could be improved with a setting in Tools->Options */
+ QString sh_dir = QFileInfo(QCoreApplication::applicationDirPath()
+ + QLatin1String("\\..\\..\\usr\\bin")).absoluteFilePath();
+ QString sh_exe = QFileInfo(sh_dir
+ + QLatin1String("\\sh.exe")).absoluteFilePath();
+ QString sh_dir_native = QDir::toNativeSeparators(sh_dir);
+ Utils::Environment envCopy(env);
+ if (!env.path().contains(FileName::fromString(sh_dir)) && !env.path().contains(FileName::fromString(sh_dir_native))) {
+ envCopy.prependOrSetPath(sh_dir);
+ }
+ procParams->setEnvironment(envCopy);
+ procParams->setCommand(sh_exe);
+ procParams->setArguments(QLatin1String("-c \"")
+ + command
+ + QLatin1String(" ")
+ + args
+ + QLatin1String("\""));
+#else
+ procParams->setEnvironment(env);
+ procParams->setCommand(command);
+ procParams->setArguments(args);
+#endif
+}
+
+void ShellScriptProcessParametersSetMakeCommandAndArguments(ProcessParameters *procParams,
+ Environment const& env,
+ ToolChain const* toolchain,
+ BuildConfiguration *buildConfig,
+ QString args)
+{
+#if defined(Q_OS_WIN)
+ Q_UNUSED(buildConfig);
+ Q_UNUSED(toolchain);
+ QString makeCommand = QLatin1String("make");
+#else
+ QString makeCommand = (toolchain && buildConfig)
+ ? toolchain->makeCommand(buildConfig->environment())
+ : QLatin1String("make");
+#endif
+ ShellScriptProcessParametersSetCommandAndArguments(procParams,
+ env,
+ makeCommand,
+ args);
+}
diff -urN qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/shellprocessparameters.h qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/shellprocessparameters.h
--- qt-creator-opensource-src-3.3.2.orig/src/plugins/autotoolsprojectmanager/shellprocessparameters.h 1970-01-01 01:00:00.000000000 +0100
+++ qt-creator-opensource-src-3.3.2/src/plugins/autotoolsprojectmanager/shellprocessparameters.h 2015-04-14 19:57:53.980574800 +0100
@@ -0,0 +1,49 @@
+/**************************************************************************
+**
+** Copyright (C) 2014 Ray Donnelly.
+** Author: Ray Donnelly (mingw.android@gmail.com)
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of Qt Creator.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+****************************************************************************/
+
+#ifndef SHELLPROCESSPARAMETERS_H
+#define SHELLPROCESSPARAMETERS_H
+
+#include <projectexplorer/processparameters.h>
+#include <projectexplorer/toolchain.h>
+#include "autotoolsbuildconfiguration.h"
+
+void ShellScriptProcessParametersSetCommandAndArguments(ProjectExplorer::ProcessParameters *pp,
+ Utils::Environment const& env,
+ QString command,
+ QString args);
+
+void ShellScriptProcessParametersSetMakeCommandAndArguments(ProjectExplorer::ProcessParameters *procParams,
+ Utils::Environment const& env,
+ ProjectExplorer::ToolChain const* toolchain,
+ ProjectExplorer::BuildConfiguration *buildConfig,
+ QString args);
+
+#endif // SHELLPROCESSPARAMETERS_H