Add text generator to prebuild
This commit is contained in:
parent
00637861f7
commit
7c6e0021c2
8 changed files with 108 additions and 285 deletions
21
Prebuild.sln
21
Prebuild.sln
|
@ -1,21 +0,0 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 22
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Prebuild", "..\Prebuild\src\Prebuild.csproj", "{BCE0B56D-0000-0000-0000-000000000000}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Files", "Solution Files", "{198FE683-AA28-459F-9818-EF8F29428DFC}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
prebuild.xml = prebuild.xml
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{BCE0B56D-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BCE0B56D-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BCE0B56D-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BCE0B56D-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
EndGlobal
|
Binary file not shown.
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Prebuild xmlns="http://dnpb.sourceforge.net/schemas/prebuild-1.10.xsd" version="1.10">
|
||||
<Solution name="Prebuild" version="2.0.8" frameworkVersion="net7_0">
|
||||
<Solution name="Prebuild" version="2.0.9" frameworkVersion="net7_0">
|
||||
<Options>
|
||||
<UseDepsFile>true</UseDepsFile>
|
||||
</Options>
|
||||
|
@ -33,7 +33,7 @@
|
|||
type="Exe"
|
||||
rootNamespace="Prebuild"
|
||||
startupObject="Prebuild.Prebuild"
|
||||
version="2.0.8"
|
||||
version="2.0.9"
|
||||
>
|
||||
<Author>Matthew Holmes (matthew@wildfiregames.com)</Author>
|
||||
<Author>Dan Moorehead (dan05a@gmail.com)</Author>
|
||||
|
|
|
@ -247,6 +247,7 @@ public class ProjectNode : DataNode, IComparable
|
|||
else if (dataNode is AuthorNode)
|
||||
Authors.Add((AuthorNode)dataNode);
|
||||
else if (dataNode is FilesNode) Files = (FilesNode)dataNode;
|
||||
else if(dataNode is TextGenNode) TextGenNodes.Add((TextGenNode)dataNode);
|
||||
}
|
||||
}
|
||||
finally
|
||||
|
@ -428,6 +429,12 @@ public class ProjectNode : DataNode, IComparable
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the text generator nodes
|
||||
/// </summary>
|
||||
public List<TextGenNode> TextGenNodes { get; private set; } = new();
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Gets the configurations table.
|
||||
/// </summary>
|
||||
|
|
76
src/Core/Nodes/TextGenNode.cs
Normal file
76
src/Core/Nodes/TextGenNode.cs
Normal file
|
@ -0,0 +1,76 @@
|
|||
using Prebuild.Core.Attributes;
|
||||
using Prebuild.Core.Utilities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml;
|
||||
|
||||
namespace Prebuild.Core.Nodes
|
||||
{
|
||||
[DataNode("TextGen")]
|
||||
public class TextGenNode : DataNode
|
||||
{
|
||||
#region Values
|
||||
private string m_Name;
|
||||
private string m_Generator;
|
||||
private bool m_AutoGen = true;
|
||||
private string m_OutputName;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
public override void Parse(XmlNode node)
|
||||
{
|
||||
m_Name = Helper.AttributeValue(node, "name", "");
|
||||
m_Generator = Helper.AttributeValue(node, "generator", "TextTemplatingFileGenerator");
|
||||
m_AutoGen = Helper.ParseBoolean(node, "autogen", true);
|
||||
m_OutputName = Helper.AttributeValue(node, "output", "");
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Fields
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Name;
|
||||
}
|
||||
}
|
||||
|
||||
public string Generator
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_Generator;
|
||||
}
|
||||
}
|
||||
|
||||
public bool AutoGen
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_AutoGen;
|
||||
}
|
||||
}
|
||||
|
||||
public string AutoGenerate
|
||||
{
|
||||
get
|
||||
{
|
||||
return AutoGen ? "True" : "False";
|
||||
}
|
||||
}
|
||||
|
||||
public string OutputName
|
||||
{
|
||||
get
|
||||
{
|
||||
return m_OutputName;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
|
@ -687,6 +687,23 @@ public abstract class VSGenericTarget : ITarget
|
|||
}
|
||||
}
|
||||
|
||||
private void WriteTextGeneratorNodes(ProjectNode project, StreamWriter ps)
|
||||
{
|
||||
foreach(TextGenNode node in project.TextGenNodes)
|
||||
{
|
||||
ps.WriteLine(" <ItemGroup>");
|
||||
ps.WriteLine($" <None Update=\"{node.Name}\">");
|
||||
ps.WriteLine($" <Generator>{node.Generator}</Generator>");
|
||||
ps.WriteLine($" </None>");
|
||||
ps.WriteLine($" <None Update=\"{node.OutputName}\">");
|
||||
ps.WriteLine($" <DesignTime>True</DesignTime>");
|
||||
ps.WriteLine($" <AutoGen>{node.AutoGenerate}</AutoGen>");
|
||||
ps.WriteLine($" <DependentUpon>{node.Name}</DependentUpon>");
|
||||
ps.WriteLine($" </None>");
|
||||
ps.WriteLine($" </ItemGroup>");
|
||||
}
|
||||
}
|
||||
|
||||
private void WriteProjectDotNet(SolutionNode solution, ProjectNode project, StreamWriter ps)
|
||||
{
|
||||
#region Project File
|
||||
|
@ -838,6 +855,8 @@ public abstract class VSGenericTarget : ITarget
|
|||
// Output the ItemGroup for project.References
|
||||
WriteProjectReferencesDotNet(solution, project, ps);
|
||||
|
||||
WriteTextGeneratorNodes(project, ps);
|
||||
|
||||
if (project.Files.Count > 0)
|
||||
{
|
||||
var list = new List<string>();
|
||||
|
@ -1044,8 +1063,9 @@ public abstract class VSGenericTarget : ITarget
|
|||
|
||||
ps.WriteLine("</Project>");
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
private void WriteProjectReferencesDotNet(SolutionNode solution, ProjectNode project, StreamWriter ps)
|
||||
|
|
|
@ -1,259 +0,0 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<PreserveCompilationContext>false</PreserveCompilationContext>
|
||||
<OutputType>Exe</OutputType>
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<ImplicitUsings>disable</ImplicitUsings>
|
||||
<AssemblyName>prebuild</AssemblyName>
|
||||
<Deterministic>true</Deterministic>
|
||||
<ProduceReferenceAssembly>false</ProduceReferenceAssembly>
|
||||
<GenerateDependencyFile>false</GenerateDependencyFile>
|
||||
<EnableDefaultItems>false</EnableDefaultItems>
|
||||
<CopyLocalLockFileAssemblies>True</CopyLocalLockFileAssemblies>
|
||||
<SelfContained>False</SelfContained>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DocumentationFile></DocumentationFile>
|
||||
<DebugSymbols>True</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<Optimize>False</Optimize>
|
||||
<TieredCompilationQuickJit>false</TieredCompilationQuickJit>
|
||||
<UseCommonOutputDirectory>False</UseCommonOutputDirectory>
|
||||
<AppendTargetFrameworkToOutputPath>True</AppendTargetFrameworkToOutputPath>
|
||||
<AppendRuntimeIdentifierToOutputPath>True</AppendRuntimeIdentifierToOutputPath>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<RegisterForComInterop>False</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>False</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<NoStdLib>False</NoStdLib>
|
||||
<NoWarn>1595</NoWarn>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
|
||||
<BaseAddress>285212672</BaseAddress>
|
||||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<DocumentationFile></DocumentationFile>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<Optimize>True</Optimize>
|
||||
<TieredCompilationQuickJit>false</TieredCompilationQuickJit>
|
||||
<UseCommonOutputDirectory>False</UseCommonOutputDirectory>
|
||||
<AppendTargetFrameworkToOutputPath>True</AppendTargetFrameworkToOutputPath>
|
||||
<AppendRuntimeIdentifierToOutputPath>True</AppendRuntimeIdentifierToOutputPath>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<RegisterForComInterop>False</RegisterForComInterop>
|
||||
<RemoveIntegerChecks>False</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<NoStdLib>False</NoStdLib>
|
||||
<NoWarn>1595</NoWarn>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System.EnterpriseServices" >
|
||||
<Name>System.EnterpriseServices</Name>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="App.ico">
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="data\prebuild-1.10.xsd">
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="data\autotools.xml">
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Prebuild.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\FatalException.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Kernel.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\UnknownLanguageException.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\WarningException.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Attributes\DataNodeAttribute.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Attributes\OptionNodeAttribute.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Attributes\TargetAttribute.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Interfaces\IDataNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Interfaces\ITarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\AuthorNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\CleanFilesNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\CleanupNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ConfigurationNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ConfigurationNodeCollection.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\DatabaseProjectNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\DatabaseReferenceNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\DataNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\DescriptionNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ExcludeNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\FileNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\FilesNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\MatchNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\OptionsNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\PackageReferenceNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ProcessNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ProjectNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ProjectReferenceNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ReferenceNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\ReferencePathNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Nodes\SolutionNode.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Parse\IfContext.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Parse\Preprocessor.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\AutotoolsTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\DebugTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\MakefileTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\MonoDevelopTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\NAntTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\SharpDevelop2Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\SharpDevelopTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\ToolInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2002Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2003Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2005Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2008Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2010Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2012Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2013Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2015Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2017Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2019Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VS2022Target.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VSGenericTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\VSVersion.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Targets\XcodeTarget.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Utilities\CommandLineCollection.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Utilities\CurrentDirectory.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Utilities\Helper.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Core\Utilities\Log.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -60,7 +60,7 @@ using System.Runtime.InteropServices;
|
|||
[assembly: AssemblyConfiguration(".NET CLR")]
|
||||
[assembly: AssemblyCompany("The Prebuild Project")]
|
||||
[assembly: AssemblyProduct("")]
|
||||
[assembly: AssemblyCopyright("Copyright 2004-2015 " +
|
||||
[assembly: AssemblyCopyright("Copyright 2004-2023 " +
|
||||
"Tara Piccari (Aria's Creations)" +
|
||||
"Matthew Holmes, " +
|
||||
"Dan Moorehead, " +
|
||||
|
@ -73,7 +73,7 @@ using System.Runtime.InteropServices;
|
|||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: NeutralResourcesLanguageAttribute("en-US")]
|
||||
[assembly: AssemblyVersion("2.0.8.0")]
|
||||
[assembly: AssemblyVersion("2.0.9.0")]
|
||||
|
||||
//
|
||||
// Version information for an assembly consists of the following four values:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue