private void CheckCryptoLib(SortedList<int, RequiredLibrary> Libraryes, IList<LogQueueItem> LogMessages)
{
PKParser.Arg.PKArgParser ArgParser = new PKParser.Arg.PKArgParser();
foreach (RequiredLibrary lib in Libraryes.Values)
{
if (lib.Name.ToLower() == "crypto.lib")
{
if (lib.ParamCollection != null) return;
foreach (LogQueueItem item in LogMessages)
{
if (item.Message.ToLower().Contains(ARMARPath))
{
ParamCollection par = ArgParser.Add(item.Message);
if (par == null) continue;
bool Found = false;
foreach (ArgCollection arg in par.Values)
{
if (arg.Tag == "archive")
{
if (Path.GetFileName(arg.Name).ToLower() == "crypto_stub.lib") Found = true;
}
}
if (!Found) continue;
lib.ConsoleString = item.Message;
lib.ParamCollection = par;
lib.BuildList.AddRange(item.ProjectBuildContext);
lib.OutputFileuVision = uVisionProjectPath + "\\" + uVisionTargetsPath + "\\" + Path.GetFileNameWithoutExtension(lib.Name) + "\\" + Path.GetFileName(lib.Name);
ProjectCollection LocalProjColl = new ProjectCollection();
Project MSBProj = LocalProjColl.LoadProject(item.ProjectBuildContext[item.ProjectBuildContext.Count - 1]);
string LIB_EXT = MSBProj.GetPropertyValue("LIB_EXT");
string OBJ_EXT = MSBProj.GetPropertyValue("OBJ_EXT");
foreach (string file in par.Files.Values)
{
RequiredLibrary libr = null;
RequiredObject obj = null;
if (Path.GetExtension(file).ToLower() == "." + LIB_EXT.ToLower())
{
libr = new RequiredLibrary(file, lib);
lib.InputLibraries.Add(lib.InputLibraries.Count + 1, libr);
}
if (Path.GetExtension(file).ToLower() == "." + OBJ_EXT.ToLower())
{
obj = new RequiredObject(file, lib);
lib.InputObjects.Add(lib.InputObjects.Count + 1, obj);
}
if (libr != null) lib.AllInputs.Add(lib.AllInputs.Count + 1, libr);
if (obj != null) lib.AllInputs.Add(lib.AllInputs.Count + 1, obj);
}
foreach (ArgCollection arg in par.Values)
{
switch (arg.Tag)
{
case "options":
if (arg.Count > 0)
foreach (string s in arg)
{
lib.OptionsString.Add(arg.Name + " " + s);
}
else
lib.OptionsString.Add(arg.Name);
break;
case "archive":
lib.OutputFileMSBuild = arg.Name;
break;
}
}
}
}
if (lib.InputLibraries.Count > 0) this.AnalizeInputLibraries(lib.InputLibraries, LogMessages);
}
}
}