MOC: Avoiding MAX_PATH limit on Windows
See: http://msdn.microsoft.com/en-us/library/aa365247(v=VS.85).aspx Task-number: QTBUG-26157 Change-Id: Ie74481cd06c31149a060a432352da5b2731caaef Reviewed-by: Debao Zhang <dbzhang800@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
This commit is contained in:
parent
8b92d770a0
commit
3db8877d28
@ -67,7 +67,15 @@ static QByteArray combinePath(const QByteArray &infile, const QByteArray &outfil
|
||||
{
|
||||
QFileInfo inFileInfo(QDir::current(), QFile::decodeName(infile));
|
||||
QFileInfo outFileInfo(QDir::current(), QFile::decodeName(outfile));
|
||||
return QFile::encodeName(outFileInfo.dir().relativeFilePath(inFileInfo.filePath()));
|
||||
const QByteArray relativePath = QFile::encodeName(outFileInfo.dir().relativeFilePath(inFileInfo.filePath()));
|
||||
#ifdef Q_OS_WIN
|
||||
// It's a system limitation.
|
||||
// It depends on the Win API function which is used by the program to open files.
|
||||
// cl apparently uses the functions that have the MAX_PATH limitation.
|
||||
if (outFileInfo.dir().absolutePath().length() + relativePath.length() + 1 >= 260)
|
||||
return QFile::encodeName(inFileInfo.absoluteFilePath());
|
||||
#endif
|
||||
return relativePath;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user