5dab1e931d
QMakeLibraryInfo uses external data to produce paths. This causes issues when trying to use it out of the existing qmake environment. Add data fields that contain the path to the binary that uses QMakeLibraryInfo and manually specified qtconf. Task-number: QTBUG-75870 Change-Id: Ic6fa274ede3a9287826ff66c79f155b10d0d455c Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
81 lines
2.9 KiB
C++
81 lines
2.9 KiB
C++
/****************************************************************************
|
|
**
|
|
** Copyright (C) 2016 The Qt Company Ltd.
|
|
** Contact: https://www.qt.io/licensing/
|
|
**
|
|
** This file is part of the qmake application of the Qt Toolkit.
|
|
**
|
|
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
|
|
** 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 The Qt Company. For licensing terms
|
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
** information use the contact form at https://www.qt.io/contact-us.
|
|
**
|
|
** GNU General Public License Usage
|
|
** Alternatively, this file may be used under the terms of the GNU
|
|
** General Public License version 3 as published by the Free Software
|
|
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
** included in the packaging of this file. Please review the following
|
|
** information to ensure the GNU General Public License requirements will
|
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
|
**
|
|
** $QT_END_LICENSE$
|
|
**
|
|
****************************************************************************/
|
|
|
|
#ifndef IOUTILS_H
|
|
#define IOUTILS_H
|
|
|
|
#include "qmake_global.h"
|
|
|
|
#include <qstring.h>
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
|
|
namespace QMakeInternal {
|
|
|
|
/*!
|
|
This class provides replacement functionality for QFileInfo, QFile & QDir,
|
|
as these are abysmally slow.
|
|
*/
|
|
class QMAKE_EXPORT IoUtils {
|
|
public:
|
|
enum FileType {
|
|
FileNotFound = 0,
|
|
FileIsRegular = 1,
|
|
FileIsDir = 2
|
|
};
|
|
|
|
static QString binaryAbsLocation(const QString &argv0);
|
|
static FileType fileType(const QString &fileName);
|
|
static bool exists(const QString &fileName) { return fileType(fileName) != FileNotFound; }
|
|
static bool isRelativePath(const QString &fileName);
|
|
static bool isAbsolutePath(const QString &fileName) { return !isRelativePath(fileName); }
|
|
static QStringView pathName(const QString &fileName); // Requires normalized path
|
|
static QStringView fileName(const QString &fileName); // Requires normalized path
|
|
static QString resolvePath(const QString &baseDir, const QString &fileName);
|
|
static QString shellQuoteUnix(const QString &arg);
|
|
static QString shellQuoteWin(const QString &arg);
|
|
static QString shellQuote(const QString &arg)
|
|
#ifdef Q_OS_UNIX
|
|
{ return shellQuoteUnix(arg); }
|
|
#else
|
|
{ return shellQuoteWin(arg); }
|
|
#endif
|
|
#if defined(PROEVALUATOR_FULL)
|
|
static bool touchFile(const QString &targetFileName, const QString &referenceFileName, QString *errorString);
|
|
# if defined(QT_BUILD_QMAKE) && defined(Q_OS_UNIX)
|
|
static bool readLinkTarget(const QString &symlinkPath, QString *target);
|
|
# endif
|
|
#endif
|
|
};
|
|
|
|
} // namespace ProFileEvaluatorInternal
|
|
|
|
QT_END_NAMESPACE
|
|
|
|
#endif // IOUTILS_H
|