kreta/Tools/CodeGeneration/CodeGeneration.proj
2024-03-13 00:33:46 +01:00

91 lines
6 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0" DefaultTargets="Main">
<PropertyGroup>
<SolutionRoot>$(MSBuildProjectDirectory)\..\..\</SolutionRoot>
<ModelXml>$(SolutionRoot)\Kreta.DataAccess.Model\Kreta.DataAccess.Model.xml</ModelXml>
<ModelImf>$(SolutionRoot)\Kreta.DataAccess.Model\Kreta.DataAccess.Model.imf</ModelImf>
<TemplatesDir>$(SolutionRoot)\Tools\CodeGeneration\Templates</TemplatesDir>
<AcdTool>c:\OpenAmeos11.0\bin\W32NTX86\acd.exe</AcdTool>
<ProjectName>Kreta</ProjectName>
</PropertyGroup>
<ItemGroup>
<ModelXmls Include="$(ModelXml)" />
</ItemGroup>
<UsingTask TaskName="Sda.Build.Tasks.DictionaryItem" AssemblyFile="Sda.Build.dll" />
<UsingTask TaskName="Sda.Build.Tasks.MssqlDBCreate" AssemblyFile="Sda.Build.dll" />
<UsingTask TaskName="Sda.Build.Tasks.UpdateIds" AssemblyFile="Sda.Build.dll"/>
<UsingTask TaskName="Sda.Build.Tasks.GenerateImf" AssemblyFile="Sda.Build.dll"/>
<UsingTask TaskName="Sda.Build.Tasks.SetEnvVar" AssemblyFile="Sda.Build.dll"/>
<UsingTask TaskName="Sda.Build.Tasks.UnixLineEnding" AssemblyFile="Sda.Build.dll"/>
<Target Name="Main">
<!-- <Message Text="DIR = $(SolutionRoot)" /> -->
<CallTarget Targets="CompileUml" />
</Target>
<Target Name="CompileUml">
<CallTarget Targets="CreateImf" />
<CallTarget Targets="GenerateUML" />
</Target>
<Target Name="CreateImf">
<UpdateIds Input="$(ModelXml)" Packages="$(ProjectName)" ContinueOnError="ErrorAndContinue" />
<Copy SourceFiles="$(ModelXml).alt" DestinationFiles="$(ModelXml)" SkipUnchangedFiles="true" />
<GenerateImf Inputs="@(ModelXmls)" Output="$(ModelImf)" ContinueOnError="false" />
</Target>
<Target Name="GenerateUML">
<CallTarget Targets="InitGenerate;GenerateDataAccessProject;GenerateEnums;GenerateDb;CreateDB" />
</Target>
<Target Name="InitGenerate">
<SetEnvVar Variable="ACD_TEMP_DIR" Value="$(TemplatesDir)" />
<SetEnvVar Variable="MERGE_PATH" Value="$(TemplatesDir)" />
<Exec Command="&quot;$(AcdTool)&quot; -f &quot;$(ModelImf)&quot; -t &quot;$(TemplatesDir)\Server\Run\MetaModelTXTMain.tdl&quot; -var OutputDir='$(SolutionRoot)\Kreta.DataAccess.Migrations\DBScripts' ProjectName='$(ProjectName)'"
WorkingDirectory="$(TemplatesDir)" />
</Target>
<Target Name="GenerateDataAccessProject" Condition="'$(GenerateDataAccessProject)' == 'true'">
<Exec Command="&quot;$(AcdTool)&quot; -f &quot;$(ModelImf)&quot; -t &quot;$(TemplatesDir)\Server\Run\DataAccessMain.tdl&quot; -var OutputDir='$(SolutionRoot)' ProjectName='$(ProjectName)' GENERATEPROJECTFILE='True'"
WorkingDirectory="$(TemplatesDir)" />
<Exec Command="&quot;$(AcdTool)&quot; -f &quot;$(ModelImf)&quot; -t &quot;$(TemplatesDir)\Server\Run\DataAccessMain.tdl&quot; -var OutputDir='$(SolutionRoot)' ProjectName='$(ProjectName)' DATAACCESSOR='True'"
WorkingDirectory="$(TemplatesDir)" />
<Exec Command="&quot;$(AcdTool)&quot; -f &quot;$(ModelImf)&quot; -t &quot;$(TemplatesDir)\Server\Run\DataAccessMain.tdl&quot; -var OutputDir='$(SolutionRoot)' ProjectName='$(ProjectName)' ENTITY='True'"
WorkingDirectory="$(TemplatesDir)" />
<Exec Command="&quot;$(AcdTool)&quot; -f &quot;$(ModelImf)&quot; -t &quot;$(TemplatesDir)\Server\Run\DataAccessMain.tdl&quot; -var OutputDir='$(SolutionRoot)' ProjectName='$(ProjectName)' ENTITYCOLLECTION='True'"
WorkingDirectory="$(TemplatesDir)" />
<UnixLineEnding DataAccessorsPath="$(SolutionRoot)\Kreta.DataAccessGenerated\DataAccessors"
EntitiesPath="$(SolutionRoot)\Kreta.DataAccessGenerated\Entities"
InterfacesPath="$(SolutionRoot)\Kreta.DataAccessInterfaceGenerated" />
</Target>
<Target Name="GenerateEnums" Condition="'$(GenerateEnums)' == 'true'">
<DictionaryItem InputFile="$(SolutionRoot)\Kreta.DataAccess.Migrations\DBScripts\DictionaryItems.txt"
InputDictionaryXMLFile="$(SolutionRoot)\GeneratedDictionaryItems.kres"
ScriptOutputDir="$(SolutionRoot)\Kreta.DataAccess.Migrations\DBScripts\Database\dev\"
CSharpOutputDir="$(SolutionRoot)\Kreta.Enums\" />
</Target>
<Target Name="GenerateDb" Condition="'$(GenerateDb)' == 'true'">
<MakeDir Directories="$(SolutionRoot)\Kreta.DataAccess.Migrations\DBScripts\Database" />
<Exec Command="&quot;$(AcdTool)&quot; -f &quot;$(ModelImf)&quot; -t &quot;$(TemplatesDir)\Database\SQL_CreateTableScript.tdl&quot; -var OutputDir='$(SolutionRoot)\Kreta.DataAccess.Migrations\DBScripts\Database' ProjectName='$(ProjectName)' SQL_DBType='MSSQL'"
WorkingDirectory="$(TemplatesDir)" />
<Exec Command="&quot;$(AcdTool)&quot; -f &quot;$(ModelImf)&quot; -t &quot;$(TemplatesDir)\Database\SQL_CreateTableIndicesScript.tdl&quot; -var OutputDir='$(SolutionRoot)\Kreta.DataAccess.Migrations\DBScripts\Database' ProjectName='$(ProjectName)' SQL_DBType='MSSQL'"
WorkingDirectory="$(TemplatesDir)" />
<Exec Command="&quot;$(AcdTool)&quot; -f &quot;$(ModelImf)&quot; -t &quot;$(TemplatesDir)\Database\SQL_AlterTableScript.tdl&quot; -var OutputDir='$(SolutionRoot)\Kreta.DataAccess.Migrations\DBScripts\Database' ProjectName='$(ProjectName)' SQL_DBType='MSSQL'"
WorkingDirectory="$(TemplatesDir)" />
<Exec Command="&quot;$(AcdTool)&quot; -f &quot;$(ModelImf)&quot; -t &quot;$(TemplatesDir)\CommentGenerate\GenerateCommentSQL.tdl&quot; -var OutputDir='$(SolutionRoot)\Kreta.DataAccess.Migrations\DBScripts\Database' ProjectName='$(ProjectName)' SQL_DBType='MSSQL'"
WorkingDirectory="$(TemplatesDir)" />
<ItemGroup>
<MssqlFiles Include="$(SolutionRoot)\Kreta.DataAccess.Migrations\DBScripts\Database\*.sql" />
</ItemGroup>
<Copy SourceFiles="@(MssqlFiles)" DestinationFolder="$(SolutionRoot)\Kreta.DataAccess.Migrations\DBScripts\Database" />
</Target>
<Target Name="CreateDB" Condition="'$(CreateDB)' == 'true'">
<MssqlDBCreate ServerName="kretalocal" DbName="kreta" UserName="kreta" Password="Porcica1." MssqlScriptDir="$(SolutionRoot)\Kreta.DataAccess.Migrations\DBScripts\Database" />
</Target>
</Project>