mirror of
https://github.com/stenzek/duckstation.git
synced 2026-10-11 22:49:58 +00:00
MSBuild: Improve reproducibility
Pin mtime of rcc timestamps.
This commit is contained in:
@@ -41,7 +41,7 @@
|
||||
<ExceptionHandling>false</ExceptionHandling>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<AdditionalOptions Condition="$(Configuration.Contains(Clang))">/clang:-fno-rtti %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalOptions Condition="!$(Configuration.Contains(Clang)) And $(Configuration.Contains(ReleaseLTCG))">/d1trimfile:"$(SolutionDir)\" %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalOptions Condition="!$(Configuration.Contains(Clang)) And $(Configuration.Contains(ReleaseLTCG))">/d1trimfile:"$(SolutionDir)\" /Brepro %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalOptions Condition="$(Configuration.Contains(Clang)) And $(Configuration.Contains(ReleaseLTCG))">/clang:-ffile-prefix-map="$(SolutionDir)\"= %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
@@ -49,6 +49,9 @@
|
||||
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(DepsLibDir)</AdditionalLibraryDirectories>
|
||||
<AdditionalOptions Condition="$(Configuration.Contains(ReleaseLTCG))">/PDBALTPATH:%_PDB% /Brepro %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
<Lib>
|
||||
<AdditionalOptions Condition="!$(Configuration.Contains(Clang)) And $(Configuration.Contains(ReleaseLTCG))">/Brepro %(AdditionalOptions)</AdditionalOptions>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
|
||||
<ItemDefinitionGroup Condition="$(Configuration.Contains(Debug))">
|
||||
|
||||
@@ -100,7 +100,26 @@
|
||||
<Output TaskParameter="OutOfDateSources" ItemName="_QtResourceOutOfDate" />
|
||||
</GetOutOfDateItems>
|
||||
<Message Condition="'@(_QtResourceOutOfDate)'!=''" Text="rcc %(_QtResourceOutOfDate.Filename)" Importance="High" />
|
||||
<Exec Condition="'@(_QtResourceOutOfDate)'!=''" Command="%(_QtResourceOutOfDate.Command)" />
|
||||
<!-- rcc stamps every entry with the mtime of its source file, i.e. the checkout time. Pin it to the commit date instead. -->
|
||||
<Exec
|
||||
Condition="'@(_QtResourceOutOfDate)'!='' And '$(SOURCE_DATE_EPOCH)'==''"
|
||||
Command="git -C "$(SolutionDir)." log -1 --format=%25%25ct"
|
||||
ConsoleToMSBuild="true"
|
||||
IgnoreExitCode="true"
|
||||
IgnoreStandardErrorWarningFormat="true"
|
||||
StandardOutputImportance="Low"
|
||||
StandardErrorImportance="Low">
|
||||
<Output TaskParameter="ConsoleOutput" PropertyName="_QtResourceCommitDate" />
|
||||
<Output TaskParameter="ExitCode" PropertyName="_QtResourceCommitDateExitCode" />
|
||||
</Exec>
|
||||
<PropertyGroup>
|
||||
<_QtResourceSourceDate>$(SOURCE_DATE_EPOCH)</_QtResourceSourceDate>
|
||||
<_QtResourceSourceDate Condition="'$(_QtResourceSourceDate)'=='' And '$(_QtResourceCommitDateExitCode)'=='0'">$(_QtResourceCommitDate)</_QtResourceSourceDate>
|
||||
</PropertyGroup>
|
||||
<Exec
|
||||
Condition="'@(_QtResourceOutOfDate)'!=''"
|
||||
Command="%(_QtResourceOutOfDate.Command)"
|
||||
EnvironmentVariables="SOURCE_DATE_EPOCH=$(_QtResourceSourceDate)" />
|
||||
<ItemGroup>
|
||||
<_QtResourceOutOfDate Remove="@(_QtResourceOutOfDate)" />
|
||||
<_QtResourceDependency Remove="@(_QtResourceDependency)" />
|
||||
|
||||
Reference in New Issue
Block a user