/// <summary>
/// Helper function to validate the BuildTargets string. Excludes data file target
/// from the string unless it is the only target, and optionally checks that the
/// targets are available for building.
/// </summary>
private static string GetBuildTargetsString(string[] targets, bool checkAvailable)
{
if (targets.Length == 0)
{
return(BuildTargetsInfo.DATAFILE_TARGET_NAME);
}
List <string> availableTargets = null; // only retrieve available targets on request
if (checkAvailable)
{
availableTargets = new List <string>(BuildTargetsInfo.GetAvailableBuildTargetNames());
}
List <string> resultTargetList = new List <string>(targets.Length);
foreach (string targ in targets)
{
if ((!checkAvailable) || (availableTargets.Contains(targ)))
{
// only include data file target if it is the only target
if ((targ != BuildTargetsInfo.DATAFILE_TARGET_NAME) || (targets.Length == 1))
{
resultTargetList.Add(targ);
}
}
}
return(string.Join(BuildTargetUIEditor.Separators[0], resultTargetList.ToArray()));
}