diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2015-10-14 15:45:35 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@theqtcompany.com> | 2015-10-14 15:45:35 +0200 |
commit | 4456984da780b14572e1ec0f079a4d349ab299bd (patch) | |
tree | f586a281a81c57c91c49e83a5d3ec6c7eece0578 /qmake/generators/unix/unixmake.cpp | |
parent | e824abd987d77efaa085fe1f9fb514d270798d55 (diff) | |
parent | 281121697340084f7d385eab530f41916789b94d (diff) |
Merge remote-tracking branch 'origin/5.6' into dev
Conflicts:
tests/auto/corelib/io/qfile/tst_qfile.cpp
tests/auto/corelib/io/qprocess/tst_qprocess.cpp
tests/auto/corelib/tools/qversionnumber/qversionnumber.pro
Change-Id: Ia93ce500349d96a2fbf0b4a37b73f088cc505c6e
Diffstat (limited to 'qmake/generators/unix/unixmake.cpp')
-rw-r--r-- | qmake/generators/unix/unixmake.cpp | 440 |
1 files changed, 118 insertions, 322 deletions
diff --git a/qmake/generators/unix/unixmake.cpp b/qmake/generators/unix/unixmake.cpp index 03196fbc3a..1d9ebb35e3 100644 --- a/qmake/generators/unix/unixmake.cpp +++ b/qmake/generators/unix/unixmake.cpp @@ -45,21 +45,11 @@ QT_BEGIN_NAMESPACE void UnixMakefileGenerator::init() { - if(project->isEmpty("QMAKE_EXTENSION_SHLIB")) { - if(project->isEmpty("QMAKE_CYGWIN_SHLIB")) { - project->values("QMAKE_EXTENSION_SHLIB").append("so"); - } else { - project->values("QMAKE_EXTENSION_SHLIB").append("dll"); - } - } - ProStringList &configs = project->values("CONFIG"); if(project->isEmpty("ICON") && !project->isEmpty("RC_FILE")) project->values("ICON") = project->values("RC_FILE"); if(project->isEmpty("QMAKE_EXTENSION_PLUGIN")) project->values("QMAKE_EXTENSION_PLUGIN").append(project->first("QMAKE_EXTENSION_SHLIB")); - if(project->isEmpty("QMAKE_LIBTOOL")) - project->values("QMAKE_LIBTOOL").append("libtool --silent"); project->values("QMAKE_ORIG_TARGET") = project->values("TARGET"); @@ -111,11 +101,6 @@ UnixMakefileGenerator::init() project->values("QMAKE_LFLAGS") += project->values("QMAKE_LFLAGS_PREBIND"); if(!project->isEmpty("QMAKE_INCDIR")) project->values("INCLUDEPATH") += project->values("QMAKE_INCDIR"); - project->values("QMAKE_L_FLAG") - << (project->isActiveConfig("rvct_linker") ? "--userlibpath " - : project->isActiveConfig("armcc_linker") ? "-L--userlibpath=" - : project->isActiveConfig("ti_linker") ? "--search_path=" - : "-L"); ProStringList ldadd; if(!project->isEmpty("QMAKE_LIBDIR")) { const ProStringList &libdirs = project->values("QMAKE_LIBDIR"); @@ -157,19 +142,19 @@ UnixMakefileGenerator::init() if(project->isActiveConfig("GNUmake") && !project->isEmpty("QMAKE_CFLAGS_DEPS")) include_deps = true; //do not generate deps - if(project->isActiveConfig("compile_libtool")) - Option::obj_ext = ".lo"; //override the .o MakefileGenerator::init(); - QString comps[] = { "C", "CXX", "OBJC", "OBJCXX", QString() }; - for(int i = 0; !comps[i].isNull(); i++) { + if (project->isActiveConfig("objective_c")) + project->values("QMAKE_BUILTIN_COMPILERS") << "OBJC" << "OBJCXX"; + + foreach (const ProString &compiler, project->values("QMAKE_BUILTIN_COMPILERS")) { QString compile_flag = var("QMAKE_COMPILE_FLAG"); if(compile_flag.isEmpty()) compile_flag = "-c"; if(doPrecompiledHeaders() && !project->isEmpty("PRECOMPILED_HEADER")) { - QString pchFlags = var(ProKey("QMAKE_" + comps[i] + "FLAGS_USE_PRECOMPILE")); + QString pchFlags = var(ProKey("QMAKE_" + compiler + "FLAGS_USE_PRECOMPILE")); QString pchBaseName; if(!project->isEmpty("PRECOMPILED_DIR")) { @@ -196,22 +181,11 @@ UnixMakefileGenerator::init() pchBaseName += project->first("QMAKE_PCH_OUTPUT_EXT").toQString(); pchBaseName += Option::dir_sep; - QString pchOutputFile; - - if(comps[i] == "C") { - pchOutputFile = "c"; - } else if(comps[i] == "CXX") { - pchOutputFile = "c++"; - } else if(project->isActiveConfig("objective_c")) { - if(comps[i] == "OBJC") - pchOutputFile = "objective-c"; - else if(comps[i] == "OBJCXX") - pchOutputFile = "objective-c++"; - } - if(!pchOutputFile.isEmpty()) { + ProString language = project->first(ProKey("QMAKE_LANGUAGE_" + compiler)); + if (!language.isEmpty()) { pchFlags.replace("${QMAKE_PCH_OUTPUT}", - escapeFilePath(pchBaseName + pchOutputFile + headerSuffix)); + escapeFilePath(pchBaseName + language + headerSuffix)); } } @@ -219,26 +193,30 @@ UnixMakefileGenerator::init() compile_flag += " " + pchFlags; } - QString cflags; - if(comps[i] == "OBJC" || comps[i] == "OBJCXX") - cflags += " $(CFLAGS)"; - else - cflags += " $(" + comps[i] + "FLAGS)"; - compile_flag += cflags + " $(INCPATH)"; + QString compilerExecutable; + if (compiler == "C" || compiler == "OBJC") { + compilerExecutable = "$(CC)"; + compile_flag += " $(CFLAGS)"; + } else { + compilerExecutable = "$(CXX)"; + compile_flag += " $(CXXFLAGS)"; + } + + compile_flag += " $(INCPATH)"; - QString compiler = comps[i]; - if (compiler == "C") - compiler = "CC"; + ProString compilerVariable = compiler; + if (compilerVariable == "C") + compilerVariable = ProString("CC"); - const ProKey runComp("QMAKE_RUN_" + compiler); + const ProKey runComp("QMAKE_RUN_" + compilerVariable); if(project->isEmpty(runComp)) - project->values(runComp).append("$(" + compiler + ") " + compile_flag + " " + var("QMAKE_CC_O_FLAG") + "$obj $src"); - const ProKey runCompImp("QMAKE_RUN_" + compiler + "_IMP"); + project->values(runComp).append(compilerExecutable + " " + compile_flag + " " + var("QMAKE_CC_O_FLAG") + "$obj $src"); + const ProKey runCompImp("QMAKE_RUN_" + compilerVariable + "_IMP"); if(project->isEmpty(runCompImp)) - project->values(runCompImp).append("$(" + compiler + ") " + compile_flag + " " + var("QMAKE_CC_O_FLAG") + "\"$@\" \"$<\""); + project->values(runCompImp).append(compilerExecutable + " " + compile_flag + " " + var("QMAKE_CC_O_FLAG") + "\"$@\" \"$<\""); } - if (project->isActiveConfig("mac") && !project->isEmpty("TARGET") && !project->isActiveConfig("compile_libtool") && + if (project->isActiveConfig("mac") && !project->isEmpty("TARGET") && ((project->isActiveConfig("build_pass") || project->isEmpty("BUILDS")))) { ProString bundle; if(project->isActiveConfig("bundle") && !project->isEmpty("QMAKE_BUNDLE_EXTENSION")) { @@ -292,6 +270,11 @@ UnixMakefileGenerator::init() init2(); project->values("QMAKE_INTERNAL_PRL_LIBS") << "QMAKE_LIBS"; + ProString target = project->first("TARGET"); + int slsh = target.lastIndexOf(Option::dir_sep); + if (slsh != -1) + target.chopFront(slsh + 1); + project->values("LIB_TARGET").prepend(target); if(!project->isEmpty("QMAKE_MAX_FILES_PER_AR")) { bool ok; int max_files = project->first("QMAKE_MAX_FILES_PER_AR").toInt(&ok); @@ -315,56 +298,14 @@ UnixMakefileGenerator::init() project->values("QMAKE_INTERNAL_PRL_LIBS") << "QMAKE_AR_SUBLIBS"; } } - - if(project->isActiveConfig("compile_libtool")) { - static const char * const libtoolify[] = { - "QMAKE_RUN_CC", "QMAKE_RUN_CC_IMP", "QMAKE_RUN_CXX", "QMAKE_RUN_CXX_IMP", - "QMAKE_LINK_THREAD", "QMAKE_LINK", "QMAKE_AR_CMD", "QMAKE_LINK_SHLIB_CMD", 0 - }; - for (int i = 0; libtoolify[i]; i++) { - ProStringList &l = project->values(libtoolify[i]); - if(!l.isEmpty()) { - QString libtool_flags, comp_flags; - if (!strncmp(libtoolify[i], "QMAKE_LINK", 10) || !strcmp(libtoolify[i], "QMAKE_AR_CMD")) { - libtool_flags += " --mode=link"; - if(project->isActiveConfig("staticlib")) { - libtool_flags += " -static"; - } else { - if(!project->isEmpty("QMAKE_LIB_FLAG")) { - int maj = project->first("VER_MAJ").toInt(); - int min = project->first("VER_MIN").toInt(); - int pat = project->first("VER_PAT").toInt(); - comp_flags += " -version-info " + QString::number(10*maj + min) + - ":" + QString::number(pat) + ":0"; - if (strcmp(libtoolify[i], "QMAKE_AR_CMD")) { - QString rpath = Option::output_dir; - if(!project->isEmpty("DESTDIR")) { - rpath = project->first("DESTDIR").toQString(); - if(QDir::isRelativePath(rpath)) - rpath.prepend(Option::output_dir + Option::dir_sep); - } - comp_flags += " -rpath " + escapeFilePath(Option::fixPathToTargetOS(rpath, false)); - } - } - } - if(project->isActiveConfig("plugin")) - libtool_flags += " -module"; - } else { - libtool_flags += " --mode=compile"; - } - l.first().prepend("$(LIBTOOL)" + libtool_flags + " "); - if(!comp_flags.isEmpty()) - l.first() += comp_flags; - } - } - } } QStringList -&UnixMakefileGenerator::findDependencies(const QString &file) +&UnixMakefileGenerator::findDependencies(const QString &f) { - QStringList &ret = MakefileGenerator::findDependencies(file); + QStringList &ret = MakefileGenerator::findDependencies(f); if (doPrecompiledHeaders() && !project->isEmpty("PRECOMPILED_HEADER")) { + ProString file = f; QString header_prefix; if(!project->isEmpty("PRECOMPILED_DIR")) header_prefix = project->first("PRECOMPILED_DIR").toQString(); @@ -384,45 +325,33 @@ QStringList QString header_suffix = project->isActiveConfig("clang_pch_style") ? project->first("QMAKE_PCH_OUTPUT_EXT").toQString() : ""; header_prefix += Option::dir_sep + project->first("QMAKE_PRECOMP_PREFIX"); - for(QStringList::Iterator it = Option::c_ext.begin(); it != Option::c_ext.end(); ++it) { - if(file.endsWith(*it)) { - if(!project->isEmpty("QMAKE_CFLAGS_PRECOMPILE")) { - QString precomp_c_h = header_prefix + "c" + header_suffix; - if(!ret.contains(precomp_c_h)) - ret += precomp_c_h; - } - if(project->isActiveConfig("objective_c")) { - if(!project->isEmpty("QMAKE_OBJCFLAGS_PRECOMPILE")) { - QString precomp_objc_h = header_prefix + "objective-c" + header_suffix; - if(!ret.contains(precomp_objc_h)) - ret += precomp_objc_h; - } - if(!project->isEmpty("QMAKE_OBJCXXFLAGS_PRECOMPILE")) { - QString precomp_objcpp_h = header_prefix + "objective-c++" + header_suffix; - if(!ret.contains(precomp_objcpp_h)) - ret += precomp_objcpp_h; - } - } - break; - } - } - for(QStringList::Iterator it = Option::cpp_ext.begin(); it != Option::cpp_ext.end(); ++it) { - if(file.endsWith(*it)) { - if(!project->isEmpty("QMAKE_CXXFLAGS_PRECOMPILE")) { - QString precomp_cpp_h = header_prefix + "c++" + header_suffix; - if(!ret.contains(precomp_cpp_h)) - ret += precomp_cpp_h; - } - if(project->isActiveConfig("objective_c")) { - if(!project->isEmpty("QMAKE_OBJCXXFLAGS_PRECOMPILE")) { - QString precomp_objcpp_h = header_prefix + "objective-c++" + header_suffix; - if(!ret.contains(precomp_objcpp_h)) - ret += precomp_objcpp_h; - } - } - break; + + foreach (const ProString &compiler, project->values("QMAKE_BUILTIN_COMPILERS")) { + if (project->isEmpty(ProKey("QMAKE_" + compiler + "FLAGS_PRECOMPILE"))) + continue; + + ProString language = project->first(ProKey("QMAKE_LANGUAGE_" + compiler)); + if (language.isEmpty()) + continue; + + // Unfortunately we were not consistent about the C++ naming + ProString extensionSuffix = compiler; + if (extensionSuffix == "CXX") + extensionSuffix = ProString("CPP"); + + foreach (const ProString &extension, project->values(ProKey("QMAKE_EXT_" + extensionSuffix))) { + if (!file.endsWith(extension.toQString())) + continue; + + QString precompiledHeader = header_prefix + language + header_suffix; + if (!ret.contains(precompiledHeader)) + ret += precompiledHeader; + + goto foundPrecompiledDependency; } } + foundPrecompiledDependency: + ; // Hurray!! } } return ret; @@ -435,20 +364,19 @@ UnixMakefileGenerator::fixLibFlag(const ProString &lib) } bool -UnixMakefileGenerator::findLibraries() +UnixMakefileGenerator::findLibraries(bool linkPrl, bool mergeLflags) { - ProString libArg = project->first("QMAKE_L_FLAG"); - if (libArg == "-L") - libArg.clear(); - QList<QMakeLocalFileName> libdirs; - int libidx = 0; + QList<QMakeLocalFileName> libdirs, frameworkdirs; + int libidx = 0, fwidx = 0; foreach (const ProString &dlib, project->values("QMAKE_DEFAULT_LIBDIRS")) libdirs.append(QMakeLocalFileName(dlib.toQString())); + frameworkdirs.append(QMakeLocalFileName("/System/Library/Frameworks")); + frameworkdirs.append(QMakeLocalFileName("/Library/Frameworks")); static const char * const lflags[] = { "QMAKE_LIBS", "QMAKE_LIBS_PRIVATE", 0 }; for (int i = 0; lflags[i]; i++) { ProStringList &l = project->values(lflags[i]); for (ProStringList::Iterator it = l.begin(); it != l.end(); ) { - QString stub, dir, extn, opt = (*it).trimmed().toQString(); + QString opt = (*it).toQString(); if(opt.startsWith("-")) { if(opt.startsWith("-L")) { QString lib = opt.mid(2); @@ -459,173 +387,60 @@ UnixMakefileGenerator::findLibraries() continue; } libdirs.insert(libidx++, f); - if (!libArg.isEmpty()) - *it = libArg + f.real(); } else if(opt.startsWith("-l")) { - if (project->isActiveConfig("rvct_linker") || project->isActiveConfig("armcc_linker")) { - (*it) = "lib" + opt.mid(2) + ".so"; - } else if (project->isActiveConfig("ti_linker")) { - (*it) = opt.mid(2); - } else { - stub = opt.mid(2); - } - } else if (target_mode == TARG_MAC_MODE && opt.startsWith("-framework")) { - if (opt.length() == 10) - ++it; - // Skip - } - } else { - extn = dir = ""; - stub = opt; - int slsh = opt.lastIndexOf(Option::dir_sep); - if(slsh != -1) { - dir = opt.left(slsh); - stub = opt.mid(slsh+1); - } - QRegExp stub_reg("^.*lib(" + stub + "[^./=]*)\\.(.*)$"); - if(stub_reg.exactMatch(stub)) { - stub = stub_reg.cap(1); - extn = stub_reg.cap(2); - } - } - if(!stub.isEmpty()) { - stub += project->first(ProKey("QMAKE_" + stub.toUpper() + "_SUFFIX")).toQString(); - bool found = false; - ProStringList extens; - if(!extn.isNull()) - extens << extn; - else + QString lib = opt.mid(2); + ProStringList extens; extens << project->first("QMAKE_EXTENSION_SHLIB") << "a"; - for (ProStringList::Iterator extit = extens.begin(); extit != extens.end(); ++extit) { - if(dir.isNull()) { - for(QList<QMakeLocalFileName>::Iterator dep_it = libdirs.begin(); dep_it != libdirs.end(); ++dep_it) { - QString pathToLib = ((*dep_it).local() + '/' - + project->first("QMAKE_PREFIX_SHLIB") - + stub + "." + (*extit)); - if(exists(pathToLib)) { - (*it) = "-l" + stub; - found = true; - break; - } - } - } else { - QString lib = dir + project->first("QMAKE_PREFIX_SHLIB") + stub + "." + (*extit); - if (exists(lib)) { - (*it) = lib; - found = true; - break; - } - } - } - if(!found && project->isActiveConfig("compile_libtool")) { - for(int dep_i = 0; dep_i < libdirs.size(); ++dep_i) { - if (exists(libdirs[dep_i].local() + '/' + project->first("QMAKE_PREFIX_SHLIB") + stub + Option::libtool_ext)) { - (*it) = libdirs[dep_i].real() + Option::dir_sep + project->first("QMAKE_PREFIX_SHLIB") + stub + Option::libtool_ext; - found = true; - break; - } - } - } - } - ++it; - } - } - return false; -} - -QString linkLib(const QString &file, const QString &libName) { - QString ret; - QRegExp reg("^.*lib(" + QRegExp::escape(libName) + "[^./=]*).*$"); - if(reg.exactMatch(file)) - ret = "-l" + reg.cap(1); - return ret; -} - -void -UnixMakefileGenerator::processPrlFiles() -{ - const QString libArg = project->first("QMAKE_L_FLAG").toQString(); - QList<QMakeLocalFileName> libdirs, frameworkdirs; - int libidx = 0, fwidx = 0; - foreach (const ProString &dlib, project->values("QMAKE_DEFAULT_LIBDIRS")) - libdirs.append(QMakeLocalFileName(dlib.toQString())); - frameworkdirs.append(QMakeLocalFileName("/System/Library/Frameworks")); - frameworkdirs.append(QMakeLocalFileName("/Library/Frameworks")); - static const char * const lflags[] = { "QMAKE_LIBS", "QMAKE_LIBS_PRIVATE", 0 }; - for (int i = 0; lflags[i]; i++) { - ProStringList &l = project->values(lflags[i]); - for(int lit = 0; lit < l.size(); ++lit) { - QString opt = l.at(lit).trimmed().toQString(); - if(opt.startsWith("-")) { - if (opt.startsWith(libArg)) { - QMakeLocalFileName l(opt.mid(libArg.length())); - if(!libdirs.contains(l)) - libdirs.insert(libidx++, l); - } else if(opt.startsWith("-l")) { - QString lib = opt.right(opt.length() - 2); - QString prl_ext = project->first(ProKey("QMAKE_" + lib.toUpper() + "_SUFFIX")).toQString(); - for(int dep_i = 0; dep_i < libdirs.size(); ++dep_i) { - const QMakeLocalFileName &lfn = libdirs[dep_i]; - if(!project->isActiveConfig("compile_libtool")) { //give them the .libs.. - QString la = lfn.local() + '/' + project->first("QMAKE_PREFIX_SHLIB") + lib + Option::libtool_ext; - if (exists(la) && QFile::exists(lfn.local() + "/.libs")) { - QString dot_libs = lfn.real() + Option::dir_sep + ".libs"; - l.append("-L" + dot_libs); - libdirs.insert(libidx++, QMakeLocalFileName(dot_libs)); - } - } - - QString prl = lfn.local() + '/' + project->first("QMAKE_PREFIX_SHLIB") + lib + prl_ext; - if(processPrlFile(prl)) { - if(prl.startsWith(lfn.local())) - prl.replace(0, lfn.local().length(), lfn.real()); - opt = linkLib(prl, lib); - break; + for (QList<QMakeLocalFileName>::Iterator dep_it = libdirs.begin(); + dep_it != libdirs.end(); ++dep_it) { + QString libBase = (*dep_it).local() + '/' + + project->first("QMAKE_PREFIX_SHLIB") + lib; + if (linkPrl && processPrlFile(libBase)) + goto found; + for (ProStringList::Iterator extit = extens.begin(); extit != extens.end(); ++extit) { + if (exists(libBase + '.' + (*extit))) + goto found; } } + found: ; } else if (target_mode == TARG_MAC_MODE && opt.startsWith("-F")) { - QMakeLocalFileName f(opt.right(opt.length()-2)); - if(!frameworkdirs.contains(f)) + QMakeLocalFileName f(opt.mid(2)); + if (!frameworkdirs.contains(f)) frameworkdirs.insert(fwidx++, f); } else if (target_mode == TARG_MAC_MODE && opt.startsWith("-framework")) { - if(opt.length() > 11) - opt = opt.mid(11); - else - opt = l.at(++lit).toQString(); - opt = opt.trimmed(); - foreach (const QMakeLocalFileName &dir, frameworkdirs) { - QString prl = dir.local() + "/" + opt + ".framework/" + opt + Option::prl_ext; - if(processPrlFile(prl)) - break; + if (linkPrl) { + if (opt.length() == 10) + opt = (*++it).toQString(); + else + opt = opt.mid(10).trimmed(); + foreach (const QMakeLocalFileName &dir, frameworkdirs) { + QString prl = dir.local() + "/" + opt + ".framework/" + opt + Option::prl_ext; + if (processPrlFile(prl)) + break; + } + } else { + if (opt.length() == 10) + ++it; + // Skip } } - } else if(!opt.isNull()) { - QString lib = opt; - processPrlFile(lib); -#if 0 - if(ret) - opt = linkLib(lib, ""); -#endif - if(!opt.isEmpty()) - for (int k = 0; k < l.size(); ++k) - l[k] = l.at(k).toQString().replace(lib, opt); + } else if (linkPrl) { + processPrlFile(opt); } ProStringList &prl_libs = project->values("QMAKE_CURRENT_PRL_LIBS"); - if(!prl_libs.isEmpty()) { - for(int prl = 0; prl < prl_libs.size(); ++prl) - l.insert(++lit, prl_libs.at(prl)); - prl_libs.clear(); - } + for (int prl = 0; prl < prl_libs.size(); ++prl) + it = l.insert(++it, prl_libs.at(prl)); + prl_libs.clear(); + ++it; } - //merge them into a logical order - if(!project->isActiveConfig("no_smart_library_merge") && !project->isActiveConfig("no_lflags_merge")) { + if (mergeLflags) { QHash<ProKey, ProStringList> lflags; for(int lit = 0; lit < l.size(); ++lit) { ProKey arch("default"); - ProString opt = l.at(lit).trimmed(); - if(opt.startsWith("-")) { + ProString opt = l.at(lit); + if (opt.startsWith('-')) { if (target_mode == TARG_MAC_MODE && opt.startsWith("-Xarch")) { if (opt.length() > 7) { arch = opt.mid(7).toKey(); @@ -633,36 +448,27 @@ UnixMakefileGenerator::processPrlFiles() } } - if (opt.startsWith(libArg) || - (target_mode == TARG_MAC_MODE && opt.startsWith("-F"))) { - if(!lflags[arch].contains(opt)) + if (opt.startsWith("-L") + || (target_mode == TARG_MAC_MODE && opt.startsWith("-F"))) { + if (!lflags[arch].contains(opt)) lflags[arch].append(opt); - } else if(opt.startsWith("-l") || opt == "-pthread") { - // Make sure we keep the dependency-order of libraries - if (lflags[arch].contains(opt)) - lflags[arch].removeAll(opt); + } else if (opt.startsWith("-l") || opt == "-pthread") { + // Make sure we keep the dependency order of libraries + lflags[arch].removeAll(opt); lflags[arch].append(opt); } else if (target_mode == TARG_MAC_MODE && opt.startsWith("-framework")) { - if(opt.length() > 11) - opt = opt.mid(11); - else { + if (opt.length() > 10) { + opt = opt.mid(10).trimmed(); + } else { opt = l.at(++lit); - if (target_mode == TARG_MAC_MODE && opt.startsWith("-Xarch")) + if (opt.startsWith("-Xarch")) opt = l.at(++lit); // The user has done the right thing and prefixed each part } bool found = false; for(int x = 0; x < lflags[arch].size(); ++x) { - ProString xf = lflags[arch].at(x); - if(xf.startsWith("-framework")) { - ProString framework; - if(xf.length() > 11) - framework = xf.mid(11); - else - framework = lflags[arch].at(++x); - if(framework == opt) { - found = true; - break; - } + if (lflags[arch].at(x) == "-framework" && lflags[arch].at(++x) == opt) { + found = true; + break; } } if(!found) { @@ -692,6 +498,7 @@ UnixMakefileGenerator::processPrlFiles() } } } + return false; } QString @@ -720,7 +527,6 @@ UnixMakefileGenerator::defaultInstall(const QString &t) } else if(project->first("TEMPLATE") == "app") { target = "$(QMAKE_TARGET)"; } else if(project->first("TEMPLATE") == "lib") { - if(project->isEmpty("QMAKE_CYGWIN_SHLIB")) { if (!project->isActiveConfig("staticlib") && !project->isActiveConfig("plugin") && !project->isActiveConfig("unversioned_libname")) { @@ -730,7 +536,6 @@ UnixMakefileGenerator::defaultInstall(const QString &t) links << "$(TARGET0)"; } } - } } for(int i = 0; i < targets.size(); ++i) { QString src = targets.at(i).toQString(), @@ -743,16 +548,7 @@ UnixMakefileGenerator::defaultInstall(const QString &t) uninst.append("-$(DEL_FILE) " + dst); } - if (bundle == NoBundle && project->isActiveConfig("compile_libtool")) { - QString src_targ = escapeFilePath(target); - if(src_targ == "$(TARGET)") - src_targ = "$(TARGETL)"; - QString dst_dir = fileFixify(targetdir, FileFixifyAbsolute); - if(QDir::isRelativePath(dst_dir)) - dst_dir = Option::fixPathToTargetOS(Option::output_dir + Option::dir_sep + dst_dir); - ret = "-$(LIBTOOL) --mode=install cp " + src_targ + ' ' + escapeFilePath(filePrefixRoot(root, dst_dir)); - uninst.append("-$(LIBTOOL) --mode=uninstall " + src_targ); - } else { + { QString src_targ = target; if(!destdir.isEmpty()) src_targ = Option::fixPathToTargetOS(destdir + target, false); @@ -870,7 +666,7 @@ UnixMakefileGenerator::defaultInstall(const QString &t) if(type == "prl" && project->isActiveConfig("create_prl") && !project->isActiveConfig("no_install_prl") && !project->isEmpty("QMAKE_INTERNAL_PRL_FILE")) meta = prlFileName(false); - if(type == "libtool" && project->isActiveConfig("create_libtool") && !project->isActiveConfig("compile_libtool")) + if (type == "libtool" && project->isActiveConfig("create_libtool")) meta = libtoolFileName(false); if(type == "pkgconfig" && project->isActiveConfig("create_pc")) meta = pkgConfigFileName(false); |