|
1 | 1 | <?xml version="1.0" encoding="utf-8" ?> |
2 | 2 | <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
3 | | - <PropertyGroup> |
4 | | - <CodeGenerationRoslynToolsPath Condition=" '$(CodeGenerationRoslynToolsPath)' == '' ">$(CodeGenerationRoslynToolsRootPath)$(CodeGenerationRoslynToolsSubPath)</CodeGenerationRoslynToolsPath> |
5 | | - |
6 | | - <PrepareResourcesDependsOn> |
7 | | - GenerateCodeFromAttributes; |
8 | | - $(PrepareResourcesDependsOn) |
9 | | - </PrepareResourcesDependsOn> |
10 | | - |
11 | | - <CoreCompileDependsOn> |
12 | | - GenerateCodeFromAttributes; |
13 | | - $(CoreCompileDependsOn) |
14 | | - </CoreCompileDependsOn> |
15 | | - </PropertyGroup> |
16 | | - |
17 | | - <UsingTask TaskName="GenerateCodeFromAttributes" AssemblyFile="$(CodeGenerationRoslynToolsPath)CodeGeneration.Roslyn.Tasks.dll" /> |
18 | | - |
19 | | - <Target Name="GenerateCodeFromAttributes" DependsOnTargets="ResolveReferences" BeforeTargets="CoreCompile"> |
20 | | - <GenerateCodeFromAttributes |
21 | | - ToolLocationOverride="$(GenerateCodeFromAttributesToolPathOverride)" |
22 | | - ProjectDirectory="$(MSBuildProjectDirectory)" |
23 | | - Compile="@(Compile)" |
24 | | - ReferencePath="@(ReferencePath)" |
25 | | - GeneratorAssemblySearchPaths="@(GeneratorAssemblySearchPaths)" |
26 | | - IntermediateOutputDirectory="$(IntermediateOutputPath)"> |
27 | | - <Output TaskParameter="GeneratedCompile" ItemName="GeneratedCodeFromAttribute_Compile" /> |
28 | | - <Output TaskParameter="GeneratedCompile" ItemName="FileWrites" /> |
29 | | - <Output TaskParameter="AdditionalWrittenFiles" ItemName="FileWrites" /> |
30 | | - </GenerateCodeFromAttributes> |
| 3 | + |
| 4 | + <Target Name="GenerateCodeFromAttributes" DependsOnTargets="ResolveReferences" BeforeTargets="CoreCompile;PrepareResources"> |
| 5 | + <PropertyGroup> |
| 6 | + <GenerateCodeFromAttributesToolPathOverride Condition="'$(GenerateCodeFromAttributesToolPathOverride)' == ''">codegen</GenerateCodeFromAttributesToolPathOverride> |
| 7 | + <_CodeGenToolOutputBasePath>$(IntermediateOutputPath)$(MSBuildProjectFile).dotnet-codegen</_CodeGenToolOutputBasePath> |
| 8 | + <_CodeGenToolResponseFileFullPath>$(_CodeGenToolOutputBasePath).rsp</_CodeGenToolResponseFileFullPath> |
| 9 | + <_CodeGenToolGeneratedFileListFullPath>$(_CodeGenToolOutputBasePath).GeneratedFileList.txt</_CodeGenToolGeneratedFileListFullPath> |
| 10 | + <_CodeGenToolWarningText>dotnet-codegen: Failed to generate the list of generated files. The tool didn't run succesfully. Please check https://github.com/AArnott/CodeGeneration.Roslyn for usage instructions.</_CodeGenToolWarningText> |
| 11 | + <_CodeGenToolResponseFileLines> |
| 12 | +@(ReferencePath->'-r%0d%0a%(Identity)', '%0d%0a') |
| 13 | +@(GeneratorAssemblySearchPaths->'--generatorSearchPath%0d%0a%(Identity)', '%0d%0a') |
| 14 | +--out |
| 15 | +$(IntermediateOutputPath) |
| 16 | +--projectDir |
| 17 | +$(MSBuildProjectDirectory) |
| 18 | +--generatedFilesList |
| 19 | +$(_CodeGenToolGeneratedFileListFullPath) |
| 20 | +-- |
| 21 | +@(Compile, '%0d%0a') |
| 22 | + </_CodeGenToolResponseFileLines> |
| 23 | + <_GenerateCodeToolVersion>(n/a)</_GenerateCodeToolVersion> |
| 24 | + </PropertyGroup> |
| 25 | + <!--Write response file with arguments for dotnet codegen--> |
| 26 | + <WriteLinesToFile File="$(_CodeGenToolResponseFileFullPath)" Lines="$(_CodeGenToolResponseFileLines)" Overwrite="true" /> |
| 27 | + <Delete Condition="Exists('$(_CodeGenToolGeneratedFileListFullPath)') == 'true'" |
| 28 | + Files="$(_CodeGenToolGeneratedFileListFullPath)" ContinueOnError="true" /> |
| 29 | + |
| 30 | + <!--Check and print tool version used--> |
| 31 | + <Exec Command="dotnet $(GenerateCodeFromAttributesToolPathOverride) --version" ConsoleToMsBuild="true" |
| 32 | + StandardOutputImportance="normal" ContinueOnError="true"> |
| 33 | + <Output TaskParameter="ConsoleOutput" PropertyName="_GenerateCodeToolVersion"/> |
| 34 | + </Exec> |
| 35 | + <Message Text="Running CodeGeneration.Roslyn.Tool v$(_GenerateCodeToolVersion)" Importance="normal" /> |
| 36 | + <!--Run the tool and process results--> |
| 37 | + <Exec Command="dotnet $(GenerateCodeFromAttributesToolPathOverride) "%40$(_CodeGenToolResponseFileFullPath)"" |
| 38 | + StandardOutputImportance="normal" ContinueOnError="true" /> |
| 39 | + <Warning Condition="Exists('$(_CodeGenToolGeneratedFileListFullPath)') != 'true'" |
| 40 | + Text="$(_CodeGenToolWarningText)" Code="CGR1000" /> |
| 41 | + <ReadLinesFromFile File="$(_CodeGenToolGeneratedFileListFullPath)"> |
| 42 | + <Output TaskParameter="Lines" ItemName="CodeGenerationRoslynOutput_Compile"/> |
| 43 | + <Output TaskParameter="Lines" ItemName="FileWrites"/> |
| 44 | + </ReadLinesFromFile> |
31 | 45 | <ItemGroup> |
32 | | - <Compile Include="@(GeneratedCodeFromAttribute_Compile)" /> |
| 46 | + <Compile Include="@(CodeGenerationRoslynOutput_Compile)" /> |
| 47 | + <FileWrites Include="$(_CodeGenToolResponseFileFullPath);$(_CodeGenToolGeneratedFileListFullPath)" /> |
33 | 48 | </ItemGroup> |
34 | 49 | </Target> |
| 50 | + |
35 | 51 | </Project> |
0 commit comments