Added first version of ContentBuilder. It is NOT PRODUCTION READY currently.
This is will be the CLI-version of the ContentPipeline replacement of ANX. It is able to use ContentImporters to import assets.
This commit is contained in:
parent
72f4828ade
commit
4234155c8c
@ -34,6 +34,7 @@
|
|||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="AnxContentImporterContext.cs" />
|
||||||
<Compile Include="Audio\AudioContent.cs" />
|
<Compile Include="Audio\AudioContent.cs" />
|
||||||
<Compile Include="Audio\AudioFileType.cs" />
|
<Compile Include="Audio\AudioFileType.cs" />
|
||||||
<Compile Include="Audio\AudioFormat.cs" />
|
<Compile Include="Audio\AudioFormat.cs" />
|
||||||
@ -165,6 +166,10 @@
|
|||||||
<Compile Include="Serialization\Compiler\SystemTypeWriters\NullableWriter.cs" />
|
<Compile Include="Serialization\Compiler\SystemTypeWriters\NullableWriter.cs" />
|
||||||
<Compile Include="Serialization\Compiler\SystemTypeWriters\TimeSpanWriter.cs" />
|
<Compile Include="Serialization\Compiler\SystemTypeWriters\TimeSpanWriter.cs" />
|
||||||
<Compile Include="TargetPlatform.cs" />
|
<Compile Include="TargetPlatform.cs" />
|
||||||
|
<Compile Include="Tasks\BuildContent.cs" />
|
||||||
|
<Compile Include="Tasks\BuildItem.cs" />
|
||||||
|
<Compile Include="Tasks\BuildRequest.cs" />
|
||||||
|
<Compile Include="Tasks\ImporterManager.cs" />
|
||||||
<Compile Include="VideoContent.cs" />
|
<Compile Include="VideoContent.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
57
ANX.Framework.Content.Pipeline/AnxContentImporterContext.cs
Normal file
57
ANX.Framework.Content.Pipeline/AnxContentImporterContext.cs
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
#region Using Statements
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using ANX.Framework.Content.Pipeline.Tasks;
|
||||||
|
|
||||||
|
#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 ANX.Framework.Content.Pipeline
|
||||||
|
{
|
||||||
|
public class AnxContentImporterContext : ContentImporterContext
|
||||||
|
{
|
||||||
|
private string intermediateDirectory;
|
||||||
|
private ContentBuildLogger logger;
|
||||||
|
private string outputDirectory;
|
||||||
|
|
||||||
|
public AnxContentImporterContext(BuildContent buildContent, BuildItem buildItem, ContentBuildLogger logger)
|
||||||
|
{
|
||||||
|
|
||||||
|
this.logger = logger;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string IntermediateDirectory
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return intermediateDirectory;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override ContentBuildLogger Logger
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Logger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string OutputDirectory
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return outputDirectory;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void AddDependency(string filename)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -16,15 +16,14 @@ namespace ANX.Framework.Content.Pipeline
|
|||||||
{
|
{
|
||||||
protected ContentImporter()
|
protected ContentImporter()
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
// nothing to do here
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract T Import(string filename, ContentImporterContext context);
|
public abstract T Import(string filename, ContentImporterContext context);
|
||||||
|
|
||||||
Object ANX.Framework.Content.Pipeline.IContentImporter.Import(string filename, ContentImporterContext context)
|
object IContentImporter.Import(string filename, ContentImporterContext context)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
return this.Import(filename, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,7 @@ namespace ANX.Framework.Content.Pipeline
|
|||||||
{
|
{
|
||||||
public ContentImporterContext()
|
public ContentImporterContext()
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
//TODO: implement
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract string IntermediateDirectory { get; }
|
public abstract string IntermediateDirectory { get; }
|
||||||
|
@ -16,7 +16,7 @@ namespace ANX.Framework.Content.Pipeline
|
|||||||
{
|
{
|
||||||
public ContentItem()
|
public ContentItem()
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
// nothing to do here
|
||||||
}
|
}
|
||||||
|
|
||||||
public ContentIdentity Identity
|
public ContentIdentity Identity
|
||||||
|
@ -13,6 +13,7 @@ using ANX.Framework.Content.Pipeline.Graphics;
|
|||||||
|
|
||||||
namespace ANX.Framework.Content.Pipeline
|
namespace ANX.Framework.Content.Pipeline
|
||||||
{
|
{
|
||||||
|
[ContentImporter(".fx")]
|
||||||
public class EffectImporter : ContentImporter<EffectContent>
|
public class EffectImporter : ContentImporter<EffectContent>
|
||||||
{
|
{
|
||||||
public EffectImporter()
|
public EffectImporter()
|
||||||
@ -21,7 +22,13 @@ namespace ANX.Framework.Content.Pipeline
|
|||||||
|
|
||||||
public override EffectContent Import(string filename, ContentImporterContext context)
|
public override EffectContent Import(string filename, ContentImporterContext context)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
EffectContent content = new EffectContent()
|
||||||
|
{
|
||||||
|
EffectCode = System.IO.File.ReadAllText(filename),
|
||||||
|
Identity = new ContentIdentity(filename, null, null),
|
||||||
|
};
|
||||||
|
|
||||||
|
return content;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@ using ANX.Framework.Content.Pipeline.Graphics;
|
|||||||
|
|
||||||
namespace ANX.Framework.Content.Pipeline
|
namespace ANX.Framework.Content.Pipeline
|
||||||
{
|
{
|
||||||
|
[ContentImporter]
|
||||||
public class FbxImporter : ContentImporter<NodeContent>
|
public class FbxImporter : ContentImporter<NodeContent>
|
||||||
{
|
{
|
||||||
public FbxImporter()
|
public FbxImporter()
|
||||||
|
51
ANX.Framework.Content.Pipeline/Tasks/BuildContent.cs
Normal file
51
ANX.Framework.Content.Pipeline/Tasks/BuildContent.cs
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
#region Using Statements
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
#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 ANX.Framework.Content.Pipeline.Tasks
|
||||||
|
{
|
||||||
|
public class BuildContent
|
||||||
|
{
|
||||||
|
private ImporterManager importerManager;
|
||||||
|
|
||||||
|
public ImporterManager ImporterManager
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (this.importerManager == null)
|
||||||
|
{
|
||||||
|
this.importerManager = new ImporterManager();
|
||||||
|
}
|
||||||
|
return this.importerManager;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Execute(IEnumerable<BuildItem> itemsToBuild)
|
||||||
|
{
|
||||||
|
foreach (BuildItem buildItem in itemsToBuild)
|
||||||
|
{
|
||||||
|
var importedObject = ImportAsset(buildItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private object ImportAsset(BuildItem item)
|
||||||
|
{
|
||||||
|
IContentImporter instance = this.ImporterManager.GetInstance(item.BuildRequest.ImporterName);
|
||||||
|
ContentImporterContext context = new AnxContentImporterContext(this, item, null); //this.buildLogger);
|
||||||
|
//this.buildLogger.LogMessage(Resources.BuildLogImporting, new object[]
|
||||||
|
//{
|
||||||
|
// item.BuildRequest.SourceFilename,
|
||||||
|
// instance.GetType()
|
||||||
|
//});
|
||||||
|
return instance.Import(item.BuildRequest.SourceFilename, context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
24
ANX.Framework.Content.Pipeline/Tasks/BuildItem.cs
Normal file
24
ANX.Framework.Content.Pipeline/Tasks/BuildItem.cs
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#region Using Statements
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
#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 ANX.Framework.Content.Pipeline.Tasks
|
||||||
|
{
|
||||||
|
public class BuildItem
|
||||||
|
{
|
||||||
|
public BuildRequest BuildRequest
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
set;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
23
ANX.Framework.Content.Pipeline/Tasks/BuildRequest.cs
Normal file
23
ANX.Framework.Content.Pipeline/Tasks/BuildRequest.cs
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#region Using Statements
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
#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 ANX.Framework.Content.Pipeline.Tasks
|
||||||
|
{
|
||||||
|
public class BuildRequest
|
||||||
|
{
|
||||||
|
public String SourceFilename;
|
||||||
|
public String AssetName;
|
||||||
|
public string ImporterName;
|
||||||
|
public string ProcessorName;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
70
ANX.Framework.Content.Pipeline/Tasks/ImporterManager.cs
Normal file
70
ANX.Framework.Content.Pipeline/Tasks/ImporterManager.cs
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
#region Using Statements
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
#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 ANX.Framework.Content.Pipeline.Tasks
|
||||||
|
{
|
||||||
|
public class ImporterManager
|
||||||
|
{
|
||||||
|
private Dictionary<String, Type> importerTypes = new Dictionary<string,Type>();
|
||||||
|
|
||||||
|
public ImporterManager()
|
||||||
|
{
|
||||||
|
foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
|
||||||
|
{
|
||||||
|
foreach (Type type in assembly.GetTypes())
|
||||||
|
{
|
||||||
|
ContentImporterAttribute[] value = (ContentImporterAttribute[]) type.GetCustomAttributes(typeof(ContentImporterAttribute), true);
|
||||||
|
if (value.Length > 0)
|
||||||
|
{
|
||||||
|
importerTypes[type.Name] = type;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public IContentImporter GetInstance(string importerName)
|
||||||
|
{
|
||||||
|
Type type;
|
||||||
|
if (!this.importerTypes.TryGetValue(importerName, out type))
|
||||||
|
{
|
||||||
|
throw new Exception(String.Format("can't find importer {0}", importerName));
|
||||||
|
}
|
||||||
|
return (IContentImporter)Activator.CreateInstance(type);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String GuessImporterByFileExtension(string filename)
|
||||||
|
{
|
||||||
|
String extension = System.IO.Path.GetExtension(filename);
|
||||||
|
|
||||||
|
foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
|
||||||
|
{
|
||||||
|
foreach (Type type in assembly.GetTypes())
|
||||||
|
{
|
||||||
|
ContentImporterAttribute[] value = (ContentImporterAttribute[])type.GetCustomAttributes(typeof(ContentImporterAttribute), true);
|
||||||
|
foreach (ContentImporterAttribute cia in value)
|
||||||
|
{
|
||||||
|
foreach (string fe in cia.FileExtensions)
|
||||||
|
{
|
||||||
|
if (string.Equals(fe, extension, StringComparison.InvariantCultureIgnoreCase))
|
||||||
|
{
|
||||||
|
return type.Name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return String.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -170,6 +170,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Metro", "Metro", "{32B91ACB
|
|||||||
shader\Metro\SpriteBatch.fx = shader\Metro\SpriteBatch.fx
|
shader\Metro\SpriteBatch.fx = shader\Metro\SpriteBatch.fx
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ContentBuilder", "Tools\ContentBuilder\ContentBuilder.csproj", "{10F7894D-E8B5-4DCA-BB08-5C99FA792388}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@ -638,6 +640,16 @@ Global
|
|||||||
{47B802CC-069D-431E-BF15-E574EDD3BA5D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
{47B802CC-069D-431E-BF15-E574EDD3BA5D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
{47B802CC-069D-431E-BF15-E574EDD3BA5D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{47B802CC-069D-431E-BF15-E574EDD3BA5D}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{47B802CC-069D-431E-BF15-E574EDD3BA5D}.Release|x86.ActiveCfg = Release|Any CPU
|
{47B802CC-069D-431E-BF15-E574EDD3BA5D}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{10F7894D-E8B5-4DCA-BB08-5C99FA792388}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||||
|
{10F7894D-E8B5-4DCA-BB08-5C99FA792388}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||||
|
{10F7894D-E8B5-4DCA-BB08-5C99FA792388}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||||
|
{10F7894D-E8B5-4DCA-BB08-5C99FA792388}.Debug|x86.ActiveCfg = Debug|x86
|
||||||
|
{10F7894D-E8B5-4DCA-BB08-5C99FA792388}.Debug|x86.Build.0 = Debug|x86
|
||||||
|
{10F7894D-E8B5-4DCA-BB08-5C99FA792388}.Release|Any CPU.ActiveCfg = Release|x86
|
||||||
|
{10F7894D-E8B5-4DCA-BB08-5C99FA792388}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||||
|
{10F7894D-E8B5-4DCA-BB08-5C99FA792388}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||||
|
{10F7894D-E8B5-4DCA-BB08-5C99FA792388}.Release|x86.ActiveCfg = Release|x86
|
||||||
|
{10F7894D-E8B5-4DCA-BB08-5C99FA792388}.Release|x86.Build.0 = Release|x86
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
@ -649,6 +661,7 @@ Global
|
|||||||
{9588B0C3-E03A-4C71-89A4-2C8685D426F1} = {B24A8593-562A-4A25-BB08-46C163F10F3F}
|
{9588B0C3-E03A-4C71-89A4-2C8685D426F1} = {B24A8593-562A-4A25-BB08-46C163F10F3F}
|
||||||
{F9177943-1590-49AE-987D-D6FAE30D96DD} = {B24A8593-562A-4A25-BB08-46C163F10F3F}
|
{F9177943-1590-49AE-987D-D6FAE30D96DD} = {B24A8593-562A-4A25-BB08-46C163F10F3F}
|
||||||
{47B802CC-069D-431E-BF15-E574EDD3BA5D} = {B24A8593-562A-4A25-BB08-46C163F10F3F}
|
{47B802CC-069D-431E-BF15-E574EDD3BA5D} = {B24A8593-562A-4A25-BB08-46C163F10F3F}
|
||||||
|
{10F7894D-E8B5-4DCA-BB08-5C99FA792388} = {B24A8593-562A-4A25-BB08-46C163F10F3F}
|
||||||
{5BE49183-2F6F-4527-AC90-D816911FCF90} = {D421509A-9AE3-4D7E-881B-EAFED598B028}
|
{5BE49183-2F6F-4527-AC90-D816911FCF90} = {D421509A-9AE3-4D7E-881B-EAFED598B028}
|
||||||
{EB8258E0-6741-4DB9-B756-1EBDF67B1ED6} = {D421509A-9AE3-4D7E-881B-EAFED598B028}
|
{EB8258E0-6741-4DB9-B756-1EBDF67B1ED6} = {D421509A-9AE3-4D7E-881B-EAFED598B028}
|
||||||
{B30DE9C2-0926-46B6-8351-9AF276C472D5} = {D421509A-9AE3-4D7E-881B-EAFED598B028}
|
{B30DE9C2-0926-46B6-8351-9AF276C472D5} = {D421509A-9AE3-4D7E-881B-EAFED598B028}
|
||||||
|
63
Tools/ContentBuilder/ContentBuilder.csproj
Normal file
63
Tools/ContentBuilder/ContentBuilder.csproj
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||||
|
<ProductVersion>8.0.30703</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{10F7894D-E8B5-4DCA-BB08-5C99FA792388}</ProjectGuid>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>ContentBuilder</RootNamespace>
|
||||||
|
<AssemblyName>ContentBuilder</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||||
|
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>..\..\bin\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>..\..\bin\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Program.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\ANX.Framework.Content.Pipeline\ANX.Framework.Content.Pipeline.csproj">
|
||||||
|
<Project>{2DAFDFC1-223B-4741-87BB-BE3D0A7617DB}</Project>
|
||||||
|
<Name>ANX.Framework.Content.Pipeline</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
46
Tools/ContentBuilder/Program.cs
Normal file
46
Tools/ContentBuilder/Program.cs
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
#region Using Statements
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using ANX.Framework.Content.Pipeline.Tasks;
|
||||||
|
|
||||||
|
#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<BuildItem> itemsToBuild = new List<BuildItem>();
|
||||||
|
|
||||||
|
foreach (string arg in args)
|
||||||
|
{
|
||||||
|
if (!arg.StartsWith("/") && !arg.StartsWith("-"))
|
||||||
|
{
|
||||||
|
BuildItem buildItem = new BuildItem();
|
||||||
|
buildItem.BuildRequest = new BuildRequest();
|
||||||
|
buildItem.BuildRequest.ImporterName = ImporterManager.GuessImporterByFileExtension(arg);
|
||||||
|
buildItem.BuildRequest.SourceFilename = arg;
|
||||||
|
buildItem.BuildRequest.AssetName = System.IO.Path.GetFileNameWithoutExtension(arg);
|
||||||
|
|
||||||
|
itemsToBuild.Add(buildItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Build the content
|
||||||
|
//
|
||||||
|
BuildContent buildContentTask = new BuildContent();
|
||||||
|
buildContentTask.Execute(itemsToBuild);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
36
Tools/ContentBuilder/Properties/AssemblyInfo.cs
Normal file
36
Tools/ContentBuilder/Properties/AssemblyInfo.cs
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// Allgemeine Informationen über eine Assembly werden über die folgenden
|
||||||
|
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
||||||
|
// die mit einer Assembly verknüpft sind.
|
||||||
|
[assembly: AssemblyTitle("ContentBuilder")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("ANX Developer Team")]
|
||||||
|
[assembly: AssemblyProduct("ContentBuilder")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © ANX Developer Team 2012")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar
|
||||||
|
// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von
|
||||||
|
// COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
|
||||||
|
[assembly: Guid("1ae48f9d-83a9-4a93-bc9b-7a51a501a42b")]
|
||||||
|
|
||||||
|
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
||||||
|
//
|
||||||
|
// Hauptversion
|
||||||
|
// Nebenversion
|
||||||
|
// Buildnummer
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
|
||||||
|
// übernehmen, indem Sie "*" eingeben:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("0.1.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("0.1.0.0")]
|
Loading…
x
Reference in New Issue
Block a user