|
63 | 63 |
|
64 | 64 | <PropertyGroup>
|
65 | 65 | <BuildAvaloniaResourcesDependsOn>$(BuildAvaloniaResourcesDependsOn);AddAvaloniaResources;ResolveReferences;_GenerateAvaloniaResourcesDependencyCache</BuildAvaloniaResourcesDependsOn>
|
66 |
| - <CompileAvaloniaXamlDependsOn>$(CompileAvaloniaXamlDependsOn);FindReferenceAssembliesForReferences;PrepareToCompileAvaloniaXaml</CompileAvaloniaXamlDependsOn> |
| 66 | + <CompileAvaloniaXamlDependsOn>$(CompileAvaloniaXamlDependsOn);FindReferenceAssembliesForReferences</CompileAvaloniaXamlDependsOn> |
67 | 67 | </PropertyGroup>
|
68 | 68 |
|
69 | 69 | <Target Name="_GenerateAvaloniaResourcesDependencyCache" BeforeTargets="GenerateAvaloniaResources">
|
|
107 | 107 | </ItemGroup>
|
108 | 108 | </Target>
|
109 | 109 |
|
110 |
| - <Target Name="PrepareToCompileAvaloniaXaml"> |
| 110 | + <!-- Adjust CoreCompile with our XAML inputs and compiler --> |
| 111 | + <Target Name="AvaloniaPrepareCoreCompile" BeforeTargets="CoreCompile"> |
111 | 112 | <PropertyGroup>
|
112 |
| - <AvaloniaXamlIlVerifyIl Condition="'$(AvaloniaXamlIlVerifyIl)' == ''">false</AvaloniaXamlIlVerifyIl> |
113 |
| - <AvaloniaXamlIlDebuggerLaunch Condition="'$(AvaloniaXamlIlDebuggerLaunch)' == ''">false</AvaloniaXamlIlDebuggerLaunch> |
114 |
| - <AvaloniaXamlVerboseExceptions Condition="'$(AvaloniaXamlVerboseExceptions)' == ''">false</AvaloniaXamlVerboseExceptions> |
115 |
| - <_AvaloniaHasCompiledXaml>true</_AvaloniaHasCompiledXaml> |
| 113 | + <TargetsTriggeredByCompilation>$(TargetsTriggeredByCompilation);CompileAvaloniaXaml</TargetsTriggeredByCompilation> |
116 | 114 | </PropertyGroup>
|
117 |
| - |
118 | 115 | <ItemGroup>
|
119 |
| - <IntermediateAssembly Update="*" AvaloniaCompileOutput="%(RelativeDir)Avalonia\%(Filename)%(Extension)"/> |
120 |
| - <_DebugSymbolsIntermediatePath Update="*" AvaloniaCompileOutput="%(RelativeDir)Avalonia\%(Filename)%(Extension)"/> |
121 |
| - <IntermediateRefAssembly Update="*" AvaloniaCompileOutput="%(RelativeDir)Avalonia\%(Filename)%(Extension)"/> |
122 |
| - <CompileAvaloniaXamlInputs Include="@(IntermediateAssembly);@(_DebugSymbolsIntermediatePath);@(IntermediateRefAssembly)"/> |
123 |
| - <CompileAvaloniaXamlOutputs Include="@(CompileAvaloniaXamlInputs->'%(AvaloniaCompileOutput)')"/> |
124 |
| - <CompileAvaloniaXamlInputs Include="@(AvaloniaResource);@(AvaloniaXaml)"/> |
125 |
| - |
126 |
| - <FileWrites Include="@(CompileAvaloniaXamlOutputs)"/> |
| 116 | + <CustomAdditionalCompileInputs Include="@(AvaloniaResource)" /> |
| 117 | + <CustomAdditionalCompileInputs Include="@(AvaloniaXaml)" /> |
127 | 118 | </ItemGroup>
|
128 | 119 | </Target>
|
129 | 120 |
|
| 121 | + <Target Name="AvaloniaCollectUpToDateCheckInputDesignTime" BeforeTargets="CollectUpToDateCheckInputDesignTime"> |
| 122 | + <UpToDateCheckInput Include="@(AvaloniaResource)" /> |
| 123 | + <UpToDateCheckInput Include="@(AvaloniaXaml)" /> |
| 124 | + </Target> |
| 125 | + |
130 | 126 | <Target
|
131 | 127 | Name="CompileAvaloniaXaml"
|
132 |
| - AfterTargets="AfterCompile" |
133 | 128 | DependsOnTargets="$(CompileAvaloniaXamlDependsOn)"
|
134 |
| - Inputs="@(CompileAvaloniaXamlInputs)" |
135 |
| - Outputs="@(CompileAvaloniaXamlOutputs)" |
136 | 129 | Condition="'@(AvaloniaResource)@(AvaloniaXaml)' != '' AND $(DesignTimeBuild) != true AND $(EnableAvaloniaXamlCompilation) != false">
|
137 | 130 |
|
| 131 | + <PropertyGroup> |
| 132 | + <AvaloniaXamlIlVerifyIl Condition="'$(AvaloniaXamlIlVerifyIl)' == ''">false</AvaloniaXamlIlVerifyIl> |
| 133 | + <AvaloniaXamlIlDebuggerLaunch Condition="'$(AvaloniaXamlIlDebuggerLaunch)' == ''">false</AvaloniaXamlIlDebuggerLaunch> |
| 134 | + <AvaloniaXamlVerboseExceptions Condition="'$(AvaloniaXamlVerboseExceptions)' == ''">false</AvaloniaXamlVerboseExceptions> |
| 135 | + </PropertyGroup> |
| 136 | + |
| 137 | + <ItemGroup> |
| 138 | + <IntermediateAssembly Update="*" AvaloniaCompileOutput="%(FullPath)"/> |
| 139 | + <_DebugSymbolsIntermediatePath Update="*" AvaloniaCompileOutput="%(FullPath)"/> |
| 140 | + <IntermediateRefAssembly Update="*" AvaloniaCompileOutput="%(FullPath)"/> |
| 141 | + </ItemGroup> |
| 142 | + |
138 | 143 | <!--
|
139 | 144 | $(IntermediateOutputPath)/Avalonia/references is using from AvaloniaVS for retrieve library references.
|
140 | 145 | -->
|
|
160 | 165 | AnalyzerConfigFiles="@(EditorConfigFiles)"/>
|
161 | 166 | </Target>
|
162 | 167 |
|
163 |
| - <Target Name="InjectAvaloniaXamlOutput" DependsOnTargets="PrepareToCompileAvaloniaXaml" AfterTargets="CompileAvaloniaXaml" BeforeTargets="CopyFilesToOutputDirectory;BuiltProjectOutputGroup;ComputeResolvedFilesToPublishList" |
164 |
| - Condition="'@(AvaloniaResource)@(AvaloniaXaml)' != '' AND $(EnableAvaloniaXamlCompilation) != false"> |
165 |
| - <ItemGroup> |
166 |
| - <_AvaloniaXamlCompiledAssembly Include="@(IntermediateAssembly->Metadata('AvaloniaCompileOutput'))"/> |
167 |
| - <IntermediateAssembly Remove="@(IntermediateAssembly)"/> |
168 |
| - <IntermediateAssembly Include="@(_AvaloniaXamlCompiledAssembly)"/> |
169 |
| - |
170 |
| - <_AvaloniaXamlCompiledRefAssembly Include="@(IntermediateRefAssembly->Metadata('AvaloniaCompileOutput'))"/> |
171 |
| - <IntermediateRefAssembly Remove="@(IntermediateRefAssembly)"/> |
172 |
| - <IntermediateRefAssembly Include="@(_AvaloniaXamlCompiledRefAssembly)"/> |
173 |
| - |
174 |
| - <_AvaloniaXamlCompiledSymbols Include="@(_DebugSymbolsIntermediatePath->Metadata('AvaloniaCompileOutput'))"/> |
175 |
| - <_DebugSymbolsIntermediatePath Remove="@(_DebugSymbolsIntermediatePath)"/> |
176 |
| - <_DebugSymbolsIntermediatePath Include="@(_AvaloniaXamlCompiledSymbols)"/> |
177 |
| - |
178 |
| - <!-- ClickOnce takes a copy of @(IntermediateAssembly) during the evaluation phase --> |
179 |
| - <_DeploymentManifestEntryPoint Remove="@(_DeploymentManifestEntryPoint)" /> |
180 |
| - <_DeploymentManifestEntryPoint Include="@(_AvaloniaXamlCompiledAssembly)"> |
181 |
| - <TargetPath>$(TargetFileName)</TargetPath> |
182 |
| - </_DeploymentManifestEntryPoint> |
183 |
| - </ItemGroup> |
184 |
| - </Target> |
185 |
| - |
186 |
| - <!-- |
187 |
| - For some reason the IL Compiler hardcodes $(IntermediateOutputPath)$(TargetName)$(TargetExt) |
188 |
| - instead of using @(IntermediateAssembly), change that to our assembly. |
189 |
| - This is fixed in .NET 9.0 (https://github.com/dotnet/runtime/pull/99732) |
190 |
| - --> |
191 |
| - <Target Name="InjectIlcAvaloniaXamlOutput" |
192 |
| - DependsOnTargets="InjectAvaloniaXamlOutput" |
193 |
| - AfterTargets="ComputeIlcCompileInputs" |
194 |
| - BeforeTargets="PrepareForILLink" |
195 |
| - Condition="$([MSBuild]::VersionLessThan($(TargetFrameworkVersion), '9.0')) AND '@(AvaloniaResource)@(AvaloniaXaml)' != '' AND $(EnableAvaloniaXamlCompilation) != false"> |
196 |
| - <ItemGroup> |
197 |
| - <ManagedBinary Remove="$(IntermediateOutputPath)$(TargetName)$(TargetExt)" /> |
198 |
| - <ManagedBinary Include="@(_AvaloniaXamlCompiledAssembly)" /> |
199 |
| - |
200 |
| - <IlcCompileInput Remove="$(IntermediateOutputPath)$(TargetName)$(TargetExt)" /> |
201 |
| - <IlcCompileInput Include="@(_AvaloniaXamlCompiledAssembly)" /> |
202 |
| - </ItemGroup> |
203 |
| - </Target> |
204 |
| - |
205 |
| - <Target Name="Avalonia_CollectUpToDateCheckOutputDesignTime" Condition="'@(AvaloniaResource)@(AvaloniaXaml)' != '' AND $(EnableAvaloniaXamlCompilation) != false" |
206 |
| - BeforeTargets="CollectUpToDateCheckOutputDesignTime" DependsOnTargets="PrepareToCompileAvaloniaXaml"> |
207 |
| - <ItemGroup> |
208 |
| - <UpToDateCheckOutput Include="@(CompileAvaloniaXamlOutputs)"/> |
209 |
| - </ItemGroup> |
210 |
| - </Target> |
211 |
| - |
212 |
| - <ItemGroup> |
213 |
| - <UpToDateCheckInput Include="@(AvaloniaResource)" /> |
214 |
| - <UpToDateCheckInput Include="@(AvaloniaXaml)" /> |
215 |
| - </ItemGroup> |
216 |
| - |
217 | 168 | <PropertyGroup>
|
218 | 169 | <AvaloniaFilePreviewDependsOn Condition="'$(SkipBuild)'!='True'">Build</AvaloniaFilePreviewDependsOn>
|
219 | 170 | </PropertyGroup>
|
|
252 | 203 | Name="AvaloniaDeleteRefAssemblyBeforeOutputCopy"
|
253 | 204 | BeforeTargets="CopyFilesToOutputDirectory"
|
254 | 205 | Condition="
|
255 |
| - '$(_AvaloniaHasCompiledXaml)' == 'true' and |
| 206 | + '@(AvaloniaResource)@(AvaloniaXaml)' != '' and |
256 | 207 | '$(TargetRefPath)' != '' and
|
257 | 208 | '$(ProduceReferenceAssembly)' == 'true' and
|
258 | 209 | ('$(CopyBuildOutputToOutputDirectory)' == '' or '$(CopyBuildOutputToOutputDirectory)' == 'true') and
|
|
0 commit comments