44 ret.replace(
'\\',
"/");
71 QString newFixedBase = fixedBase.
left(slashOff) + fixedBase.
mid(slashOff + 3);
113 void MingwMakefileGenerator::writeMingwParts(
QTextStream &
t)
117 if (!preCompHeaderOut.
isEmpty()) {
123 <<
"\n\t$(CC) -x c-header -c $(CFLAGS) $(INCPATH) -o " <<
escapeFilePath(cHeader)
129 <<
"\n\t$(CXX) -x c++-header -c $(CXXFLAGS) $(INCPATH) -o " <<
escapeFilePath(cppHeader)
173 QString preCompHeader =
var(
"PRECOMPILED_DIR")
175 preCompHeaderOut = preCompHeader +
".gch";
182 " $(CFLAGS) $(INCPATH) " +
var(
"QMAKE_CC_O_FLAG") +
"$obj $src");
185 " $(CFLAGS) $(INCPATH) " +
var(
"QMAKE_CC_O_FLAG") +
"$@ $<");
188 " $(CXXFLAGS) $(INCPATH) " +
var(
"QMAKE_CC_O_FLAG") +
"$obj $src");
191 " $(CXXFLAGS) $(INCPATH) " +
var(
"QMAKE_CC_O_FLAG") +
"$@ $<");
199 void MingwMakefileGenerator::writeIncPart(
QTextStream &
t)
209 return total + inc.size() + 2;
211 if (totalLength >
project->
intValue(
"QMAKE_RESPONSEFILE_THRESHOLD", 8000)) {
219 for (
const ProString &incit: qAsConst(incs)) {
220 QString inc = incit.toQString();
228 void MingwMakefileGenerator::writeLibsPart(
QTextStream &
t)
243 void MingwMakefileGenerator::writeObjectsPart(
QTextStream &
t)
246 if (!linkerResponseFile.
isValid()) {
247 objectsLinkLine =
"$(OBJECTS)";
253 objectsLinkLine = ar_cmd +
' ' +
var(
"DEST_TARGET") +
" @"
261 void MingwMakefileGenerator::writeBuildRulesPart(
QTextStream &
t)
265 <<
' ' <<
depVar(
"ALL_DEPS") <<
' ' <<
depVar(
"DEST_TARGET") <<
"\n\n";
266 t <<
depVar(
"DEST_TARGET") <<
": "
267 <<
depVar(
"PRE_TARGETDEPS") <<
" $(OBJECTS) " <<
depVar(
"POST_TARGETDEPS");
274 t <<
"\n\t" <<
var(
"QMAKE_PRE_LINK");
276 t <<
"\n\t-$(DEL_FILE) $(DESTDIR_TARGET) 2>" <<
var(
"QMAKE_SHELL_NULL_DEVICE");
279 t <<
"\n\t$(LIB) $(DESTDIR_TARGET) " << objectsLinkLine <<
" " ;
281 t <<
"\n\t" << objectsLinkLine <<
" " ;
284 t <<
"\n\t$(LINKER) $(LFLAGS) " <<
var(
"QMAKE_LINK_O_FLAG") <<
"$(DESTDIR_TARGET) "
290 t <<
"\n\t" <<
var(
"QMAKE_POST_LINK");
294 void MingwMakefileGenerator::writeRcFilePart(
QTextStream &
t)
301 for (
int i = 0;
i < rcIncPaths.
count(); ++
i) {
323 << incPathStr << defines <<
"\n\n";
330 if (preCompHeaderOut.
isEmpty())
335 if (!aList.contains(cHeader))
343 if (!aList.contains(cppHeader))
small capitals from c petite p scientific f u
small capitals from c petite p scientific i
[1]
virtual QStringList & findDependencies(const QString &file)
QStringList escapeDependencyPaths(const QStringList &paths) const
void writeSubDirs(QTextStream &t)
virtual QString var(const ProKey &var) const
bool writeDummyMakefile(QTextStream &t)
QString mkdir_p_asstring(const QString &dir, bool escape=true) const
QString depVar(const ProKey &var) const
QFileInfo fileInfo(QString file) const
QString varGlue(const ProKey &var, const QString &before, const QString &glue, const QString &after) const
void writeHeader(QTextStream &t)
virtual bool writeMakefile(QTextStream &t)
ProStringList fixLibFlags(const ProKey &var)
QString createResponseFile(const QString &baseName, const ProStringList &objList, const QString &prefix=QString()) const
QStringList finalizeDependencyPaths(const QStringList &paths) const
void writePkgConfigFile()
virtual QString escapeDependencyPath(const QString &path) const
QString fileFixify(const QString &file, FileFixifyTypes fix=FileFixifyDefault, bool canon=true) const
LinkerResponseFileInfo maybeCreateLinkerResponseFile() const
virtual LibFlagType parseLibFlag(const ProString &flag, ProString *arg)
QString fileVar(const ProKey &var) const
ProString fixLibFlag(const ProString &lib) override
bool processPrlFileBase(QString &origFile, QStringView origName, QStringView fixedBase, int slashOff) override
QString installRoot() const override
bool writeMakefile(QTextStream &) override
virtual QString escapeDependencyPath(const QString &path) const
bool startsWith(const ProString &sub, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
ProString mid(int off, int len=-1) const
QString toQString() const
int toInt(bool *ok=nullptr, int base=10) const
QString join(const ProString &sep) const
The QChar class provides a 16-bit Unicode character.
static bool isRelativePath(const QString &path)
The QFile class provides an interface for reading from and writing to files.
The QFileInfo class provides system-independent file information.
The QLatin1String class provides a thin wrapper around an US-ASCII/Latin-1 encoded string literal.
bool isEmpty() const noexcept
const_reference at(qsizetype i) const noexcept
const_iterator constBegin() const noexcept
qsizetype count() const noexcept
void prepend(rvalue_ref t)
void append(parameter_type t)
const_iterator constEnd() const noexcept
bool isEmpty(const ProKey &v) const
bool isActiveConfig(const QString &config, bool regex=false)
ProString first(const ProKey &variableName) const
ProStringList & values(const ProKey &v)
int intValue(const ProKey &v, int defaultValue=0) const
QStringList dependencies(const QString &file)
void addSourceFile(const QString &, uchar seek, SourceFileType type=TYPE_C)
The QRegularExpression class provides pattern matching using regular expressions.
The QString class provides a Unicode character string.
QString & replace(qsizetype i, qsizetype len, QChar after)
The QStringList class provides a list of strings.
The QStringView class provides a unified view on UTF-16 strings with a read-only subset of the QStrin...
bool startsWith(QStringView s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const noexcept
constexpr QStringView left(qsizetype n) const noexcept
constexpr QStringView mid(qsizetype pos, qsizetype n=-1) const noexcept
The QTextStream class provides a convenient interface for reading and writing text.
virtual void writeStandardParts(QTextStream &t)
virtual void writeObjectsPart(QTextStream &t)
bool processPrlFileBase(QString &origFile, QStringView origName, QStringView fixedBase, int slashOff) override
virtual QString escapeFilePath(const QString &path) const=0
QTextStream & endl(QTextStream &stream)
QList< QString > QStringList
GLsizei const GLchar *const * path
QtPrivate::QRegularExpressionMatchIteratorRangeBasedForIterator begin(const QRegularExpressionMatchIterator &iterator)
#define QStringLiteral(str)
QHttpRequestHeader header("GET", QUrl::toPercentEncoding("/index.html"))
[1]
static QStringList cpp_ext
static QString fixPathToTargetOS(const QString &in, bool fix_env=true, bool canonical=true)