private TargetLib ChoosePackageTarget(Package package, TargetPreferences prefs)
{
TargetLib chosenTarget = null;
foreach (var preferedTarget in prefs.DecreasingPriorityTargets)
{
chosenTarget = package.TargetLibs
.FirstOrDefault(t => t.Name == preferedTarget);
if (chosenTarget != null)
break;
}
// try fallback
if (chosenTarget == null)
{
chosenTarget = package.TargetLibs
.FirstOrDefault(t => t.Name == prefs.FallbackTarget);
if (chosenTarget != null)
Debug.LogWarningFormat(
"Package: '{0}' Installed fallback target: '{1}'. "
+ "It's not guaranteed to work",
package.Name,
prefs.FallbackTarget);
}
if (chosenTarget == null)
{
// no other things to try
// installation failed
Debug.LogErrorFormat("Package: '{0}' Not Installed. No matching target.",
package.Name);
}
return chosenTarget;
}