Fix library replace issue
This commit is contained in:
parent
72bc860983
commit
1ef6ec4178
@ -294,15 +294,19 @@ OneSixLibraryPtr VersionFile::createLibrary(RawLibraryPtr lib)
|
|||||||
|
|
||||||
int VersionFile::findLibrary(QList<OneSixLibraryPtr> haystack, const QString &needle)
|
int VersionFile::findLibrary(QList<OneSixLibraryPtr> haystack, const QString &needle)
|
||||||
{
|
{
|
||||||
|
int retval = -1;
|
||||||
for (int i = 0; i < haystack.size(); ++i)
|
for (int i = 0; i < haystack.size(); ++i)
|
||||||
{
|
{
|
||||||
if (QRegExp(needle, Qt::CaseSensitive, QRegExp::WildcardUnix)
|
QString chunk = haystack.at(i)->rawName();
|
||||||
.indexIn(haystack.at(i)->rawName()) != -1)
|
if (QRegExp(needle, Qt::CaseSensitive, QRegExp::WildcardUnix).indexIn(chunk) != -1)
|
||||||
{
|
{
|
||||||
return i;
|
// only one is allowed.
|
||||||
|
if(retval != -1)
|
||||||
|
return -1;
|
||||||
|
retval = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return -1;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
void VersionFile::applyTo(VersionFinal *version)
|
void VersionFile::applyTo(VersionFinal *version)
|
||||||
@ -394,7 +398,7 @@ void VersionFile::applyTo(VersionFinal *version)
|
|||||||
{
|
{
|
||||||
case RawLibrary::Apply:
|
case RawLibrary::Apply:
|
||||||
{
|
{
|
||||||
|
QLOG_INFO() << "Applying lib " << lib->name;
|
||||||
int index = findLibrary(version->libraries, lib->name);
|
int index = findLibrary(version->libraries, lib->name);
|
||||||
if (index >= 0)
|
if (index >= 0)
|
||||||
{
|
{
|
||||||
@ -438,7 +442,7 @@ void VersionFile::applyTo(VersionFinal *version)
|
|||||||
case RawLibrary::Append:
|
case RawLibrary::Append:
|
||||||
case RawLibrary::Prepend:
|
case RawLibrary::Prepend:
|
||||||
{
|
{
|
||||||
|
QLOG_INFO() << "Adding lib " << lib->name;
|
||||||
const int startOfVersion = lib->name.lastIndexOf(':') + 1;
|
const int startOfVersion = lib->name.lastIndexOf(':') + 1;
|
||||||
const int index = findLibrary(
|
const int index = findLibrary(
|
||||||
version->libraries, QString(lib->name).replace(startOfVersion, INT_MAX, '*'));
|
version->libraries, QString(lib->name).replace(startOfVersion, INT_MAX, '*'));
|
||||||
@ -507,14 +511,23 @@ void VersionFile::applyTo(VersionFinal *version)
|
|||||||
}
|
}
|
||||||
case RawLibrary::Replace:
|
case RawLibrary::Replace:
|
||||||
{
|
{
|
||||||
int index = findLibrary(version->libraries, lib->insertData);
|
QString toReplace;
|
||||||
|
if(lib->insertData.isEmpty())
|
||||||
|
{
|
||||||
|
const int startOfVersion = lib->name.lastIndexOf(':') + 1;
|
||||||
|
toReplace = QString(lib->name).replace(startOfVersion, INT_MAX, '*');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
toReplace = lib->insertData;
|
||||||
|
QLOG_INFO() << "Replacing lib " << toReplace << " with " << lib->name;
|
||||||
|
int index = findLibrary(version->libraries, toReplace);
|
||||||
if (index >= 0)
|
if (index >= 0)
|
||||||
{
|
{
|
||||||
version->libraries.replace(index, createLibrary(lib));
|
version->libraries.replace(index, createLibrary(lib));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QLOG_WARN() << "Couldn't find" << lib->insertData << "(skipping)";
|
QLOG_WARN() << "Couldn't find" << toReplace << "(skipping)";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -525,6 +538,7 @@ void VersionFile::applyTo(VersionFinal *version)
|
|||||||
int index = findLibrary(version->libraries, lib);
|
int index = findLibrary(version->libraries, lib);
|
||||||
if (index >= 0)
|
if (index >= 0)
|
||||||
{
|
{
|
||||||
|
QLOG_INFO() << "Removing lib " << lib;
|
||||||
version->libraries.removeAt(index);
|
version->libraries.removeAt(index);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user