/// <summary>
///
/// </summary>
/// <param name="options"></param>
public static void Build ( BuildOptions options )
{
Log.Message("");
Log.Message("-------- Build started : {0} --------", options.InputDirectory );
options.CheckOptionsAndMakeDirs();
Log.Message("Reading '.content'...");
//
// Parse INI file :
//
var ip = new StreamIniDataParser();
ip.Parser.Configuration.AllowDuplicateSections = true;
ip.Parser.Configuration.AllowDuplicateKeys = true;
ip.Parser.Configuration.CommentString = "#";
ip.Parser.Configuration.OverrideDuplicateKeys = true;
ip.Parser.Configuration.KeyValueAssigmentChar = '=';
ip.Parser.Configuration.AllowKeysWithoutValues = true;
var iniData = ip.ReadData( new StreamReader( options.ContentIniFile ) );
//
// Setup builder :
//
var bindings = AssetProcessorBinding.GatherAssetProcessors();
Log.Message("Asset processors:");
foreach ( var bind in bindings ) {
Log.Message(" {0,-20} - {1}", bind.Name, bind.Type.Name );
}
Log.Message("");
var builder = new Builder( bindings );
var result = builder.Build( options, iniData );
Log.Message("-------- {5} total, {0} succeeded, {1} failed, {2} up-to-date, {3} ignored, {4} skipped --------",
result.Succeded,
result.Failed,
result.UpToDate,
result.Ignored,
result.Skipped,
result.Total );
Log.Message("");
if (result.Failed>0) {
throw new BuildException("Build errors");
}
}