permit explicitly empty qt.conf entries

this allows expressing "no SettingsPath" cleanly, and makes the
internals cleaner.

this is marginally behavior-incompatible in that if somebody had Prefix
or Data set to an empty string (rather than a dot, which is hinted at by
the documentation and commanded by common sense), he would have gotten
the binary's directory resp. Prefix, while now it will be just empty.

Change-Id: I3c11cc4e8671ffb604d4889389764a9ba9c2e7e6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
This commit is contained in:
Oswald Buddenhagen 2012-03-20 19:18:51 +01:00 committed by Qt by Nokia
parent 2cc5442b02
commit 18ddad191e

View File

@ -217,14 +217,14 @@ QLibraryInfo::isDebugBuild()
static const struct {
char key[14], value[13];
} qtConfEntries[] = {
{ "Prefix", "" },
{ "Prefix", "." },
{ "Documentation", "doc" },
{ "Headers", "include" },
{ "Libraries", "lib" },
{ "Binaries", "bin" },
{ "Plugins", "plugins" },
{ "Imports", "imports" },
{ "Data", "" },
{ "Data", "." },
{ "Translations", "translations" },
{ "Examples", "examples" },
{ "Tests", "tests" },
@ -232,7 +232,7 @@ static const struct {
{ "Sysroot", "" },
{ "HostPrefix", "" },
{ "HostBinaries", "bin" },
{ "HostData", "" },
{ "HostData", "." },
#endif
};
@ -309,7 +309,7 @@ QLibraryInfo::rawLocation(LibraryLocation loc)
}
}
if (QDir::isRelativePath(ret)) {
if (!ret.isEmpty() && QDir::isRelativePath(ret)) {
QString baseDir;
#ifdef QT_BUILD_QMAKE
if (loc == HostPrefixPath || loc == PrefixPath) {