-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDeterminismAndSourceLink.props
More file actions
118 lines (103 loc) · 6.77 KB
/
DeterminismAndSourceLink.props
File metadata and controls
118 lines (103 loc) · 6.77 KB
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
<Project>
<!--
Determinism & git metadata wiring
- Always set deterministic defaults (portable PDB + snupkg)
- Compute git data at target execution time so temp folders (no .git) don't explode
-->
<PropertyGroup>
<Deterministic>true</Deterministic>
<ContinuousIntegrationBuild Condition="'$(CI)' == 'true'">true</ContinuousIntegrationBuild>
<DebugType>portable</DebugType>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<EmbedAllSources Condition="'$(EmbedAllSources)' == ''">true</EmbedAllSources>
<PublishRepositoryUrl Condition="'$(PublishRepositoryUrl)' == ''">true</PublishRepositoryUrl>
<IncludeSourceRevisionInInformationalVersion Condition="'$(IncludeSourceRevisionInInformationalVersion)' == ''">true</IncludeSourceRevisionInInformationalVersion>
</PropertyGroup>
<!-- Stderr redirect suffix: 2>nul on Windows, 2>/dev/null on Unix -->
<PropertyGroup>
<_StderrRedirect Condition="'$(OS)' == 'Windows_NT'"> 2>nul</_StderrRedirect>
<_StderrRedirect Condition="'$(OS)' != 'Windows_NT'"> 2>/dev/null</_StderrRedirect>
<!-- Resolve git to a trusted absolute path so repo-local binary planting cannot hijack Exec. -->
<_GitExe Condition="'$(_GitExe)' == '' and '$(GitExe)' != '' and $([System.IO.Path]::IsPathRooted('$(GitExe)'))">$(GitExe)</_GitExe>
<_GitExe Condition="'$(_GitExe)' == '' and '$(OS)' != 'Windows_NT' and Exists('/usr/bin/git')">/usr/bin/git</_GitExe>
<_GitExe Condition="'$(_GitExe)' == '' and '$(OS)' != 'Windows_NT' and Exists('/usr/local/bin/git')">/usr/local/bin/git</_GitExe>
<_GitExe Condition="'$(_GitExe)' == '' and '$(OS)' == 'Windows_NT' and Exists('$(ProgramW6432)\Git\cmd\git.exe')">$(ProgramW6432)\Git\cmd\git.exe</_GitExe>
<_GitExe Condition="'$(_GitExe)' == '' and '$(OS)' == 'Windows_NT' and Exists('$(ProgramFiles)\Git\cmd\git.exe')">$(ProgramFiles)\Git\cmd\git.exe</_GitExe>
<_GitExe Condition="'$(_GitExe)' == '' and '$(OS)' == 'Windows_NT' and Exists('$(ProgramFiles)\Git\bin\git.exe')">$(ProgramFiles)\Git\bin\git.exe</_GitExe>
<_GitExe Condition="'$(_GitExe)' == '' and '$(OS)' == 'Windows_NT' and Exists('$(LocalAppData)\Programs\Git\cmd\git.exe')">$(LocalAppData)\Programs\Git\cmd\git.exe</_GitExe>
</PropertyGroup>
<Target Name="_ANcpLuaComputeGitMetadata" BeforeTargets="InitializeSourceControlInformation;GenerateNuspec">
<Exec Command=""$(_GitExe)" -C "$(MSBuildProjectDirectory)" rev-parse --show-toplevel$(_StderrRedirect)"
Condition="'$(_GitExe)' != ''"
ConsoleToMSBuild="true"
IgnoreExitCode="true"
StandardOutputImportance="Low"
StandardErrorImportance="Low">
<Output TaskParameter="ConsoleOutput" PropertyName="_GitRootFromGit"/>
</Exec>
<PropertyGroup>
<_GitRoot Condition="'$(_GitRoot)' == '' and '$(_GitRootFromGit)' != ''">$([System.String]::Copy('$(_GitRootFromGit)').Trim())</_GitRoot>
<_ANcpLuaInGitRepo Condition="'$(_GitRoot)' != ''">true</_ANcpLuaInGitRepo>
<_ANcpLuaInGitRepo Condition="'$(_GitRoot)' == ''">false</_ANcpLuaInGitRepo>
</PropertyGroup>
<PropertyGroup Condition="'$(_ANcpLuaInGitRepo)' == 'false'">
<EnableSourceControlManagerQueries>false</EnableSourceControlManagerQueries>
<EnableSourceLink>false</EnableSourceLink>
<!-- NETSDK1018: Duplicate PackageReference - occurs in non-git temp folders during pack -->
<NoWarn>$(NoWarn);NETSDK1018</NoWarn>
</PropertyGroup>
<Exec Command=""$(_GitExe)" -C "$(_GitRoot)" config --get remote.origin.url$(_StderrRedirect)"
ConsoleToMSBuild="true"
IgnoreExitCode="true"
StandardOutputImportance="Low"
StandardErrorImportance="Low"
Condition="'$(_ANcpLuaInGitRepo)' == 'true'">
<Output TaskParameter="ConsoleOutput" PropertyName="_GitOriginUrlRaw"/>
</Exec>
<Exec Command=""$(_GitExe)" -C "$(_GitRoot)" symbolic-ref --quiet HEAD$(_StderrRedirect)"
ConsoleToMSBuild="true"
IgnoreExitCode="true"
StandardOutputImportance="Low"
StandardErrorImportance="Low"
Condition="'$(_ANcpLuaInGitRepo)' == 'true'">
<Output TaskParameter="ConsoleOutput" PropertyName="_GitBranchRefRaw"/>
</Exec>
<Exec Command=""$(_GitExe)" -C "$(_GitRoot)" rev-parse --abbrev-ref HEAD$(_StderrRedirect)"
ConsoleToMSBuild="true"
IgnoreExitCode="true"
StandardOutputImportance="Low"
StandardErrorImportance="Low"
Condition="'$(_ANcpLuaInGitRepo)' == 'true' and '$(_GitBranchRefRaw)' == ''">
<Output TaskParameter="ConsoleOutput" PropertyName="_GitBranchNameRaw"/>
</Exec>
<Exec Command=""$(_GitExe)" -C "$(_GitRoot)" rev-parse HEAD$(_StderrRedirect)"
ConsoleToMSBuild="true"
IgnoreExitCode="true"
StandardOutputImportance="Low"
StandardErrorImportance="Low"
Condition="'$(_ANcpLuaInGitRepo)' == 'true'">
<Output TaskParameter="ConsoleOutput" PropertyName="_GitCommitRaw"/>
</Exec>
<PropertyGroup Condition="'$(_ANcpLuaInGitRepo)' == 'true'">
<EnableSourceControlManagerQueries>true</EnableSourceControlManagerQueries>
<EnableSourceLink Condition="'$(EnableSourceLink)' == ''">true</EnableSourceLink>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<RepositoryType Condition="'$(RepositoryType)' == ''">git</RepositoryType>
<RepositoryUrl Condition="'$(RepositoryUrl)' == '' and '$(_GitOriginUrlRaw)' != ''">$([System.String]::Copy('$(_GitOriginUrlRaw)').Trim())</RepositoryUrl>
<_GitBranchRef>$([System.String]::Copy('$(_GitBranchRefRaw)').Trim())</_GitBranchRef>
<_GitBranchName Condition="'$(_GitBranchNameRaw)' != ''">$([System.String]::Copy('$(_GitBranchNameRaw)').Trim())</_GitBranchName>
<RepositoryBranch Condition="'$(RepositoryBranch)' == '' and '$(_GitBranchRef)' != ''">$(_GitBranchRef)</RepositoryBranch>
<RepositoryBranch Condition="'$(RepositoryBranch)' == '' and '$(_GitBranchRef)' == '' and '$(_GitBranchName)' != ''">refs/heads/$(_GitBranchName)</RepositoryBranch>
<RepositoryCommit Condition="'$(RepositoryCommit)' == '' and '$(_GitCommitRaw)' != ''">$([System.String]::Copy('$(_GitCommitRaw)').Trim())</RepositoryCommit>
</PropertyGroup>
</Target>
<Target Name="_ANcpLuaCopyRepositoryMetadata"
AfterTargets="InitializeSourceControlInformation"
Condition="'$(_ANcpLuaInGitRepo)' == 'true'">
<PropertyGroup>
<RepositoryUrl Condition="'$(RepositoryUrl)' == '' and '$(ScmRepositoryUrl)' != ''">$(ScmRepositoryUrl)</RepositoryUrl>
<RepositoryType Condition="'$(RepositoryType)' == '' and '$(ScmRepositoryUrl)' != ''">git</RepositoryType>
</PropertyGroup>
</Target>
</Project>