diff options
Diffstat (limited to 'qmake')
-rw-r--r-- | qmake/generators/win32/mingw_make.cpp | 26 | ||||
-rw-r--r-- | qmake/generators/win32/mingw_make.h | 1 | ||||
-rw-r--r-- | qmake/generators/win32/msvc_nmake.cpp | 10 | ||||
-rw-r--r-- | qmake/generators/win32/msvc_nmake.h | 1 | ||||
-rw-r--r-- | qmake/generators/win32/msvc_vcproj.cpp | 9 | ||||
-rw-r--r-- | qmake/generators/win32/winmakefile.cpp | 51 | ||||
-rw-r--r-- | qmake/generators/win32/winmakefile.h | 1 |
7 files changed, 25 insertions, 74 deletions
diff --git a/qmake/generators/win32/mingw_make.cpp b/qmake/generators/win32/mingw_make.cpp index fd7f07aedd..cb83f25a80 100644 --- a/qmake/generators/win32/mingw_make.cpp +++ b/qmake/generators/win32/mingw_make.cpp @@ -74,13 +74,6 @@ QString MingwMakefileGenerator::getLibTarget() bool MingwMakefileGenerator::findLibraries() { QList<QMakeLocalFileName> dirs; - { - const QStringList &libpaths = project->values("QMAKE_LIBDIR"); - for (QStringList::ConstIterator libpathit = libpaths.begin(); - libpathit != libpaths.end(); ++libpathit) - dirs.append(QMakeLocalFileName((*libpathit))); - } - const QString lflags[] = { "QMAKE_LIBS", "QMAKE_LIBS_PRIVATE", QString() }; for (int i = 0; !lflags[i].isNull(); i++) { QStringList &l = project->values(lflags[i]); @@ -259,6 +252,8 @@ void MingwMakefileGenerator::init() project->values("TARGET_PRL").append(project->first("TARGET")); + project->values("QMAKE_L_FLAG") << "-L"; + processVars(); if (!project->values("RES_FILE").isEmpty()) { @@ -341,25 +336,12 @@ void MingwMakefileGenerator::writeLibsPart(QTextStream &t) } else { t << "LINK = " << var("QMAKE_LINK") << endl; t << "LFLAGS = " << var("QMAKE_LFLAGS") << endl; - t << "LIBS = "; - if(!project->values("QMAKE_LIBDIR").isEmpty()) - writeLibDirPart(t); - t << var("QMAKE_LIBS").replace(QRegExp("(\\slib|^lib)")," -l") << ' ' + t << "LIBS = " + << var("QMAKE_LIBS").replace(QRegExp("(\\slib|^lib)")," -l") << ' ' << var("QMAKE_LIBS_PRIVATE").replace(QRegExp("(\\slib|^lib)")," -l") << endl; } } -void MingwMakefileGenerator::writeLibDirPart(QTextStream &t) -{ - QStringList libDirs = project->values("QMAKE_LIBDIR"); - for (int i = 0; i < libDirs.size(); ++i) { - libDirs[i].remove("\""); - if (libDirs[i].endsWith("\\")) - libDirs[i].chop(1); - } - t << valGlue(libDirs, "-L" + quote, quote + " -L" + quote, quote) << " "; -} - void MingwMakefileGenerator::writeObjectsPart(QTextStream &t) { if (project->values("OBJECTS").count() < var("QMAKE_LINK_OBJECT_MAX").toInt()) { diff --git a/qmake/generators/win32/mingw_make.h b/qmake/generators/win32/mingw_make.h index 376eacd667..3d05c2809d 100644 --- a/qmake/generators/win32/mingw_make.h +++ b/qmake/generators/win32/mingw_make.h @@ -60,7 +60,6 @@ private: void writeMingwParts(QTextStream &); void writeIncPart(QTextStream &t); void writeLibsPart(QTextStream &t); - void writeLibDirPart(QTextStream &t); void writeObjectsPart(QTextStream &t); void writeBuildRulesPart(QTextStream &t); void writeRcFilePart(QTextStream &t); diff --git a/qmake/generators/win32/msvc_nmake.cpp b/qmake/generators/win32/msvc_nmake.cpp index 69ead084ac..cf4fb96872 100644 --- a/qmake/generators/win32/msvc_nmake.cpp +++ b/qmake/generators/win32/msvc_nmake.cpp @@ -243,6 +243,8 @@ void NmakeMakefileGenerator::init() return; } + project->values("QMAKE_L_FLAG") << "/LIBPATH:"; + processVars(); if (!project->values("RES_FILE").isEmpty()) { @@ -294,14 +296,6 @@ void NmakeMakefileGenerator::init() } } -void NmakeMakefileGenerator::writeLibDirPart(QTextStream &t) -{ - QStringList libDirs = project->values("QMAKE_LIBDIR"); - for (int i = 0; i < libDirs.size(); ++i) - libDirs[i].remove("\""); - t << valGlue(libDirs,"/LIBPATH:\"","\" /LIBPATH:\"","\"") << " "; -} - void NmakeMakefileGenerator::writeImplicitRulesPart(QTextStream &t) { t << ".SUFFIXES:"; diff --git a/qmake/generators/win32/msvc_nmake.h b/qmake/generators/win32/msvc_nmake.h index d0e6ec7aaf..1e32b5637d 100644 --- a/qmake/generators/win32/msvc_nmake.h +++ b/qmake/generators/win32/msvc_nmake.h @@ -50,7 +50,6 @@ class NmakeMakefileGenerator : public Win32MakefileGenerator { bool init_flag; void writeNmakeParts(QTextStream &); - void writeLibDirPart(QTextStream &t); bool writeMakefile(QTextStream &); void writeImplicitRulesPart(QTextStream &t); void writeBuildRulesPart(QTextStream &t); diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp index 7820330da0..7291c42ed9 100644 --- a/qmake/generators/win32/msvc_vcproj.cpp +++ b/qmake/generators/win32/msvc_vcproj.cpp @@ -697,6 +697,8 @@ void VcprojGenerator::init() if (project->values("QMAKESPEC").isEmpty()) project->values("QMAKESPEC").append(qgetenv("QMAKESPEC")); + project->values("QMAKE_L_FLAG") << "/LIBPATH:"; + processVars(); if(!project->values("VERSION").isEmpty()) { @@ -1008,13 +1010,6 @@ void VcprojGenerator::initLinkerTool() VCConfiguration &conf = vcProject.Configuration; conf.linker.parseOptions(project->values("QMAKE_LFLAGS")); - foreach (const QString &libDir, project->values("QMAKE_LIBDIR")) { - if (libDir.startsWith("/LIBPATH:")) - conf.linker.AdditionalLibraryDirectories += libDir.mid(9); - else - conf.linker.AdditionalLibraryDirectories += libDir; - } - if (!project->values("DEF_FILE").isEmpty()) conf.linker.ModuleDefinitionFile = project->first("DEF_FILE"); diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp index acd50c7f3f..17563043b6 100644 --- a/qmake/generators/win32/winmakefile.cpp +++ b/qmake/generators/win32/winmakefile.cpp @@ -107,12 +107,6 @@ bool Win32MakefileGenerator::findLibraries() { QList<QMakeLocalFileName> dirs; - { - const QStringList &libpaths = project->values("QMAKE_LIBDIR"); - for (QStringList::ConstIterator libpathit = libpaths.begin(); - libpathit != libpaths.end(); ++libpathit) - dirs.append(QMakeLocalFileName((*libpathit))); - } const QString lflags[] = { "QMAKE_LIBS", "QMAKE_LIBS_PRIVATE", QString() }; for (int i = 0; !lflags[i].isNull(); i++) { QStringList &l = project->values(lflags[i]); @@ -222,13 +216,9 @@ Win32MakefileGenerator::findLibraries() void Win32MakefileGenerator::processPrlFiles() { + const QString libArg = project->first("QMAKE_L_FLAG"); QHash<QString, bool> processed; QList<QMakeLocalFileName> libdirs; - { - const QStringList &libpaths = project->values("QMAKE_LIBDIR"); - for (QStringList::ConstIterator libpathit = libpaths.begin(); libpathit != libpaths.end(); ++libpathit) - libdirs.append(QMakeLocalFileName((*libpathit))); - } for(bool ret = false; true; ret = false) { //read in any prl files included.. QStringList l_out; @@ -237,13 +227,11 @@ Win32MakefileGenerator::processPrlFiles() QString opt = (*it).trimmed(); if((opt[0] == '\'' || opt[0] == '"') && opt[(int)opt.length()-1] == opt[0]) opt = opt.mid(1, opt.length()-2); - if(opt.startsWith("/")) { - if(opt.startsWith("/LIBPATH:")) { - QMakeLocalFileName l(opt.mid(9)); - if(!libdirs.contains(l)) - libdirs.append(l); - } - } else if(!processed.contains(opt)) { + if (opt.startsWith(libArg)) { + QMakeLocalFileName l(opt.mid(libArg.length())); + if (!libdirs.contains(l)) + libdirs.append(l); + } else if (!opt.startsWith("/") && !processed.contains(opt)) { if(processPrlFile(opt)) { processed.insert(opt, true); ret = true; @@ -336,13 +324,19 @@ void Win32MakefileGenerator::processVars() if(!(*incDir_it).isEmpty()) (*incDir_it) = Option::fixPathToTargetOS((*incDir_it), false, false); } + + QString libArg = project->first("QMAKE_L_FLAG"); + QStringList libs; QStringList &libDir = project->values("QMAKE_LIBDIR"); for(QStringList::Iterator libDir_it = libDir.begin(); libDir_it != libDir.end(); ++libDir_it) { - if(!(*libDir_it).isEmpty()) - (*libDir_it) = Option::fixPathToTargetOS((*libDir_it), false, false); + if (!(*libDir_it).isEmpty()) { + (*libDir_it).remove("\""); + if ((*libDir_it).endsWith("\\")) + (*libDir_it).chop(1); + libs << libArg + escapeFilePath(Option::fixPathToTargetOS((*libDir_it), false, false)); + } } - - project->values("QMAKE_LIBS") += escapeFilePaths(project->values("LIBS")); + project->values("QMAKE_LIBS") += libs + escapeFilePaths(project->values("LIBS")); project->values("QMAKE_LIBS_PRIVATE") += escapeFilePaths(project->values("LIBS_PRIVATE")); if (project->values("TEMPLATE").contains("app")) { @@ -768,21 +762,10 @@ void Win32MakefileGenerator::writeLibsPart(QTextStream &t) } else { t << "LINK = " << var("QMAKE_LINK") << endl; t << "LFLAGS = " << var("QMAKE_LFLAGS") << endl; - t << "LIBS = "; - if(!project->values("QMAKE_LIBDIR").isEmpty()) - writeLibDirPart(t); - t << var("QMAKE_LIBS") << " " << var("QMAKE_LIBS_PRIVATE") << endl; + t << "LIBS = " << var("QMAKE_LIBS") << " " << var("QMAKE_LIBS_PRIVATE") << endl; } } -void Win32MakefileGenerator::writeLibDirPart(QTextStream &t) -{ - QStringList libDirs = project->values("QMAKE_LIBDIR"); - for (int i = 0; i < libDirs.size(); ++i) - libDirs[i].remove("\""); - t << valGlue(libDirs,"-L\"","\" -L\"","\"") << " "; -} - void Win32MakefileGenerator::writeObjectsPart(QTextStream &t) { t << "OBJECTS = " << valList(escapeDependencyPaths(project->values("OBJECTS"))) << endl; diff --git a/qmake/generators/win32/winmakefile.h b/qmake/generators/win32/winmakefile.h index 12633285ff..26a7208dee 100644 --- a/qmake/generators/win32/winmakefile.h +++ b/qmake/generators/win32/winmakefile.h @@ -56,7 +56,6 @@ protected: virtual void writeCleanParts(QTextStream &t); virtual void writeStandardParts(QTextStream &t); virtual void writeIncPart(QTextStream &t); - virtual void writeLibDirPart(QTextStream &t); virtual void writeLibsPart(QTextStream &t); virtual void writeObjectsPart(QTextStream &t); virtual void writeImplicitRulesPart(QTextStream &t); |