aboutsummaryrefslogtreecommitdiffstats
path: root/src/tools/cplusplus-tools-utils
diff options
context:
space:
mode:
authorNikolai Kosjar <[email protected]>2015-01-29 10:08:39 +0100
committerNikolai Kosjar <[email protected]>2015-01-29 13:07:05 +0000
commit739cc9f053e08b8b873680385ac4c8638d51946a (patch)
tree74283f053248979f9a253f5991c930ac3dd1f2ad /src/tools/cplusplus-tools-utils
parentc001e98da8c11a5aa3dfe3ee85701e788411aec4 (diff)
C++: Clean up dev tools
* Move cplusplus-frontend to src/tools * Make them depend on libs/cplusplus instead of building that lib again * Put the binaries into bin of the qtcreator build directory * Unify *.pro files * Build them all if BUILD_CPLUSPLUS_TOOLS is set Change-Id: I8f9cd731625cbf9f41d5f6464c6cd946ffd6e141 Reviewed-by: Orgad Shaneh <[email protected]>
Diffstat (limited to 'src/tools/cplusplus-tools-utils')
-rw-r--r--src/tools/cplusplus-tools-utils/cplusplus-tools-utils.cpp146
-rw-r--r--src/tools/cplusplus-tools-utils/cplusplus-tools-utils.h63
-rw-r--r--src/tools/cplusplus-tools-utils/cplusplus-tools-utils.pri25
-rw-r--r--src/tools/cplusplus-tools-utils/pp-configuration.inc17
4 files changed, 0 insertions, 251 deletions
diff --git a/src/tools/cplusplus-tools-utils/cplusplus-tools-utils.cpp b/src/tools/cplusplus-tools-utils/cplusplus-tools-utils.cpp
deleted file mode 100644
index 0a549d3ac02..00000000000
--- a/src/tools/cplusplus-tools-utils/cplusplus-tools-utils.cpp
+++ /dev/null
@@ -1,146 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** 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://www.qt.io/licensing. For further information
-** use the contact form at http://www.qt.io/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 or version 3 as published by the Free
-** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-** following information to ensure the GNU Lesser General Public License
-** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-** 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 "cplusplus-tools-utils.h"
-
-#include <utils/environment.h>
-
-#include <QDebug>
-#include <QDir>
-#include <QFile>
-#include <QProcess>
-
-namespace CplusplusToolsUtils {
-
-QString portableExecutableName(const QString &executable)
-{
-#if defined(Q_OS_WIN)
- return executable + QLatin1String(".exe");
-#else
- return executable;
-#endif
-}
-
-void executeCommand(const QString &command, const QStringList &arguments, const QString &outputFile,
- bool verbose)
-{
- QTextStream out(stderr);
- if (command.isEmpty()) {
- out << "Error: " << Q_FUNC_INFO << "Got empty command to execute." << endl;
- exit(EXIT_FAILURE);
- }
-
- const QString fullCommand = command + QLatin1Char(' ') + arguments.join(QLatin1Char(' '));
- if (verbose)
- out << "Executing: " << fullCommand << endl;
-
- QProcess process;
- if (!outputFile.isEmpty())
- process.setStandardOutputFile(outputFile, QIODevice::Truncate);
- process.start(command, arguments);
- if (!process.waitForStarted()) {
- out << QString::fromLatin1("Error: Process \"%1\" did not start within timeout: %2.")
- .arg(fullCommand, process.errorString())
- << endl;
- exit(EXIT_FAILURE);
- }
- if (!process.waitForFinished()) {
- if (!verbose)
- out << process.readAll() << endl;
- out << QString::fromLatin1("Error: Process \"%1\" did not finish within timeout.")
- .arg(fullCommand)
- << endl;
- exit(EXIT_FAILURE);
- }
- const int exitCode = process.exitCode();
- if (exitCode != 0) {
- out << process.readAllStandardError() << endl;
- out << QString::fromLatin1("Error: Process \"%1\" finished with non zero exit value %2")
- .arg(fullCommand, exitCode) << endl;
- exit(EXIT_FAILURE);
- }
-}
-
-SystemPreprocessor::SystemPreprocessor(bool verbose)
- : m_verbose(verbose)
-{
- m_knownCompilers[portableExecutableName(QLatin1String("gcc"))]
- = QLatin1String("-DCPLUSPLUS_WITHOUT_QT -U__BLOCKS__ -xc++ -E -include");
- m_knownCompilers[portableExecutableName(QLatin1String("cl"))]
- = QLatin1String("/DCPLUSPLUS_WITHOUT_QT /U__BLOCKS__ /TP /E /I . /FI");
-
- QMapIterator<QString, QString> i(m_knownCompilers);
- while (i.hasNext()) {
- i.next();
- const Utils::FileName executablePath
- = Utils::Environment::systemEnvironment().searchInPath(i.key());
- if (!executablePath.isEmpty()) {
- m_compiler = i.key();
- m_compilerArguments = i.value().split(QLatin1Char(' '), QString::SkipEmptyParts);
- m_compilerArguments
- << QDir::toNativeSeparators(QLatin1String(PATH_PREPROCESSOR_CONFIG));
- break;
- }
- }
-}
-
-void SystemPreprocessor::check() const
-{
- QTextStream out(stderr);
- if (!QFile::exists(QLatin1String(PATH_PREPROCESSOR_CONFIG))) {
- out << QString::fromLatin1("Error: File \"%1\" does not exist.")
- .arg(QLatin1String(PATH_PREPROCESSOR_CONFIG))
- << endl;
- exit(EXIT_FAILURE);
- }
- if (m_compiler.isEmpty()) {
- const QString triedCompilers
- = QStringList(m_knownCompilers.keys()).join(QLatin1String(", "));
- out << QString::fromLatin1("Error: No compiler found. Tried %1.").arg(triedCompilers)
- << endl;
- exit(EXIT_FAILURE);
- }
-}
-
-void SystemPreprocessor::preprocessFile(const QString &inputFile, const QString &outputFile) const
-{
- check();
- if (!QFile::exists(inputFile)) {
- QTextStream out(stderr);
- out << QString::fromLatin1("Error: File \"%1\" does not exist.").arg(inputFile) << endl;
- exit(EXIT_FAILURE);
- }
- const QStringList arguments = QStringList(m_compilerArguments)
- << QDir::toNativeSeparators(inputFile);
- executeCommand(m_compiler, arguments, outputFile, m_verbose);
-}
-
-} // namespace
diff --git a/src/tools/cplusplus-tools-utils/cplusplus-tools-utils.h b/src/tools/cplusplus-tools-utils/cplusplus-tools-utils.h
deleted file mode 100644
index a65a0a8e4b7..00000000000
--- a/src/tools/cplusplus-tools-utils/cplusplus-tools-utils.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** 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://www.qt.io/licensing. For further information
-** use the contact form at http://www.qt.io/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 or version 3 as published by the Free
-** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-** following information to ensure the GNU Lesser General Public License
-** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-** 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 CPLUSPLUSTOOLSUTILS_H
-#define CPLUSPLUSTOOLSUTILS_H
-
-#include <QString>
-#include <QStringList>
-#include <QMap>
-
-namespace CplusplusToolsUtils {
-
-QString portableExecutableName(const QString &executable);
-void executeCommand(const QString &command, const QStringList &arguments, const QString &outputFile,
- bool verbose = false);
-
-// Preprocess a file by calling an external compiler in preprocessor mode (-E, /E).
-class SystemPreprocessor
-{
-public:
- SystemPreprocessor(bool verbose = false);
- void preprocessFile(const QString &inputFile, const QString &outputFile) const;
-
-private:
- void check() const;
-
- QMap<QString, QString> m_knownCompilers;
- QString m_compiler; // Compiler that will be called in preprocessor mode
- QStringList m_compilerArguments;
- bool m_verbose;
-};
-
-} // namespace
-
-#endif // CPLUSPLUSTOOLSUTILS_H
diff --git a/src/tools/cplusplus-tools-utils/cplusplus-tools-utils.pri b/src/tools/cplusplus-tools-utils/cplusplus-tools-utils.pri
deleted file mode 100644
index 3a75d4b9c09..00000000000
--- a/src/tools/cplusplus-tools-utils/cplusplus-tools-utils.pri
+++ /dev/null
@@ -1,25 +0,0 @@
-DEPENDPATH += $$PWD
-INCLUDEPATH += $$PWD
-
-DEFINES *= QT_NO_CAST_FROM_ASCII
-DEFINES += PATH_PREPROCESSOR_CONFIG=\\\"$$PWD/pp-configuration.inc\\\"
-DEFINES += QTCREATOR_UTILS_STATIC_LIB
-
-HEADERS += \
- $$PWD/cplusplus-tools-utils.h \
- $$PWD/../../libs/utils/environment.h \
- $$PWD/../../libs/utils/fileutils.h \
- $$PWD/../../libs/utils/qtcassert.h \
- $$PWD/../../libs/utils/savefile.h
-
-SOURCES += \
- $$PWD/cplusplus-tools-utils.cpp \
- $$PWD/../../libs/utils/environment.cpp \
- $$PWD/../../libs/utils/fileutils.cpp \
- $$PWD/../../libs/utils/qtcassert.cpp \
- $$PWD/../../libs/utils/savefile.cpp
-
-win32:LIBS += -luser32 -lshell32
-
-osx:OBJECTIVE_SOURCES += $$PWD/../../libs/utils/fileutils_mac.mm
-osx:LIBS += -framework Foundation
diff --git a/src/tools/cplusplus-tools-utils/pp-configuration.inc b/src/tools/cplusplus-tools-utils/pp-configuration.inc
deleted file mode 100644
index 5d6b0678c91..00000000000
--- a/src/tools/cplusplus-tools-utils/pp-configuration.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-#define __extension__
-#define __context__
-#define __range__
-#if !defined(_WIN32) && !defined(_WIN64)
-# define __asm(a...)
-# define __asm__(a...)
-# define __stdcall
-# define __fastcall
-#endif
-#define restrict
-#define __restrict
-#define __restrict__
-// #define __weak
-#define __builtin_va_arg(a,b) ((b)0)
-#define __imag__
-#define __real__
-#define __complex__