roblox-cs / dotnet /sdk /8.0.402 /Sdks /Microsoft.NET.Sdk.Razor /targets /Microsoft.NET.Sdk.Razor.CodeGeneration.targets
asynchronousai's picture
Upload 2613 files
090629c verified
raw
history blame
7.05 kB
<!--
***********************************************************************************************
Microsoft.NET.Sdk.Razor.CodeGeneration
WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
created a backup copy. Incorrect changes to this file will make it
impossible to load or build your projects from the command-line or the IDE.
Copyright (c) .NET Foundation. All rights reserved.
***********************************************************************************************
-->
<Project ToolsVersion="14.0">
<!--
Targets used for Razor SDK code generation. Support for the RazorCoreGenerate target.
This target is explicitly imported by Razor SDK.
-->
<UsingTask
TaskName="Microsoft.AspNetCore.Razor.Tasks.SdkRazorGenerate"
AssemblyFile="$(RazorSdkBuildTasksAssembly)"
Condition="'$(RazorSdkBuildTasksAssembly)' != ''" />
<UsingTask
TaskName="Microsoft.AspNetCore.Razor.Tasks.SdkRazorTagHelper"
AssemblyFile="$(RazorSdkBuildTasksAssembly)"
Condition="'$(RazorSdkBuildTasksAssembly)' != ''" />
<!--
Consider these properties to be private to this targets file. The main Razor SDK should define all of the properties
that we use to pass data back and forth.
-->
<PropertyGroup>
<!-- Used for tag helper discovery -->
<_RazorTagHelperInputCache>$(IntermediateOutputPath)$(TargetName).TagHelpers.input.cache</_RazorTagHelperInputCache>
<_RazorTagHelperOutputCache>$(IntermediateOutputPath)$(TargetName).TagHelpers.output.cache</_RazorTagHelperOutputCache>
<!-- Used to hash file inputs for RazorGenerate -->
<_RazorGenerateInputsHash></_RazorGenerateInputsHash>
<_RazorGenerateInputsHashFile>$(IntermediateOutputPath)$(MSBuildProjectName).RazorCoreGenerate.cache</_RazorGenerateInputsHashFile>
</PropertyGroup>
<!--
This target will only be called when we have some .cshtml files that are going to participate in code generation.
This is part of the chain of targets that are called once we've actually committed to generating code.
-->
<Target
Name="_HashRazorGenerateInputs"
Condition="'@(RazorGenerateWithTargetPath)' != ''">
<Hash ItemsToHash="@(RazorGenerateWithTargetPath)">
<Output TaskParameter="HashResult" PropertyName="_RazorGenerateInputsHash" />
</Hash>
<MakeDir
Directories="$(IntermediateOutputPath)"
Condition="!Exists('$(IntermediateOutputPath)')" />
<WriteLinesToFile
Lines="$(_RazorGenerateInputsHash)"
File="$(_RazorGenerateInputsHashFile)"
Overwrite="True"
WriteOnlyWhenDifferent="True" />
<ItemGroup>
<FileWrites Include="$(_RazorGenerateInputsHashFile)" />
</ItemGroup>
</Target>
<!-- Force a Compile to happen if we are not doing a components build. This keeps parity with 2.x CodeGeneration targets -->
<Target
Name="_RazorEnsureCompiled"
Condition="'$(_RazorComponentDeclarationAssemblyFullPath)' == ''"
DependsOnTargets="Compile" />
<Target
Name="ResolveTagHelperRazorGenerateInputs"
Inputs="$(MSBuildAllProjects);@(RazorReferencePath)"
DependsOnTargets="_RazorEnsureCompiled"
Outputs="$(_RazorTagHelperInputCache)"
Condition="'@(RazorGenerateWithTargetPath)' != ''">
<!--
We're manipulating our output directly here because we want to separate the actual up-to-date check
of RazorCoreGenerate from the output of this target. Many times the set of tag helpers doesn't change
so we don't need to regenerate the code.
-->
<Touch
Files="$(_RazorTagHelperInputCache)"
AlwaysCreate="true" />
<ItemGroup>
<FileWrites Include="$(_RazorTagHelperInputCache)" />
</ItemGroup>
<SdkRazorTagHelper
Debug="$(_RazorDebugTagHelperTask)"
DebugTool="$(_RazorDebugTagHelperTool)"
ToolAssembly="$(_RazorSdkToolAssembly)"
ToolExe="$(_RazorSdkDotNetHostFileName)"
ToolPath="$(_RazorSdkDotNetHostDirectory)"
UseServer="$(UseRazorBuildServer)"
ForceServer="$(_RazorForceBuildServer)"
PipeName="$(_RazorBuildServerPipeName)"
Version="$(RazorLangVersion)"
Configuration="@(ResolvedRazorConfiguration)"
Extensions="@(ResolvedRazorExtension)"
Assemblies="@(RazorReferencePath)"
ProjectRoot="$(MSBuildProjectDirectory)"
TagHelperManifest="$(_RazorTagHelperOutputCache)">
<Output
TaskParameter="TagHelperManifest"
ItemName="FileWrites"/>
</SdkRazorTagHelper>
</Target>
<Target Name="_ResolveRazorGenerateOutputs" Condition="'@(RazorGenerateWithTargetPath)' != ''">
<Error
Text="RazorGenerateWithTargetPath item '%(RazorGenerateWithTargetPath.Identity)' does not specify required metadata 'GeneratedOutput'."
Condition="'%(RazorGenerateWithTargetPath.GeneratedOutput)' == ''" />
<ItemGroup>
<_RazorGenerateOutput Include="%(RazorGenerateWithTargetPath.GeneratedOutput)" />
</ItemGroup>
</Target>
<PropertyGroup>
<RazorCoreGenerateDependsOn>
_HashRazorGenerateInputs;
_ResolveRazorGenerateOutputs;
</RazorCoreGenerateDependsOn>
</PropertyGroup>
<Target
Name="RazorCoreGenerate"
DependsOnTargets="$(RazorCoreGenerateDependsOn)"
Inputs="$(MSBuildAllProjects);$(_RazorGenerateInputsHashFile);$(_RazorTagHelperOutputCache);@(RazorGenerateWithTargetPath)"
Outputs="@(_RazorGenerateOutput)"
Condition="'@(RazorGenerateWithTargetPath)'!= ''">
<RemoveDir
Directories="$(RazorGenerateIntermediateOutputPath)"
Condition = "Exists('$(RazorGenerateIntermediateOutputPath)')"/>
<MakeDir
Directories="%(_RazorGenerateOutput.RelativeDir)"
Condition="!Exists('%(_RazorGenerateOutput.RelativeDir)')" />
<SdkRazorGenerate
Debug="$(_RazorDebugGenerateCodeTask)"
DebugTool="$(_RazorDebugGenerateCodeTool)"
ToolAssembly="$(_RazorSdkToolAssembly)"
ToolExe="$(_RazorSdkDotNetHostFileName)"
ToolPath="$(_RazorSdkDotNetHostDirectory)"
UseServer="$(UseRazorBuildServer)"
ForceServer="$(_RazorForceBuildServer)"
PipeName="$(_RazorBuildServerPipeName)"
Version="$(RazorLangVersion)"
RootNamespace="$(RootNamespace)"
CSharpLanguageVersion="$(LangVersion)"
Configuration="@(ResolvedRazorConfiguration)"
Extensions="@(ResolvedRazorExtension)"
Sources="@(RazorGenerateWithTargetPath)"
ProjectRoot="$(MSBuildProjectDirectory)"
TagHelperManifest="$(_RazorTagHelperOutputCache)"
SupportLocalizedComponentNames="$(SupportLocalizedComponentNames)" />
<ItemGroup>
<FileWrites Include="@(_RazorGenerateOutput)" />
</ItemGroup>
</Target>
<PropertyGroup>
<ResolveRazorCompileInputsDependsOn>$(ResolveRazorCompileInputsDependsOn)</ResolveRazorCompileInputsDependsOn>
</PropertyGroup>
</Project>