#region Using Statements using System; using System.Collections.Generic; using System.Linq; using System.Text; using ANX.Framework.Content.Pipeline.Tasks; using ANX.Framework.Content.Pipeline; #endregion // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license namespace ContentBuilder { class Program { static void Main(string[] args) { // // Generate a list of items to build and set build parameters // List itemsToBuild = new List(); BuildContent buildContentTask = new BuildContent(); buildContentTask.BuildLogger = new ConsoleLogger(); foreach (string arg in args) { if (!arg.StartsWith("/") && !arg.StartsWith("-")) { BuildItem buildItem = new BuildItem(); buildItem.BuildRequest = new BuildRequest(); buildItem.BuildRequest.ImporterName = ImporterManager.GuessImporterByFileExtension(arg); //TODO: set configured processor name buildItem.BuildRequest.SourceFilename = arg; buildItem.BuildRequest.AssetName = System.IO.Path.GetFileNameWithoutExtension(arg); buildItem.OutputFilename = String.Format("{0}.xnb", buildItem.BuildRequest.AssetName); itemsToBuild.Add(buildItem); } else { // parse argument string parameterChar1 = arg.Substring(1,1).ToLowerInvariant(); string parameterChar2 = arg.Substring(2,1).ToLowerInvariant(); if (parameterChar1 == "o" && parameterChar2 == "d") { // output dir buildContentTask.OutputDirectory = arg.Substring(3); } else if (parameterChar1 == "t") { string[] argParts = arg.Split(new char[] { '=', ':' }, StringSplitOptions.RemoveEmptyEntries); TargetPlatform targetPlatform = TargetPlatform.Windows; if (Enum.TryParse(argParts[1], true, out targetPlatform)) { buildContentTask.TargetPlatform = targetPlatform; } else { throw new InvalidOperationException("couldn't set target platform '" + argParts[1] + "'"); } } } } // // Build the content // buildContentTask.Execute(itemsToBuild); } } }