28 changed files with 1048 additions and 0 deletions
@ -0,0 +1,16 @@
@@ -0,0 +1,16 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System.Reflection; |
||||
|
||||
// Information about this assembly is defined by the following
|
||||
// attributes.
|
||||
//
|
||||
// change them to the information which is associated with the assembly
|
||||
// you compile.
|
||||
|
||||
[assembly: AssemblyTitle("TextTemplating")] |
||||
[assembly: AssemblyDescription("Text Templating (T4) Addin for SharpDevelop")] |
||||
[assembly: AssemblyConfiguration("")] |
||||
[assembly: AssemblyTrademark("")] |
||||
[assembly: AssemblyCulture("")] |
@ -0,0 +1,12 @@
@@ -0,0 +1,12 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
|
||||
namespace ICSharpCode.TextTemplating |
||||
{ |
||||
public interface ITextTemplatingAppDomain : IDisposable |
||||
{ |
||||
AppDomain AppDomain { get; } |
||||
} |
||||
} |
@ -0,0 +1,12 @@
@@ -0,0 +1,12 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
|
||||
namespace ICSharpCode.TextTemplating |
||||
{ |
||||
public interface ITextTemplatingAppDomainFactory |
||||
{ |
||||
ITextTemplatingAppDomain CreateTextTemplatingAppDomain(string applicationBase); |
||||
} |
||||
} |
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using ICSharpCode.SharpDevelop.Project; |
||||
|
||||
namespace ICSharpCode.TextTemplating |
||||
{ |
||||
public interface ITextTemplatingCustomToolContext |
||||
{ |
||||
FileProjectItem EnsureOutputFileIsInProject(FileProjectItem baseItem, string outputFileName); |
||||
} |
||||
} |
@ -0,0 +1,12 @@
@@ -0,0 +1,12 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
|
||||
namespace ICSharpCode.TextTemplating |
||||
{ |
||||
public interface ITextTemplatingFileGenerator : IDisposable |
||||
{ |
||||
void ProcessTemplate(); |
||||
} |
||||
} |
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
|
||||
namespace ICSharpCode.TextTemplating |
||||
{ |
||||
public interface ITextTemplatingHost : IDisposable |
||||
{ |
||||
bool ProcessTemplate(string inputFile, string outputFile); |
||||
string OutputFile { get; } |
||||
} |
||||
} |
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using System.IO; |
||||
using System.Reflection; |
||||
|
||||
namespace ICSharpCode.TextTemplating |
||||
{ |
||||
[Serializable] |
||||
public class TextTemplatingAppDomain : ITextTemplatingAppDomain |
||||
{ |
||||
AppDomain appDomain; |
||||
|
||||
public TextTemplatingAppDomain(string applicationBase) |
||||
{ |
||||
AppDomainSetup setupInfo = new AppDomainSetup(); |
||||
setupInfo.ApplicationBase = applicationBase; |
||||
this.appDomain = AppDomain.CreateDomain("TextTemplatingAppDomain", null, setupInfo); |
||||
} |
||||
|
||||
public AppDomain AppDomain { |
||||
get { return this.appDomain; } |
||||
} |
||||
|
||||
public void Dispose() |
||||
{ |
||||
if (this.appDomain != null) { |
||||
AppDomain.Unload(this.appDomain); |
||||
this.appDomain = null; |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,15 @@
@@ -0,0 +1,15 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
|
||||
namespace ICSharpCode.TextTemplating |
||||
{ |
||||
public class TextTemplatingAppDomainFactory : ITextTemplatingAppDomainFactory |
||||
{ |
||||
public ITextTemplatingAppDomain CreateTextTemplatingAppDomain(string applicationBase) |
||||
{ |
||||
return new TextTemplatingAppDomain(applicationBase); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using ICSharpCode.SharpDevelop.Project; |
||||
|
||||
namespace ICSharpCode.TextTemplating |
||||
{ |
||||
public class TextTemplatingCustomToolContext : ITextTemplatingCustomToolContext |
||||
{ |
||||
CustomToolContext context; |
||||
|
||||
public TextTemplatingCustomToolContext(CustomToolContext context) |
||||
{ |
||||
this.context = context; |
||||
} |
||||
|
||||
public FileProjectItem EnsureOutputFileIsInProject(FileProjectItem baseItem, string outputFileName) |
||||
{ |
||||
return context.EnsureOutputFileIsInProject(baseItem, outputFileName); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,69 @@
@@ -0,0 +1,69 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using System.IO; |
||||
using ICSharpCode.SharpDevelop.Project; |
||||
|
||||
namespace ICSharpCode.TextTemplating |
||||
{ |
||||
public class TextTemplatingFileGenerator : ITextTemplatingFileGenerator |
||||
{ |
||||
ITextTemplatingHost host; |
||||
FileProjectItem projectFile; |
||||
ITextTemplatingCustomToolContext context; |
||||
|
||||
public TextTemplatingFileGenerator( |
||||
ITextTemplatingHost host, |
||||
FileProjectItem projectFile, |
||||
ITextTemplatingCustomToolContext context) |
||||
{ |
||||
this.host = host; |
||||
this.projectFile = projectFile; |
||||
this.context = context; |
||||
} |
||||
|
||||
public void Dispose() |
||||
{ |
||||
host.Dispose(); |
||||
} |
||||
|
||||
public void ProcessTemplate() |
||||
{ |
||||
GenerateOutputFileForTemplate(); |
||||
AddOutputFileToProjectIfRequired(); |
||||
} |
||||
|
||||
void GenerateOutputFileForTemplate() |
||||
{ |
||||
string inputFileName = projectFile.FileName; |
||||
string outputFileName = GetOutputFileName(inputFileName); |
||||
host.ProcessTemplate(inputFileName, outputFileName); |
||||
} |
||||
|
||||
string GetOutputFileName(string inputFileName) |
||||
{ |
||||
return Path.ChangeExtension(inputFileName, ".cs"); |
||||
} |
||||
|
||||
void AddOutputFileToProjectIfRequired() |
||||
{ |
||||
context.EnsureOutputFileIsInProject(projectFile, host.OutputFile); |
||||
} |
||||
|
||||
|
||||
// internal static void LogicalSetData (string name, object value,
|
||||
// System.CodeDom.Compiler.CompilerErrorCollection errors)
|
||||
// {
|
||||
// //FIXME: CallContext.LogicalSetData not implemented in Mono
|
||||
// try {
|
||||
// System.Runtime.Remoting.Messaging.CallContext.LogicalSetData (name, value);
|
||||
// } catch (NotImplementedException) {
|
||||
// errors.Add (new System.CodeDom.Compiler.CompilerError (
|
||||
// null, -1, -1, null,
|
||||
// "Could not set " + name + " - CallContext.LogicalSetData not implemented in this Mono version"
|
||||
// ) { IsWarning = true });
|
||||
// }
|
||||
// }
|
||||
} |
||||
} |
@ -0,0 +1,38 @@
@@ -0,0 +1,38 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using System.CodeDom.Compiler; |
||||
using System.IO; |
||||
using ICSharpCode.SharpDevelop.Project; |
||||
|
||||
namespace ICSharpCode.TextTemplating |
||||
{ |
||||
public class TextTemplatingFileGeneratorCustomTool : ICustomTool |
||||
{ |
||||
public void GenerateCode(FileProjectItem item, CustomToolContext context) |
||||
{ |
||||
using (var generator = CreateTextTemplatingFileGenerator(item, context)) { |
||||
generator.ProcessTemplate(); |
||||
} |
||||
} |
||||
|
||||
protected virtual ITextTemplatingFileGenerator CreateTextTemplatingFileGenerator( |
||||
FileProjectItem projectFile, |
||||
CustomToolContext context) |
||||
{ |
||||
var appDomainFactory = new TextTemplatingAppDomainFactory(); |
||||
string applicationBase = GetAssemblyBaseLocation(); |
||||
var host = new TextTemplatingHost(appDomainFactory, applicationBase); |
||||
var textTemplatingCustomToolContext = new TextTemplatingCustomToolContext(context); |
||||
|
||||
return new TextTemplatingFileGenerator(host, projectFile, textTemplatingCustomToolContext); |
||||
} |
||||
|
||||
string GetAssemblyBaseLocation() |
||||
{ |
||||
string location = GetType().Assembly.Location; |
||||
return Path.GetDirectoryName(location); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,42 @@
@@ -0,0 +1,42 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using Mono.TextTemplating; |
||||
|
||||
namespace ICSharpCode.TextTemplating |
||||
{ |
||||
public class TextTemplatingHost : TemplateGenerator, ITextTemplatingHost |
||||
{ |
||||
ITextTemplatingAppDomainFactory appDomainFactory; |
||||
ITextTemplatingAppDomain templatingAppDomain; |
||||
string applicationBase; |
||||
|
||||
public TextTemplatingHost(ITextTemplatingAppDomainFactory appDomainFactory, string applicationBase) |
||||
{ |
||||
this.appDomainFactory = appDomainFactory; |
||||
this.applicationBase = applicationBase; |
||||
} |
||||
|
||||
public void Dispose() |
||||
{ |
||||
if (templatingAppDomain != null) { |
||||
templatingAppDomain.Dispose(); |
||||
templatingAppDomain = null; |
||||
} |
||||
} |
||||
|
||||
public override AppDomain ProvideTemplatingAppDomain(string content) |
||||
{ |
||||
if (templatingAppDomain == null) { |
||||
CreateAppDomain(); |
||||
} |
||||
return templatingAppDomain.AppDomain; |
||||
} |
||||
|
||||
void CreateAppDomain() |
||||
{ |
||||
templatingAppDomain = appDomainFactory.CreateTextTemplatingAppDomain(applicationBase); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
<AddIn |
||||
name="Text Templating" |
||||
author="Matt Ward" |
||||
copyright="prj:///doc/copyright.txt" |
||||
description="Adds support for T4 templates." |
||||
addInManagerHidden="preinstalled"> |
||||
|
||||
<Manifest> |
||||
<Identity name="ICSharpCode.TextTemplating"/> |
||||
</Manifest> |
||||
|
||||
<Runtime> |
||||
<Import assembly="TextTemplating.dll"/> |
||||
</Runtime> |
||||
|
||||
<Path name="/SharpDevelop/Workbench/FileFilter"> |
||||
<FileFilter |
||||
id="T4" |
||||
insertbefore="AllFiles" |
||||
name="Text Template Files (*.tt)" |
||||
extensions="*.tt"/> |
||||
</Path> |
||||
|
||||
<Path name="/SharpDevelop/CustomTools"> |
||||
<CustomTool |
||||
id="TextTemplatingFileGenerator" |
||||
class="ICSharpCode.TextTemplating.TextTemplatingFileGeneratorCustomTool" |
||||
fileNamePattern=".tt"/> |
||||
</Path> |
||||
</AddIn> |
@ -0,0 +1,84 @@
@@ -0,0 +1,84 @@
|
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build"> |
||||
<PropertyGroup> |
||||
<ProjectGuid>{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}</ProjectGuid> |
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform> |
||||
<OutputType>Library</OutputType> |
||||
<RootNamespace>ICSharpCode.TextTemplating</RootNamespace> |
||||
<AssemblyName>TextTemplating</AssemblyName> |
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> |
||||
<AllowUnsafeBlocks>False</AllowUnsafeBlocks> |
||||
<NoStdLib>False</NoStdLib> |
||||
<WarningLevel>4</WarningLevel> |
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors> |
||||
<OutputPath>..\..\..\..\..\AddIns\Misc\TextTemplating\</OutputPath> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition=" '$(Platform)' == 'x86' "> |
||||
<PlatformTarget>x86</PlatformTarget> |
||||
<RegisterForComInterop>False</RegisterForComInterop> |
||||
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies> |
||||
<BaseAddress>4194304</BaseAddress> |
||||
<FileAlignment>4096</FileAlignment> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> |
||||
<DebugSymbols>true</DebugSymbols> |
||||
<DebugType>Full</DebugType> |
||||
<Optimize>False</Optimize> |
||||
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow> |
||||
<DefineConstants>DEBUG;TRACE</DefineConstants> |
||||
<StartAction>Project</StartAction> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' "> |
||||
<DebugSymbols>false</DebugSymbols> |
||||
<DebugType>None</DebugType> |
||||
<Optimize>True</Optimize> |
||||
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow> |
||||
<DefineConstants>TRACE</DefineConstants> |
||||
</PropertyGroup> |
||||
<ItemGroup> |
||||
<Reference Include="Mono.TextTemplating"> |
||||
<HintPath>lib\Mono.TextTemplating.dll</HintPath> |
||||
</Reference> |
||||
<Reference Include="System" /> |
||||
<Reference Include="System.Core"> |
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework> |
||||
</Reference> |
||||
<Reference Include="System.Xml" /> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<Compile Include="..\..\..\..\Main\GlobalAssemblyInfo.cs"> |
||||
<Link>Configuration\GlobalAssemblyInfo.cs</Link> |
||||
</Compile> |
||||
<Compile Include="Src\ITextTemplatingAppDomain.cs" /> |
||||
<Compile Include="Src\ITextTemplatingAppDomainFactory.cs" /> |
||||
<Compile Include="Src\ITextTemplatingCustomToolContext.cs" /> |
||||
<Compile Include="Src\ITextTemplatingHost.cs" /> |
||||
<Compile Include="Src\ITextTemplatingFileGenerator.cs" /> |
||||
<Compile Include="Src\TextTemplatingAppDomain.cs" /> |
||||
<Compile Include="Src\TextTemplatingAppDomainFactory.cs" /> |
||||
<Compile Include="Src\TextTemplatingCustomToolContext.cs" /> |
||||
<Compile Include="Src\TextTemplatingFileGenerator.cs" /> |
||||
<Compile Include="Src\TextTemplatingFileGeneratorCustomTool.cs" /> |
||||
<Compile Include="Configuration\AssemblyInfo.cs" /> |
||||
<Compile Include="Src\TextTemplatingHost.cs" /> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<None Include="TextTemplating.addin"> |
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory> |
||||
</None> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj"> |
||||
<Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project> |
||||
<Name>ICSharpCode.SharpDevelop</Name> |
||||
<Private>False</Private> |
||||
</ProjectReference> |
||||
<ProjectReference Include="..\..\..\..\Main\Core\Project\ICSharpCode.Core.csproj"> |
||||
<Project>{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}</Project> |
||||
<Name>ICSharpCode.Core</Name> |
||||
<Private>False</Private> |
||||
</ProjectReference> |
||||
</ItemGroup> |
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> |
||||
</Project> |
Binary file not shown.
@ -0,0 +1,16 @@
@@ -0,0 +1,16 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System.Reflection; |
||||
|
||||
// Information about this assembly is defined by the following
|
||||
// attributes.
|
||||
//
|
||||
// change them to the information which is associated with the assembly
|
||||
// you compile.
|
||||
|
||||
[assembly: AssemblyTitle("TextTemplating.Tests")] |
||||
[assembly: AssemblyDescription("Text Templating (T4) Addin Tests")] |
||||
[assembly: AssemblyConfiguration("")] |
||||
[assembly: AssemblyTrademark("")] |
||||
[assembly: AssemblyCulture("")] |
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using ICSharpCode.TextTemplating; |
||||
|
||||
namespace TextTemplating.Tests.Helpers |
||||
{ |
||||
public class FakeTextTemplatingAppDomain : ITextTemplatingAppDomain |
||||
{ |
||||
public bool IsDisposeCalled; |
||||
|
||||
public AppDomain AppDomain { get; set; } |
||||
|
||||
public void Dispose() |
||||
{ |
||||
IsDisposeCalled = true; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using ICSharpCode.TextTemplating; |
||||
|
||||
namespace TextTemplating.Tests.Helpers |
||||
{ |
||||
public class FakeTextTemplatingAppDomainFactory : ITextTemplatingAppDomainFactory |
||||
{ |
||||
public FakeTextTemplatingAppDomain FakeTextTemplatingAppDomain = new FakeTextTemplatingAppDomain(); |
||||
public int CreateTextTemplatingAppDomainCallCount; |
||||
public string ApplicationBasePassedToCreateTextTemplatingAppDomain; |
||||
|
||||
public ITextTemplatingAppDomain CreateTextTemplatingAppDomain(string applicationBase) |
||||
{ |
||||
ApplicationBasePassedToCreateTextTemplatingAppDomain = applicationBase; |
||||
CreateTextTemplatingAppDomainCallCount++; |
||||
return FakeTextTemplatingAppDomain; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using ICSharpCode.SharpDevelop.Project; |
||||
using ICSharpCode.TextTemplating; |
||||
|
||||
namespace TextTemplating.Tests.Helpers |
||||
{ |
||||
public class FakeTextTemplatingCustomToolContext : ITextTemplatingCustomToolContext |
||||
{ |
||||
public FileProjectItem BaseItemPassedToEnsureOutputFileIsInProject; |
||||
public string OutputFileNamePassedToEnsureOutputFileIsInProject; |
||||
public TestableFileProjectItem EnsureOutputFileIsInProjectReturnValue = new TestableFileProjectItem(@"d:\Projects\MyProject\template.tt"); |
||||
|
||||
public FileProjectItem EnsureOutputFileIsInProject(FileProjectItem baseItem, string outputFileName) |
||||
{ |
||||
BaseItemPassedToEnsureOutputFileIsInProject = baseItem; |
||||
OutputFileNamePassedToEnsureOutputFileIsInProject = outputFileName; |
||||
|
||||
return EnsureOutputFileIsInProjectReturnValue; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using ICSharpCode.TextTemplating; |
||||
|
||||
namespace TextTemplating.Tests.Helpers |
||||
{ |
||||
public class FakeTextTemplatingFileGenerator : ITextTemplatingFileGenerator |
||||
{ |
||||
public bool IsProcessTemplateCalled; |
||||
public bool IsDisposeCalledAfterTemplateProcessed; |
||||
|
||||
public void ProcessTemplate() |
||||
{ |
||||
IsProcessTemplateCalled = true; |
||||
} |
||||
|
||||
public void Dispose() |
||||
{ |
||||
IsDisposeCalledAfterTemplateProcessed = IsProcessTemplateCalled; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using ICSharpCode.TextTemplating; |
||||
|
||||
namespace TextTemplating.Tests.Helpers |
||||
{ |
||||
public class FakeTextTemplatingHost : ITextTemplatingHost |
||||
{ |
||||
public string InputFilePassedToProcessTemplate; |
||||
public string OutputFilePassedToProcessTemplate; |
||||
public bool ProcessTemplateReturnValue = true; |
||||
public bool IsDisposeCalled; |
||||
|
||||
public bool ProcessTemplate(string inputFile, string outputFile) |
||||
{ |
||||
InputFilePassedToProcessTemplate = inputFile; |
||||
OutputFilePassedToProcessTemplate = outputFile; |
||||
return ProcessTemplateReturnValue; |
||||
} |
||||
|
||||
public void Dispose() |
||||
{ |
||||
IsDisposeCalled = true; |
||||
} |
||||
|
||||
public string OutputFile { get; set; } |
||||
} |
||||
} |
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using ICSharpCode.SharpDevelop.Project; |
||||
|
||||
namespace TextTemplating.Tests.Helpers |
||||
{ |
||||
public class TestableFileProjectItem : FileProjectItem |
||||
{ |
||||
string fileName; |
||||
|
||||
public TestableFileProjectItem(string fileName) |
||||
: base(null, ItemType.None) |
||||
{ |
||||
this.fileName = fileName; |
||||
} |
||||
|
||||
public override string FileName { |
||||
get { return fileName; } |
||||
set { fileName = value; } |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using ICSharpCode.SharpDevelop.Project; |
||||
using ICSharpCode.TextTemplating; |
||||
|
||||
namespace TextTemplating.Tests.Helpers |
||||
{ |
||||
public class TestableTextTemplatingFileGeneratorCustomTool : TextTemplatingFileGeneratorCustomTool |
||||
{ |
||||
public FileProjectItem ProjectFilePassedToCreateTextTemplatingFileGenerator; |
||||
public CustomToolContext ContextPassedToCreateTextTemplatingFileGenerator; |
||||
public FakeTextTemplatingFileGenerator FakeTextTemplatingFileGenerator = new FakeTextTemplatingFileGenerator(); |
||||
|
||||
protected override ITextTemplatingFileGenerator CreateTextTemplatingFileGenerator( |
||||
FileProjectItem projectFile, |
||||
CustomToolContext context) |
||||
{ |
||||
ProjectFilePassedToCreateTextTemplatingFileGenerator = projectFile; |
||||
ContextPassedToCreateTextTemplatingFileGenerator = context; |
||||
|
||||
return FakeTextTemplatingFileGenerator; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,73 @@
@@ -0,0 +1,73 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using ICSharpCode.SharpDevelop.Internal.Templates; |
||||
using ICSharpCode.SharpDevelop.Project; |
||||
using ICSharpCode.TextTemplating; |
||||
using NUnit.Framework; |
||||
using TextTemplating.Tests.Helpers; |
||||
|
||||
namespace TextTemplating.Tests |
||||
{ |
||||
[TestFixture] |
||||
public class TextTemplatingFileGeneratorCustomToolTests |
||||
{ |
||||
TestableTextTemplatingFileGeneratorCustomTool customTool; |
||||
|
||||
void CreateCustomTool() |
||||
{ |
||||
customTool = new TestableTextTemplatingFileGeneratorCustomTool(); |
||||
} |
||||
|
||||
IProject CreateProject() |
||||
{ |
||||
return new MSBuildFileProject(@"d:\projects\test.csproj", "test"); |
||||
} |
||||
|
||||
FileProjectItem GenerateCodeWithProjectFile() |
||||
{ |
||||
var file = new TestableFileProjectItem("test.tt"); |
||||
customTool.GenerateCode(file, null); |
||||
return file; |
||||
} |
||||
|
||||
[Test] |
||||
public void GenerateCode_ProjectFilePassed_ProjectFileUsedToCreateTextTemplatingFileGenerator() |
||||
{ |
||||
CreateCustomTool(); |
||||
var file = GenerateCodeWithProjectFile(); |
||||
|
||||
Assert.AreEqual(file, customTool.ProjectFilePassedToCreateTextTemplatingFileGenerator); |
||||
} |
||||
|
||||
[Test] |
||||
public void GenerateCode_CustomToolContextPassed_CustomToolContextUsedToCreateTextTemplatingFileGenerator() |
||||
{ |
||||
CreateCustomTool(); |
||||
IProject project = CreateProject(); |
||||
var context = new CustomToolContext(project); |
||||
customTool.GenerateCode(null, context); |
||||
|
||||
Assert.AreEqual(context, customTool.ContextPassedToCreateTextTemplatingFileGenerator); |
||||
} |
||||
|
||||
[Test] |
||||
public void GenerateCode_ProjectFilePassed_TemplateIsProcessed() |
||||
{ |
||||
CreateCustomTool(); |
||||
GenerateCodeWithProjectFile(); |
||||
|
||||
Assert.IsTrue(customTool.FakeTextTemplatingFileGenerator.IsProcessTemplateCalled); |
||||
} |
||||
|
||||
[Test] |
||||
public void GenerateCode_ProjectFilePassed_TextTemplatingFileGeneratorIsDisposedAfterTemplateIsProcessed() |
||||
{ |
||||
CreateCustomTool(); |
||||
GenerateCodeWithProjectFile(); |
||||
|
||||
Assert.IsTrue(customTool.FakeTextTemplatingFileGenerator.IsDisposeCalledAfterTemplateProcessed); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,83 @@
@@ -0,0 +1,83 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using ICSharpCode.SharpDevelop.Project; |
||||
using ICSharpCode.TextTemplating; |
||||
using NUnit.Framework; |
||||
using TextTemplating.Tests.Helpers; |
||||
|
||||
namespace TextTemplating.Tests |
||||
{ |
||||
[TestFixture] |
||||
public class TextTemplatingFileGeneratorTests |
||||
{ |
||||
TextTemplatingFileGenerator generator; |
||||
FakeTextTemplatingHost templatingHost; |
||||
FakeTextTemplatingCustomToolContext customToolContext; |
||||
|
||||
FileProjectItem ProcessTemplate(string fileName) |
||||
{ |
||||
var projectFile = CreateGenerator(fileName); |
||||
generator.ProcessTemplate(); |
||||
|
||||
return projectFile; |
||||
} |
||||
|
||||
FileProjectItem CreateGenerator(string fileName) |
||||
{ |
||||
templatingHost = new FakeTextTemplatingHost(); |
||||
var projectFile = new TestableFileProjectItem(fileName); |
||||
customToolContext = new FakeTextTemplatingCustomToolContext(); |
||||
|
||||
generator = new TextTemplatingFileGenerator(templatingHost, projectFile, customToolContext); |
||||
|
||||
return projectFile; |
||||
} |
||||
|
||||
[Test] |
||||
public void ProcessTemplate_TemplateFileInProjectPassed_TemplatingHostProcessesFile() |
||||
{ |
||||
string fileName = @"d:\projects\MyProject\template.tt"; |
||||
ProcessTemplate(fileName); |
||||
|
||||
Assert.AreEqual(fileName, templatingHost.InputFilePassedToProcessTemplate); |
||||
} |
||||
|
||||
[Test] |
||||
public void ProcessTemplate_TemplateFileInProjectPassed_OutputFileNamePassedIsInputFileWithFileExtensionChangedToCSharpFileExtension() |
||||
{ |
||||
ProcessTemplate(@"d:\projects\MyProject\template.tt"); |
||||
|
||||
string expectedOutputFileName = @"d:\projects\MyProject\template.cs"; |
||||
Assert.AreEqual(expectedOutputFileName, templatingHost.OutputFilePassedToProcessTemplate); |
||||
} |
||||
|
||||
[Test] |
||||
public void Dispose_TemplateHostUsedToCreateFileGenerator_TemplateHostIsDisposed() |
||||
{ |
||||
CreateGenerator(@"d:\template.tt"); |
||||
generator.Dispose(); |
||||
|
||||
Assert.IsTrue(templatingHost.IsDisposeCalled); |
||||
} |
||||
|
||||
[Test] |
||||
public void ProcessTemplate_TemplateFileInProjectPassed_TemplateFileInProjectUsedWhenCheckingIfOutputFileExistsInProject() |
||||
{ |
||||
var file = ProcessTemplate(@"d:\template.tt"); |
||||
|
||||
Assert.AreEqual(file, customToolContext.BaseItemPassedToEnsureOutputFileIsInProject); |
||||
} |
||||
|
||||
[Test] |
||||
public void ProcessTemplate_OutputFileNameChangedWhenTemplateProcessed_NewOutputFileNameIsUsedWhenCheckingIfOutputFileExistsInProject() |
||||
{ |
||||
CreateGenerator(@"d:\template.tt"); |
||||
templatingHost.OutputFile = @"d:\changed-output.test"; |
||||
generator.ProcessTemplate(); |
||||
|
||||
Assert.AreEqual(@"d:\changed-output.test", customToolContext.OutputFileNamePassedToEnsureOutputFileIsInProject); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,94 @@
@@ -0,0 +1,94 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using System.IO; |
||||
using ICSharpCode.TextTemplating; |
||||
using NUnit.Framework; |
||||
using TextTemplating.Tests.Helpers; |
||||
|
||||
namespace TextTemplating.Tests |
||||
{ |
||||
[TestFixture] |
||||
public class TextTemplatingHostTests |
||||
{ |
||||
TextTemplatingHost host; |
||||
FakeTextTemplatingAppDomainFactory textTemplatingAppDomainFactory; |
||||
FakeTextTemplatingAppDomain textTemplatingAppDomain; |
||||
|
||||
void CreateHost() |
||||
{ |
||||
CreateHost(String.Empty); |
||||
} |
||||
|
||||
void CreateHost(string applicationBase) |
||||
{ |
||||
textTemplatingAppDomainFactory = new FakeTextTemplatingAppDomainFactory(); |
||||
textTemplatingAppDomain = textTemplatingAppDomainFactory.FakeTextTemplatingAppDomain; |
||||
host = new TextTemplatingHost(textTemplatingAppDomainFactory, applicationBase); |
||||
} |
||||
|
||||
[Test] |
||||
public void ProvideTemplatingAppDomain_PassedContentName_ReturnsDomainFromTextTemplatingAppDomainFactory() |
||||
{ |
||||
CreateHost(); |
||||
AppDomain expectedAppDomain = AppDomain.CreateDomain("TextTemplatingHostTests"); |
||||
textTemplatingAppDomain.AppDomain = expectedAppDomain; |
||||
|
||||
AppDomain actualAppDomain = host.ProvideTemplatingAppDomain("test"); |
||||
|
||||
Assert.AreEqual(expectedAppDomain, actualAppDomain); |
||||
} |
||||
|
||||
[Test] |
||||
public void Dispose_DisposingHostAfterProvideTemplatingAppDomainCalled_DisposesTemplatingAppDomain() |
||||
{ |
||||
CreateHost(); |
||||
host.ProvideTemplatingAppDomain("test"); |
||||
host.Dispose(); |
||||
|
||||
Assert.IsTrue(textTemplatingAppDomain.IsDisposeCalled); |
||||
} |
||||
|
||||
[Test] |
||||
public void Dispose_DisposingHostWhenProvideTemplatingAppDomainIsNotCalled_DoesNotThrowNullReferenceException() |
||||
{ |
||||
CreateHost(); |
||||
Assert.DoesNotThrow(() => host.Dispose()); |
||||
} |
||||
|
||||
[Test] |
||||
public void ProvideTemplatingAppDomain_MethodCalledTwice_AppDomainCreatedOnce() |
||||
{ |
||||
CreateHost(); |
||||
host.ProvideTemplatingAppDomain("test"); |
||||
host.ProvideTemplatingAppDomain("test"); |
||||
|
||||
Assert.AreEqual(1, textTemplatingAppDomainFactory.CreateTextTemplatingAppDomainCallCount); |
||||
} |
||||
|
||||
[Test] |
||||
public void Dispose_DisposeCalledTwiceHostAfterProvideTemplatingAppDomainCalled_DisposesTemplatingAppDomainOnce() |
||||
{ |
||||
CreateHost(); |
||||
host.ProvideTemplatingAppDomain("test"); |
||||
host.Dispose(); |
||||
|
||||
textTemplatingAppDomain.IsDisposeCalled = false; |
||||
host.Dispose(); |
||||
|
||||
Assert.IsFalse(textTemplatingAppDomain.IsDisposeCalled); |
||||
} |
||||
|
||||
[Test] |
||||
public void ProvideTemplatingAppDomain_PassedContentName_HostApplicationBaseIsUsedAsAppDomainSetupApplicationBase() |
||||
{ |
||||
string applicationBase = @"d:\sharpdevelop\addins\texttemplating"; |
||||
CreateHost(applicationBase); |
||||
host.ProvideTemplatingAppDomain("test"); |
||||
|
||||
string actualApplicationBase = textTemplatingAppDomainFactory.ApplicationBasePassedToCreateTextTemplatingAppDomain; |
||||
Assert.AreEqual(applicationBase, actualApplicationBase); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,89 @@
@@ -0,0 +1,89 @@
|
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build"> |
||||
<PropertyGroup> |
||||
<ProjectGuid>{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}</ProjectGuid> |
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform> |
||||
<OutputType>Library</OutputType> |
||||
<RootNamespace>TextTemplating.Tests</RootNamespace> |
||||
<AssemblyName>TextTemplating.Tests</AssemblyName> |
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> |
||||
<AppDesignerFolder>Properties</AppDesignerFolder> |
||||
<AllowUnsafeBlocks>False</AllowUnsafeBlocks> |
||||
<NoStdLib>False</NoStdLib> |
||||
<WarningLevel>4</WarningLevel> |
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors> |
||||
<OutputPath>..\..\..\..\..\..\bin\UnitTests\</OutputPath> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition=" '$(Platform)' == 'x86' "> |
||||
<PlatformTarget>x86</PlatformTarget> |
||||
<RegisterForComInterop>False</RegisterForComInterop> |
||||
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies> |
||||
<BaseAddress>4194304</BaseAddress> |
||||
<FileAlignment>4096</FileAlignment> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> |
||||
<DebugSymbols>true</DebugSymbols> |
||||
<DebugType>Full</DebugType> |
||||
<Optimize>False</Optimize> |
||||
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow> |
||||
<DefineConstants>DEBUG;TRACE</DefineConstants> |
||||
<StartAction>Project</StartAction> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' "> |
||||
<DebugSymbols>false</DebugSymbols> |
||||
<DebugType>None</DebugType> |
||||
<Optimize>True</Optimize> |
||||
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow> |
||||
<DefineConstants>TRACE</DefineConstants> |
||||
</PropertyGroup> |
||||
<ItemGroup> |
||||
<Reference Include="Mono.TextTemplating"> |
||||
<HintPath>..\Project\lib\Mono.TextTemplating.dll</HintPath> |
||||
</Reference> |
||||
<Reference Include="nunit.framework"> |
||||
<HintPath>..\..\..\..\Tools\NUnit\nunit.framework.dll</HintPath> |
||||
</Reference> |
||||
<Reference Include="System" /> |
||||
<Reference Include="System.Core"> |
||||
<RequiredTargetFramework>3.5</RequiredTargetFramework> |
||||
</Reference> |
||||
<Reference Include="System.Xml" /> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<Compile Include="..\..\..\..\Main\GlobalAssemblyInfo.cs"> |
||||
<Link>Configuration\GlobalAssemblyInfo.cs</Link> |
||||
</Compile> |
||||
<Compile Include="Configuration\AssemblyInfo.cs" /> |
||||
<Compile Include="Helpers\FakeTextTemplatingAppDomain.cs" /> |
||||
<Compile Include="Helpers\FakeTextTemplatingAppDomainFactory.cs" /> |
||||
<Compile Include="Helpers\FakeTextTemplatingCustomToolContext.cs" /> |
||||
<Compile Include="Helpers\FakeTextTemplatingHost.cs" /> |
||||
<Compile Include="Helpers\FakeTextTemplatingFileGenerator.cs" /> |
||||
<Compile Include="Helpers\TestableFileProjectItem.cs" /> |
||||
<Compile Include="Helpers\TestableTextTemplatingFileGeneratorCustomTool.cs" /> |
||||
<Compile Include="Src\TextTemplatingFileGeneratorCustomToolTests.cs" /> |
||||
<Compile Include="Src\TextTemplatingFileGeneratorTests.cs" /> |
||||
<Compile Include="Src\TextTemplatingHostTests.cs" /> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<Folder Include="Configuration" /> |
||||
<Folder Include="Src" /> |
||||
<Folder Include="Helpers" /> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<ProjectReference Include="..\..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj"> |
||||
<Project>{2748AD25-9C63-4E12-877B-4DCE96FBED54}</Project> |
||||
<Name>ICSharpCode.SharpDevelop</Name> |
||||
</ProjectReference> |
||||
<ProjectReference Include="..\..\..\..\Main\Core\Project\ICSharpCode.Core.csproj"> |
||||
<Project>{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}</Project> |
||||
<Name>ICSharpCode.Core</Name> |
||||
</ProjectReference> |
||||
<ProjectReference Include="..\Project\TextTemplating.csproj"> |
||||
<Project>{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}</Project> |
||||
<Name>TextTemplating</Name> |
||||
</ProjectReference> |
||||
</ItemGroup> |
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> |
||||
</Project> |
@ -0,0 +1,110 @@
@@ -0,0 +1,110 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00 |
||||
# Visual Studio 2010 |
||||
# SharpDevelop 4.1.0.7318-alpha |
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TextTemplating", "Project\TextTemplating.csproj", "{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}" |
||||
EndProject |
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonDock", "..\..\..\Libraries\AvalonDock\AvalonDock\AvalonDock.csproj", "{87E61430-4243-45F2-B74E-0A4C096CEBF3}" |
||||
EndProject |
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.AvalonEdit", "..\..\..\Libraries\AvalonEdit\ICSharpCode.AvalonEdit\ICSharpCode.AvalonEdit.csproj", "{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}" |
||||
EndProject |
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.Presentation", "..\..\..\Main\ICSharpCode.Core.Presentation\ICSharpCode.Core.Presentation.csproj", "{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}" |
||||
EndProject |
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.WinForms", "..\..\..\Main\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj", "{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}" |
||||
EndProject |
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Dom", "..\..\..\Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj", "{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}" |
||||
EndProject |
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Widgets", "..\..\..\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj", "{8035765F-D51F-4A0C-A746-2FD100E19419}" |
||||
EndProject |
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TextTemplating.Tests", "Test\TextTemplating.Tests.csproj", "{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}" |
||||
EndProject |
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop", "..\..\..\Main\Base\Project\ICSharpCode.SharpDevelop.csproj", "{2748AD25-9C63-4E12-877B-4DCE96FBED54}" |
||||
EndProject |
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core", "..\..\..\Main\Core\Project\ICSharpCode.Core.csproj", "{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}" |
||||
EndProject |
||||
Global |
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
||||
Debug|x86 = Debug|x86 |
||||
Release|x86 = Release|x86 |
||||
Debug|Any CPU = Debug|Any CPU |
||||
Release|Any CPU = Release|Any CPU |
||||
EndGlobalSection |
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution |
||||
{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Debug|x86.Build.0 = Debug|x86 |
||||
{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Debug|x86.ActiveCfg = Debug|x86 |
||||
{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Release|x86.Build.0 = Release|x86 |
||||
{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Release|x86.ActiveCfg = Release|x86 |
||||
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Debug|x86.Build.0 = Debug|Any CPU |
||||
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Debug|x86.ActiveCfg = Debug|Any CPU |
||||
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Release|x86.Build.0 = Release|Any CPU |
||||
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Release|x86.ActiveCfg = Release|Any CPU |
||||
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
{87E61430-4243-45F2-B74E-0A4C096CEBF3}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.Build.0 = Debug|Any CPU |
||||
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.ActiveCfg = Debug|Any CPU |
||||
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x86.Build.0 = Release|Any CPU |
||||
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x86.ActiveCfg = Release|Any CPU |
||||
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|x86.Build.0 = Debug|Any CPU |
||||
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|x86.ActiveCfg = Debug|Any CPU |
||||
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|x86.Build.0 = Release|Any CPU |
||||
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|x86.ActiveCfg = Release|Any CPU |
||||
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
{7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|x86.Build.0 = Debug|Any CPU |
||||
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|x86.ActiveCfg = Debug|Any CPU |
||||
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|x86.Build.0 = Release|Any CPU |
||||
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|x86.ActiveCfg = Release|Any CPU |
||||
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|x86.Build.0 = Debug|Any CPU |
||||
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|x86.ActiveCfg = Debug|Any CPU |
||||
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|x86.Build.0 = Release|Any CPU |
||||
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|x86.ActiveCfg = Release|Any CPU |
||||
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
{8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|x86.Build.0 = Debug|Any CPU |
||||
{8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|x86.ActiveCfg = Debug|Any CPU |
||||
{8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
{8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
{8035765F-D51F-4A0C-A746-2FD100E19419}.Release|x86.Build.0 = Release|Any CPU |
||||
{8035765F-D51F-4A0C-A746-2FD100E19419}.Release|x86.ActiveCfg = Release|Any CPU |
||||
{8035765F-D51F-4A0C-A746-2FD100E19419}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
{8035765F-D51F-4A0C-A746-2FD100E19419}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Debug|x86.Build.0 = Debug|x86 |
||||
{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Debug|x86.ActiveCfg = Debug|x86 |
||||
{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Debug|Any CPU.Build.0 = Debug|x86 |
||||
{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Debug|Any CPU.ActiveCfg = Debug|x86 |
||||
{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Release|x86.Build.0 = Release|x86 |
||||
{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Release|x86.ActiveCfg = Release|x86 |
||||
{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Release|Any CPU.Build.0 = Release|x86 |
||||
{5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Release|Any CPU.ActiveCfg = Release|x86 |
||||
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|x86.Build.0 = Debug|Any CPU |
||||
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|x86.ActiveCfg = Debug|Any CPU |
||||
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|x86.Build.0 = Release|Any CPU |
||||
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|x86.ActiveCfg = Release|Any CPU |
||||
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
{2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|x86.Build.0 = Debug|Any CPU |
||||
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|x86.ActiveCfg = Debug|Any CPU |
||||
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Any CPU.Build.0 = Debug|Any CPU |
||||
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
||||
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|x86.Build.0 = Release|Any CPU |
||||
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|x86.ActiveCfg = Release|Any CPU |
||||
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|Any CPU.Build.0 = Release|Any CPU |
||||
{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|Any CPU.ActiveCfg = Release|Any CPU |
||||
EndGlobalSection |
||||
EndGlobal |
Loading…
Reference in new issue