public override bool Execute() { if (!File.Exists(CacheFile)) { Log.LogDebugMessage("{0} does not exist. No Additional Resources found", CacheFile); return(!Log.HasLoggedErrors); } var doc = XDocument.Load(CacheFile); AdditionalAndroidResourcePaths = doc.GetPaths("AdditionalAndroidResourcePaths", "AdditionalAndroidResourcePath"); AdditionalJavaLibraryReferences = doc.GetPaths("AdditionalJavaLibraryReferences", "AdditionalJavaLibraryReference"); AdditionalNativeLibraryReferences = doc.GetPaths("AdditionalNativeLibraryReferences", "AdditionalNativeLibraryReference"); Log.LogDebugTaskItems(" AdditionalAndroidResourcePaths: ", AdditionalAndroidResourcePaths); Log.LogDebugTaskItems(" AdditionalJavaLibraryReferences: ", AdditionalJavaLibraryReferences); Log.LogDebugTaskItems(" AdditionalNativeLibraryReferences: ", AdditionalNativeLibraryReferences); IsResourceCacheValid = AdditionalAndroidResourcePaths.All(x => Directory.Exists(x)) && AdditionalJavaLibraryReferences.All(x => File.Exists(x)) && AdditionalNativeLibraryReferences.All(x => File.Exists(x)); Log.LogDebugMessage(" IsValid: {0}", IsResourceCacheValid); return(!Log.HasLoggedErrors); }
public override bool Execute() { Log.LogDebugMessage("DetermineJavaLibrariesToCompile"); Log.LogDebugMessage(" EnableInstantRun: {0}", EnableInstantRun); Log.LogDebugMessage(" MonoPlatformJarPath: {0}", MonoPlatformJarPath); Log.LogDebugTaskItems(" JavaSourceFiles:", JavaSourceFiles); Log.LogDebugTaskItems(" JavaLibraries:", JavaLibraries); Log.LogDebugTaskItems(" ExternalJavaLibraries:", ExternalJavaLibraries); Log.LogDebugTaskItems(" LibraryProjectJars:", LibraryProjectJars); Log.LogDebugTaskItems(" AdditionalJavaLibraryReferences:", AdditionalJavaLibraryReferences); Log.LogDebugTaskItems(" DoNotPackageJavaLibraries:", DoNotPackageJavaLibraries); var jars = new List <ITaskItem> (); if (!EnableInstantRun) { jars.Add(new TaskItem(MonoPlatformJarPath)); } if (JavaSourceFiles != null) { foreach (var jar in JavaSourceFiles.Where(p => Path.GetExtension(p.ItemSpec) == ".jar")) { jars.Add(jar); } } if (JavaLibraries != null) { foreach (var jarfile in JavaLibraries) { jars.Add(jarfile); } } if (LibraryProjectJars != null) { foreach (var jar in LibraryProjectJars) { if (!MonoAndroidHelper.IsEmbeddedReferenceJar(jar.ItemSpec)) { jars.Add(jar); } } } if (AdditionalJavaLibraryReferences != null) { foreach (var jar in AdditionalJavaLibraryReferences.Distinct(TaskItemComparer.DefaultComparer)) { jars.Add(jar); } } var distinct = MonoAndroidHelper.DistinctFilesByContent(jars); jars = jars.Where(j => distinct.Contains(j)).ToList(); JavaLibrariesToCompile = jars.Where(j => !IsExcluded(j.ItemSpec)).ToArray(); ReferenceJavaLibraries = jars.Except(JavaLibrariesToCompile).ToArray(); Log.LogDebugTaskItems(" JavaLibrariesToCompile:", JavaLibrariesToCompile); Log.LogDebugTaskItems(" ReferenceJavaLibraries:", ReferenceJavaLibraries); return(true); }
public override bool RunTask() { var jars = new List <ITaskItem> (); if (!EnableInstantRun) { jars.AddRange(MonoPlatformJarPaths); } if (JavaSourceFiles != null) { foreach (var jar in JavaSourceFiles.Where(p => Path.GetExtension(p.ItemSpec) == ".jar")) { jars.Add(jar); } } if (JavaLibraries != null) { foreach (var jarfile in JavaLibraries) { jars.Add(jarfile); } } if (LibraryProjectJars != null) { foreach (var jar in LibraryProjectJars) { if (!MonoAndroidHelper.IsEmbeddedReferenceJar(jar.ItemSpec)) { jars.Add(jar); } } } if (AdditionalJavaLibraryReferences != null) { foreach (var jar in AdditionalJavaLibraryReferences.Distinct(TaskItemComparer.DefaultComparer)) { jars.Add(jar); } } var distinct = MonoAndroidHelper.DistinctFilesByContent(jars); var javaLibrariesToCompile = new List <ITaskItem> (); var referenceJavaLibraries = new List <ITaskItem> (); if (ExternalJavaLibraries != null) { referenceJavaLibraries.AddRange(ExternalJavaLibraries); } foreach (var item in distinct) { if (!HasClassFiles(item.ItemSpec)) { continue; } if (IsExcluded(item.ItemSpec)) { referenceJavaLibraries.Add(item); } else { javaLibrariesToCompile.Add(item); } } JavaLibrariesToCompile = javaLibrariesToCompile.ToArray(); ReferenceJavaLibraries = referenceJavaLibraries.ToArray(); Log.LogDebugTaskItems(" JavaLibrariesToCompile:", JavaLibrariesToCompile); Log.LogDebugTaskItems(" ReferenceJavaLibraries:", ReferenceJavaLibraries); return(true); }