diff options
author | Rohan McGovern <rohan.mcgovern@nokia.com> | 2009-05-26 00:46:54 (GMT) |
---|---|---|
committer | Rohan McGovern <rohan.mcgovern@nokia.com> | 2009-05-26 01:18:23 (GMT) |
commit | 2248d63c1a32ae84bb6d0bde9021a8074db1b4c9 (patch) | |
tree | 5351227c2f01ecf78e0be31bfaecd0d4e75c4972 /qmake/generators | |
parent | a4ca38bab521e1f0095b9c90c4623ca9d41d219b (diff) | |
download | Qt-2248d63c1a32ae84bb6d0bde9021a8074db1b4c9.zip Qt-2248d63c1a32ae84bb6d0bde9021a8074db1b4c9.tar.gz Qt-2248d63c1a32ae84bb6d0bde9021a8074db1b4c9.tar.bz2 |
Fixed qmake writing targets into the root of the current drive when
DESTDIR=./ and using Windows, nmake and shadow builds.
qmake would canonicalize the DESTDIR of "./" to "". Then it would check
if the original DESTDIR ended with "/", and if so, append it to the new
DESTDIR, resulting in a DESTDIR of "/" - the root of the current drive.
Don't do that.
This bug doesn't occur with in-source builds because qmake detects that
the source and build directories are the same directory and replaces
the DESTDIR of "./" with "" before it reaches the buggy code.
Autotest: included
Reviewed-by: Lincoln Ramsay
Diffstat (limited to 'qmake/generators')
-rw-r--r-- | qmake/generators/win32/winmakefile.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp index 87f55cf..c7f00dd 100644 --- a/qmake/generators/win32/winmakefile.cpp +++ b/qmake/generators/win32/winmakefile.cpp @@ -626,7 +626,7 @@ void Win32MakefileGenerator::writeStandardParts(QTextStream &t) // do this here so we can set DEST_TARGET to be the complete path to the final target if it is needed. QString orgDestDir = var("DESTDIR"); QString destDir = Option::fixPathToTargetOS(orgDestDir, false); - if (orgDestDir.endsWith('/') || orgDestDir.endsWith(Option::dir_sep)) + if (!destDir.isEmpty() && (orgDestDir.endsWith('/') || orgDestDir.endsWith(Option::dir_sep))) destDir += Option::dir_sep; QString target = QString(project->first("TARGET")+project->first("TARGET_EXT")); target.remove("\""); |