summaryrefslogtreecommitdiffstats
path: root/Necessitas_SDK/ministrorepogen/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Necessitas_SDK/ministrorepogen/main.cpp')
-rw-r--r--Necessitas_SDK/ministrorepogen/main.cpp43
1 files changed, 28 insertions, 15 deletions
diff --git a/Necessitas_SDK/ministrorepogen/main.cpp b/Necessitas_SDK/ministrorepogen/main.cpp
index ce8395e..1560fdf 100644
--- a/Necessitas_SDK/ministrorepogen/main.cpp
+++ b/Necessitas_SDK/ministrorepogen/main.cpp
@@ -32,7 +32,7 @@
void printHelp()
{
- qDebug()<<"Usage:./ministrorepogen <readelf executable path> <libraries path> <version> <abi version> <xml rules file> <output folder> ";
+ qDebug()<<"Usage:./ministrorepogen <readelf executable path> <libraries path> <version> <abi version> <xml rules file> <output folder> <out objects repo version> <repository>";
}
@@ -51,7 +51,7 @@ void getFileInfo(const QString & filePath, qint64 & fileSize, QString & sha1)
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
- if (argc<7)
+ if (argc<9)
{
printHelp();
return 1;
@@ -63,6 +63,8 @@ int main(int argc, char *argv[])
const char * abiVersion=argv[4];
const char * rulesFile=argv[5];
const char * outputFolder=argv[6];
+ const char * objfolder =argv [7];
+ const char * repository =argv [8];
QDomDocument document("libs");
QFile f(rulesFile);
@@ -77,14 +79,25 @@ int main(int argc, char *argv[])
if (element.isNull())
return 1;
- QMap<int, QVector<int> >platforms;
- element=element.firstChildElement("version");
+ QMap<int, QVector<int> >platformLibs;
+ element=element.firstChildElement("libs").firstChildElement("version");
while(!element.isNull())
{
if (element.hasAttribute("symlink"))
- platforms[element.attribute("symlink", 0).toInt()].push_back(element.attribute("value", 0).toInt());
+ platformLibs[element.attribute("symlink", 0).toInt()].push_back(element.attribute("value", 0).toInt());
else
- platforms[element.attribute("value", 0).toInt()].clear();
+ platformLibs[element.attribute("value", 0).toInt()].clear();
+ element = element.nextSiblingElement();
+ }
+
+ QMap<int, int >platformJars;
+ element=root.firstChildElement("platforms").firstChildElement("jars").firstChildElement("version");
+ while(!element.isNull())
+ {
+ if (element.hasAttribute("symlink"))
+ platformJars[element.attribute("value", 0).toInt()]=element.attribute("symlink", 0).toInt();
+ else
+ platformJars[element.attribute("value", 0).toInt()]=element.attribute("value", 0).toInt();
element = element.nextSiblingElement();
}
@@ -129,7 +142,7 @@ int main(int argc, char *argv[])
while(!childs.isNull())
{
libs[libraryName].dependencies<<childs.attribute("name");
- childs=childs.nextSiblingElement();
+ childs=childs.nextSiblingElement("lib");
}
childs=element.firstChildElement("needs").firstChildElement("item");
@@ -152,14 +165,14 @@ int main(int argc, char *argv[])
path.mkpath(xmlPath);
path.cd(xmlPath);
chdir(path.absolutePath().toUtf8().constData());
- foreach (int androdPlatform, platforms.keys())
+ foreach (int androdPlatform, platformLibs.keys())
{
qDebug()<<"============================================";
qDebug()<<"Generating repository for android platform :"<<androdPlatform;
qDebug()<<"--------------------------------------------";
path.mkpath(QString("android-%1").arg(androdPlatform));
xmlPath=QString("android-%1/libs-%2.xml").arg(androdPlatform).arg(version);
- foreach(int symLink, platforms[androdPlatform])
+ foreach(int symLink, platformLibs[androdPlatform])
QFile::link(QString("android-%1").arg(androdPlatform), QString("android-%1").arg(symLink));
QFile outXmlFile(xmlPath);
outXmlFile.open(QIODevice::WriteOnly);
@@ -177,8 +190,8 @@ int main(int argc, char *argv[])
qWarning()<<"Warning : Can't find \""<<libsPath+"/"+libs[key].relativePath<<"\" item will be skipped";
continue;
}
- outXmlFile.write(QString("\t<lib name=\"%1\" url=\"http://files.kde.org/necessitas/qt/android/%2/objects/%3/%4\" file=\"%4\" size=\"%5\" sha1=\"%6\" level=\"%7\"")
- .arg(libs[key].name).arg(abiVersion).arg(version).arg(libs[key].relativePath).arg(fileSize).arg(sha1Hash).arg(libs[key].level).toUtf8());
+ outXmlFile.write(QString("\t<lib name=\"%1\" url=\"http://files.kde.org/necessitas/ministro/necessitas/%8/android/%2/objects/%3/%4\" file=\"%4\" size=\"%5\" sha1=\"%6\" level=\"%7\"")
+ .arg(libs[key].name).arg(abiVersion).arg(objfolder).arg(libs[key].relativePath).arg(fileSize).arg(sha1Hash).arg(libs[key].level).arg(repository).toUtf8());
if (!libs[key].dependencies.size() && !libs[key].needs.size())
{
outXmlFile.write(" />\n\n");
@@ -201,10 +214,10 @@ int main(int argc, char *argv[])
{
qint64 fileSize;
QString sha1Hash;
- getFileInfo(libsPath+"/"+needed.relativePath, fileSize, sha1Hash);
+ getFileInfo(libsPath+"/"+needed.relativePath.arg(platformJars[androdPlatform]), fileSize, sha1Hash);
if (-1==fileSize)
{
- qWarning()<<"Warning : Can't find \""<<libsPath+"/"+needed.relativePath<<"\" item will be skipped";
+ qWarning()<<"Warning : Can't find \""<<libsPath+"/"+needed.relativePath.arg(platformJars[androdPlatform])<<"\" item will be skipped";
continue;
}
@@ -212,8 +225,8 @@ int main(int argc, char *argv[])
if (needed.type.length())
type=QString(" type=\"%1\" ").arg(needed.type);
- outXmlFile.write(QString("\t\t\t<item name=\"%1\" url=\"http://files.kde.org/necessitas/qt/android/%2/objects/%3/%4\" file=\"%4\" size=\"%5\" sha1=\"%6\"%7/>\n")
- .arg(needed.name).arg(abiVersion).arg(version).arg(needed.relativePath).arg(fileSize).arg(sha1Hash).arg(type).toUtf8());
+ outXmlFile.write(QString("\t\t\t<item name=\"%1\" url=\"http://files.kde.org/necessitas/ministro/necessitas/%8/android/%2/objects/%3/%4\" file=\"%4\" size=\"%5\" sha1=\"%6\"%7/>\n")
+ .arg(needed.name).arg(abiVersion).arg(objfolder).arg(needed.relativePath.arg(platformJars[androdPlatform])).arg(fileSize).arg(sha1Hash).arg(type).arg(repository).toUtf8());
}
outXmlFile.write("\t\t</needs>\n");
}