private void CreateBuildActionEntry(
            System.Xml.XmlDocument doc,
            System.Xml.XmlElement buildActionEntriesEl,
            Target target,
            Bam.Core.Array<Target> buildActionsCreated)
        {
            #if true
            #else
            // add all required dependencies in first (order matters)
            foreach (var required in target.TargetDependencies)
            {
                this.CreateBuildActionEntry(doc, buildActionEntriesEl, required., buildActionsCreated);
            }
            #endif

            // the same target might appear again while iterating through the required targets of dependencies
            // only add it once (first one is important for ordering)
            if (buildActionsCreated.Contains(target))
            {
                return;
            }

            var buildActionEntry = doc.CreateElement("BuildActionEntry");
            buildActionEntriesEl.AppendChild(buildActionEntry);
            var buildableReference = doc.CreateElement("BuildableReference");
            buildActionEntry.AppendChild(buildableReference);
            {
                buildableReference.SetAttribute("BuildableIdentifier", "primary");
                buildableReference.SetAttribute("BlueprintIdentifier", target.GUID);
                if (null != target.FileReference)
                {
                    buildableReference.SetAttribute("BuildableName", target.FileReference.Name);
                }
                buildableReference.SetAttribute("BlueprintName", target.Name);
                if (target.Project.ProjectDir == this.Project.ProjectDir)
                {
                    buildableReference.SetAttribute("ReferencedContainer",
                        "container:" + System.IO.Path.GetFileName(this.Project.ProjectDir.Parse()));
                }
                else
                {
                    var relative = Bam.Core.RelativePathUtilities.GetPath(target.Project.ProjectDir.Parse(), this.Project.ProjectDir.Parse());
                    buildableReference.SetAttribute("ReferencedContainer",
                        "container:" + relative);
                }
            }

            buildActionsCreated.Add(target);
        }
 IsSDKValid(
     Bam.Core.StringArray availableSDKs,
     string sdk)
 {
     return availableSDKs.Contains(sdk);
 }