|
114 | 114 | <SkipImportILTargets Condition="'$(CLRTestBuildAllTargets)' != '' And '$(CLRTestNeedTarget)' != '$(CLRTestBuildAllTargets)'">true</SkipImportILTargets> |
115 | 115 | </PropertyGroup> |
116 | 116 |
|
117 | | - <Target Name="CopyMergedWrapperReferences" |
118 | | - Condition="'$(IsMergedTestRunnerAssembly)' == 'true'" |
119 | | - AfterTargets="Build" |
120 | | - BeforeTargets="CopyNativeProjectBinaries"> |
121 | | - <ItemGroup> |
122 | | - <MergedWrapperReferenceFolders Include="@(ProjectReference->'$([System.IO.Path]::GetFullPath('%(ProjectReference.Identity)/..', '$(OutDir)/..'))/%(ProjectReference.FileName)')" /> |
123 | | - <!-- For merged project wrappers, include native libraries in all project references --> |
124 | | - <MergedWrapperReferenceFiles Include="%(MergedWrapperReferenceFolders.Identity)/*$(LibSuffix)" /> |
125 | | - </ItemGroup> |
126 | | - <Copy SourceFiles="@(MergedWrapperReferenceFiles)" |
127 | | - DestinationFiles="@(MergedWrapperReferenceFiles->'$(OutDir)/%(FileName)%(Extension)')" |
128 | | - SkipUnchangedFiles="true" |
129 | | - /> |
130 | | - </Target> |
131 | | - |
132 | 117 | <Target Name="CopyNativeProjectBinaries" Condition="'$(_CopyNativeProjectBinaries)' == 'true'"> |
133 | 118 | <ItemGroup Condition="'$(UseVisualStudioNativeBinariesLayout)' == 'true'"> |
134 | 119 | <NativeProjectBinaries Include="$(NativeProjectOutputFolder)\*.*" /> |
|
225 | 210 |
|
226 | 211 | <MSBuild Projects="$(MSBuildProjectFile)" Targets="CopyNativeProjectBinaries" Properties="NativeProjectOutputFolder=%(NativeProjectOutputFoldersToCopy.Identity)" Condition="'@(NativeProjectReference)' != ''" /> |
227 | 212 |
|
| 213 | + <MSBuild Projects="@(ProjectReference)" |
| 214 | + Targets="CopyAllNativeProjectReferenceBinaries" |
| 215 | + Condition="'$(IsMergedTestRunnerAssembly)' == 'true'" |
| 216 | + BuildInParallel="true" /> |
228 | 217 | </Target> |
229 | 218 |
|
230 | | - <Target Name="CopyAllNativeProjectReferenceBinaries" DependsOnTargets="ResolveCMakeNativeProjectReference;ConsolidateNativeProjectReference" /> |
| 219 | + <Target Name="CopyAllNativeProjectReferenceBinaries" |
| 220 | + DependsOnTargets="ResolveCMakeNativeProjectReference;ConsolidateNativeProjectReference"> |
| 221 | + |
| 222 | + <ItemGroup Condition="'$(IsMergedTestRunnerAssembly)' == 'true'"> |
| 223 | + <MergedWrapperReferenceFolders Include="@(ProjectReference->'$([System.IO.Path]::GetFullPath('%(ProjectReference.Identity)/..', '$(OutDir)/..'))/%(ProjectReference.FileName)')" /> |
| 224 | + <!-- For merged project wrappers, include native libraries in all project references --> |
| 225 | + <MergedWrapperReferenceFiles Include="%(MergedWrapperReferenceFolders.Identity)/*$(LibSuffix)" /> |
| 226 | + </ItemGroup> |
| 227 | + <Copy SourceFiles="@(MergedWrapperReferenceFiles)" |
| 228 | + DestinationFiles="@(MergedWrapperReferenceFiles->'$(OutDir)/%(FileName)%(Extension)')" |
| 229 | + SkipUnchangedFiles="true" |
| 230 | + Condition="'@(MergedWrapperReferenceFiles)' != ''" |
| 231 | + /> |
| 232 | + </Target> |
231 | 233 |
|
232 | 234 | <!-- Build shell or command scripts whenever we copy native binaries --> |
233 | 235 | <Import Project="$(MSBuildThisFileDirectory)Common\CLRTest.Execute.targets" /> |
|
259 | 261 | </ItemGroup> |
260 | 262 | </Target> |
261 | 263 |
|
262 | | - <Target Name="AfterBuild"> |
| 264 | + <Target Name="GenerateMarkerFiles" BeforeTargets="AssignTargetPaths"> |
| 265 | + <ItemGroup> |
| 266 | + <Content Include="$(AssemblyName).reflect.xml" Condition="Exists('$(AssemblyName).reflect.xml')" CopyToOutputDirectory="PreserveNewest" /> |
| 267 | + <MarkerFile Include="$(IntermediateOutputPath)\$(MSBuildProjectName).MergedTestAssembly" Condition="'$(IsMergedTestRunnerAssembly)' == 'true'" /> |
| 268 | + <MarkerFile Include="$(IntermediateOutputPath)\$(AssemblyName).NoMonoAot" Condition="'$(MonoAotIncompatible)' == 'true'" /> |
| 269 | + <Content Include="@(MarkerFile)" CopyToOutputDirectory="PreserveNewest" /> |
| 270 | + </ItemGroup> |
| 271 | + |
263 | 272 | <Copy SourceFiles="$(AssemblyName).reflect.xml" |
264 | 273 | DestinationFolder="$(OutputPath)" |
265 | 274 | Condition="Exists('$(AssemblyName).reflect.xml')"/> |
266 | 275 |
|
267 | 276 | <WriteLinesToFile |
268 | 277 | Condition="'$(IsMergedTestRunnerAssembly)' == 'true'" |
269 | | - File="$(OutputPath)\$(MSBuildProjectName).MergedTestAssembly" |
270 | | - Lines="MergedTestAssembly" /> |
| 278 | + File="$(IntermediateOutputPath)\$(MSBuildProjectName).MergedTestAssembly" |
| 279 | + Lines="MergedTestAssembly" |
| 280 | + Overwrite="true" |
| 281 | + WriteOnlyWhenDifferent="true" /> |
| 282 | + |
271 | 283 |
|
| 284 | + <WriteLinesToFile |
| 285 | + Condition="'$(MonoAotIncompatible)' == 'true'" |
| 286 | + File="$(IntermediateOutputPath)\$(AssemblyName).NoMonoAot" |
| 287 | + Lines="NoMonoAot" |
| 288 | + Overwrite="true" |
| 289 | + WriteOnlyWhenDifferent="true" /> |
| 290 | + |
| 291 | + <!-- We don't want the out-of-process test marker file to be included in referencing projects, so we don't include it as content. --> |
272 | 292 | <WriteLinesToFile |
273 | 293 | Condition="'$(RequiresProcessIsolation)' == 'true' and '$(BuildAsStandalone)' != 'true'" |
274 | 294 | File="$(OutputPath)\$(MSBuildProjectName).OutOfProcessTest" |
275 | | - Lines="OutOfProcessTest" /> |
| 295 | + Lines="OutOfProcessTest" |
| 296 | + Overwrite="true" |
| 297 | + WriteOnlyWhenDifferent="true" /> |
276 | 298 | </Target> |
277 | 299 |
|
278 | 300 | <PropertyGroup> |
|
0 commit comments