-
Notifications
You must be signed in to change notification settings - Fork 0
/
Directory.Build.targets
74 lines (74 loc) · 4.86 KB
/
Directory.Build.targets
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
71
72
73
74
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" InitialTargets="LogBuild;EnableSccache">
<PropertyGroup>
<ThisProjectBuildLogFileName Condition="'$(MSBuildProjectName)' == ''">$(MSBuildThisFileDirectory)BuildCommandLines.log</ThisProjectBuildLogFileName>
<ThisProjectBuildLogFileName Condition="'$(MSBuildProjectName)' != ''">$(MSBuildThisFileDirectory)BuildCommandLines-$(MSBuildProjectName).log</ThisProjectBuildLogFileName>
<PreferredToolArchitecture Condition="'$(PreferredToolArchitecture)' == '' and ('$(PROCESSOR_ARCHITECTURE)' == 'AMD64')">x64</PreferredToolArchitecture>
</PropertyGroup>
<Target Name="LogBuild" BeforeTargets="SetUserMacroEnvironmentVariables;SetBuildDefaultEnvironmentVariables">
<Message Text="Setting LOG_BUILD_COMMANDLINES='$(ThisProjectBuildLogFileName)'" />
<SetEnv Name="LOG_BUILD_COMMANDLINES" Value="$(ThisProjectBuildLogFileName)" Prefix="false" />
<SetEnv Name="PreferredToolArchitecture" Value="$(PreferredToolArchitecture)" Prefix="false" />
</Target>
<Target Name="FindSccacheExecutableInPath">
<PropertyGroup>
<_SccacheExecutableToFind>sccache.exe</_SccacheExecutableToFind>
</PropertyGroup>
<ItemGroup>
<_SccacheExecPaths Include="$([System.Environment]::GetEnvironmentVariable('PATH').Split(';'))" />
<_SccacheFilteredExecPaths Include="@(_SccacheExecPaths)" Condition="Exists('%(FullPath)\$(_SccacheExecutableToFind)')" />
<_SccacheFilteredExecPaths Include="@(_SccacheFilteredExecPaths->Reverse())" Condition="Exists('%(FullPath)\$(_SccacheExecutableToFind)')" />
</ItemGroup>
<PropertyGroup>
<SccacheExecutableFullPath Condition="'%(_SccacheFilteredExecPaths.Identity)' != ''">%(_SccacheFilteredExecPaths.Identity)\$(_SccacheExecutableToFind)</SccacheExecutableFullPath>
<SccacheExecutableFullPath Condition="'%(_SccacheFilteredExecPaths.Identity)' == ''"></SccacheExecutableFullPath>
</PropertyGroup>
</Target>
<Target Name="DetectSccacheVersion" DependsOnTargets="FindSccacheExecutableInPath">
<Exec Command=""$(SccacheExecutableFullPath)" --version" EchoOff="true" Condition="'$(SccacheExecutableFullPath)' != ''" ConsoleToMsBuild="true">
<Output TaskParameter="ConsoleOutput" PropertyName="SccacheVersion" />
</Exec>
<Message Importance="high" Text="sccache version = '$(SccacheVersion)'" />
</Target>
<Target Name="EnableSccache" DependsOnTargets="DetectSccacheVersion">
<PropertyGroup>
<CompileCacheDir>$(MsbuildThisFileDirectory)sccache\</CompileCacheDir>
<CompileCacheActualCacheDir>$(CompileCacheDir)cache\</CompileCacheActualCacheDir>
<CompileCacheWrapperBinDir>$(CompileCacheDir)bin\</CompileCacheWrapperBinDir>
<!--CLToolPath>$(CompileCacheDir)bin</CLToolPath-->
</PropertyGroup>
<SetEnv Name="SCCACHE_DETECTED" Value="$(SccacheExecutableFullPath)" Prefix="false" />
<SetEnv Name="SCCACHE_DIR" Value="$(CompileCacheActualCacheDir)" Prefix="false" />
<SetEnv Name="SCCACHE_ERROR_LOG" Value="$(CompileCacheDir)sccache.log" Prefix="false" />
<SetEnv Name="SCCACHE_LOG" Value="debug" Prefix="false" />
<SetEnv Name="SCCACHE_CONF" Value="$(CompileCacheDir)sccache.conf" Prefix="false" />
<!--SetEnv Name="SCCACHE_START_SERVER" Value="1" Prefix="false" /-->
<!--SetEnv Name="SCCACHE_RECACHE" Value="1" Prefix="false" /-->
<!--SetEnv Name="SCCACHE_NO_DAEMON" Value="1" Prefix="false" /-->
<ItemGroup>
<WrapperBinaries Include="$(CompileCacheWrapperBinDir)cl.exe" />
<WrapperBinaries Include="$(CompileCacheWrapperBinDir)clang-cl.exe" />
<SourceBinaries Include="$(SccacheExecutableFullPath)" />
<SourceBinaries Include="$(SccacheExecutableFullPath)" />
</ItemGroup>
<!--MakeDir Directories="$(CompileCacheDir);$(CompileCacheActualCacheDir);$(CompileCacheWrapperBinDir)" />
<Copy SourceFiles="@(SourceBinaries)" DestinationFiles="@(WrapperBinaries)" UseHardlinksIfPossible="true" SkipUnchangedFiles="true" />
<SetEnv Name="PATH" Value="$(CompileCacheWrapperBinDir);@(ExecPaths)" Prefix="false" /-->
<Message Importance="high" Text="PATH = '$(PATH)'" />
<Message Importance="high" Text="%24(CompileCacheDir) = '$(CompileCacheActualCacheDir)'" />
<Message Importance="high" Text="%24(CompileCacheActualCacheDir) = '$(CompileCacheActualCacheDir)'" />
<Message Importance="high" Text="%24(CompileCacheWrapperBinDir) = '$(CompileCacheWrapperBinDir)'" />
<Message Importance="high" Text="%24(SccacheExecutableFullPath) = '$(SccacheExecutableFullPath)'" />
</Target>
<ItemGroup>
<ProjectReference Include="$(MSBuildThisFileDirectory)ClVersionRetrieve.proj">
<Name>ClVersionRetrieve</Name>
<Project>{0b457127-9b6f-490a-b9e5-7815e9c8fc32}</Project>
<Targets>ClVersionRetrieve</Targets>
</ProjectReference>
</ItemGroup>
<ImportGroup>
<Import Project="$(MSBuildThisFileDirectory)GitRevision.targets" />
<Import Project="$(MSBuildThisFileDirectory)Duplicate.targets" />
</ImportGroup>
</Project>