summaryrefslogtreecommitdiff
path: root/tests/publishdependency.targets
blob: f8dd96f6b3e6d4ba8ad9c9467d8bbad3e9dfbc06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <UsingTask TaskName="ResolveNuGetPackageAssets" AssemblyFile="$(ToolsDir)Microsoft.DotNet.Build.Tasks.dll"/>
  
  <ItemGroup>
    <TestTargetFramework Include="DNXCore,Version=v5.0">
      <Folder>dnxcore50</Folder>
    </TestTargetFramework>
  </ItemGroup>
  
  <ItemGroup>
    <AllProjectJsonLockFiles Include="$(SourceDir)**\*\project.lock.json"/>
  </ItemGroup>

  <Target Name="CopyDependecyToCoreRoot"
    Inputs="@(AllProjectJsonLockFiles)"
    Outputs="$(CORE_ROOT)\*.*">
    
    <ItemGroup>
      <ProjectJsonLockFileExclude Include="$(SourceDir).nuget\project.lock.json" />
      <ProjectJsonLockFileExclude Include="$(SourceDir)Test*\**\project.lock.json" />
      <ProjectJsonLockFileExclude Include="$(SourceDir)Common\Coreclr.TestWrapper\**\project.lock.json" />
      <ProjectJsonLockFileExclude Include="$(SourceDir)packages\**\*\project.lock.json" />
    </ItemGroup>

    <ItemGroup>
      <ProjectLockJsonFiles Include="@(AllProjectJsonLockFiles)"  Exclude="@(ProjectJsonLockFileExclude)"/>
    </ItemGroup>
    
    <!-- This will use the overridden ResolveNuGetPackageAssets, which outputs copy local items
         for the xunit wrapper projects -->
    <ResolveNuGetPackageAssets  Architecture="$(PlatformTarget)"
                                Configuration="$(Configuration)"
                                Language="$(Language)"
                                PackageRoot="$(PackagesDir)"
                                ProjectLockFile="%(ProjectLockJsonFiles.Identity)"
                                TargetFrameworkMonikers="@(TestTargetFramework)"
                                TargetPlatformMonikers="$(TargetPlatformMoniker)">

      <Output TaskParameter="ResolvedAnalyzers" ItemName="Analyzer" />
      <Output TaskParameter="ResolvedReferences" ItemName="Reference" />
      <Output TaskParameter="ResolvedCopyLocalItems" ItemName="RunTimeCopyLocal" />
    </ResolveNuGetPackageAssets>

    <ItemGroup>
      <RunTimeDependecyExclude Include="$(CORE_ROOT)\**\*.*"  />
      <RunTimeDependecyExcludeFiles Include="@(RunTimeDependecyExclude -> '%(FileName)%(Extension)')" />
      <RunTimeDependecyExcludeFiles Include="@(RunTimeDependecyExclude -> '%(FileName).ni%(Extension)')" />
      <RunTimeDependecyExcludeFiles Include="@(RunTimeDependecyExclude -> '%(FileName).pdb')" />
      <AllResolvedRuntimeDependencies Include="@(RunTimeCopyLocal -> '%(FileName)%(Extension)')">
        <File>%(Identity)</File>
      </AllResolvedRuntimeDependencies>
      <RunTimeDependecyCopyLocalFile Include="@(AllResolvedRuntimeDependencies)"  Exclude="@(RunTimeDependecyExcludeFiles)"/>
      <RunTimeDependecyCopyLocal Include="@(RunTimeDependecyCopyLocalFile -> '%(File)')"  />
    </ItemGroup>
    
    <Copy
      SourceFiles="@(RunTimeDependecyCopyLocal)"
      DestinationFolder="$(CORE_ROOT)"
      SkipUnchangedFiles="$(SkipCopyUnchangedFiles)"
      OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"
      Retries="$(CopyRetryCount)"
      RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
      UseHardlinksIfPossible="$(CreateHardLinksForCopyFilesToOutputDirectoryIfPossible)">
      <Output TaskParameter="DestinationFiles" ItemName="FileWrites" />
    </Copy>
  </Target>

</Project>