diff options
| author | Mai M <mathew1800@gmail.com> | 2022-04-26 23:25:42 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-26 23:25:42 -0400 |
| commit | 3897eb5bbe5ad4dcce18cc81e4d44efd58e890aa (patch) | |
| tree | 97014a587d1171fe89352f39e1db3cd7ea9a9db5 /Source/VSProps | |
| parent | ccbdfd446d13504b9a50792a38542a5a21399bb6 (diff) | |
| parent | eb87245be8de21c12ba895b4117298120adf0580 (diff) | |
Merge pull request #10617 from shuffle2/repro
msbuild: improve reproducible builds
Diffstat (limited to 'Source/VSProps')
| -rw-r--r-- | Source/VSProps/Base.props | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/Source/VSProps/Base.props b/Source/VSProps/Base.props index b7da386cae..563086055c 100644 --- a/Source/VSProps/Base.props +++ b/Source/VSProps/Base.props @@ -5,7 +5,7 @@ <IntDir>$(BuildRootDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir> <OutDir>$(IntDir)bin\</OutDir> <TargetName Condition="'$(ConfigurationType)'=='Application'">$(ProjectName)$(TargetSuffix)</TargetName> - <!--Set link /INCREMENTAL:NO to remove some entropy from builds (assists with /Brepro)--> + <!--Set link /INCREMENTAL:NO to remove some entropy from builds (assists with deterministic build)--> <LinkIncremental>false</LinkIncremental> </PropertyGroup> <ItemDefinitionGroup> @@ -126,13 +126,21 @@ 4946 Reinterpret cast between related types --> <AdditionalOptions>/w44263 /w44265 /w44946 %(AdditionalOptions)</AdditionalOptions> - <AdditionalOptions>/Brepro %(AdditionalOptions)</AdditionalOptions> <!-- A (currently) hidden switch, like /Brepro, furthermore enabling warnings about non-deterministic code. This may be advantageous over /Brepro, which inits __DATE__, __TIME__, etc. equal to 1 (and allows them to be redefined), which could have unexpected results. --> <AdditionalOptions>/experimental:deterministic %(AdditionalOptions)</AdditionalOptions> + <!-- + pathmap replaces path prefixes of source files with a hardcoded value, assisting with keeping output + files uniform even if actually built from different locations. The mapped path doesn't really need full + drive prefix, but it keeps things human readable. Note the trailing "\" is actually to be escaped by a + preceeding "\" in the expanded variable. + --> + <AdditionalOptions>/pathmap:"$(DolphinRootDir)\"=d:\ %(AdditionalOptions)</AdditionalOptions> + <AdditionalOptions>/pathmap:"$(WindowsSdkDir)\"=w:\ %(AdditionalOptions)</AdditionalOptions> + <AdditionalOptions>/pathmap:"$(VCToolsetsDir)\"=v:\ %(AdditionalOptions)</AdditionalOptions> </ClCompile> <!--ClCompile Debug--> <ClCompile Condition="'$(Configuration)'=='Debug'"> @@ -158,7 +166,8 @@ <Link> <GenerateDebugInformation>true</GenerateDebugInformation> <TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors> - <AdditionalOptions>/Brepro %(AdditionalOptions)</AdditionalOptions> + <AdditionalOptions>/experimental:deterministic %(AdditionalOptions)</AdditionalOptions> + <AdditionalOptions>/PDBALTPATH:Build\$(Platform)\$(Configuration)\$(ProjectName)\bin\%_PDB% %(AdditionalOptions)</AdditionalOptions> </Link> <!--Link Release--> <Link Condition="'$(Configuration)'=='Release'"> @@ -184,7 +193,7 @@ <Lib> <TreatLibWarningAsErrors>true</TreatLibWarningAsErrors> <LinkTimeCodeGeneration Condition="'$(DolphinRelease)'=='true'">true</LinkTimeCodeGeneration> - <AdditionalOptions>/Brepro %(AdditionalOptions)</AdditionalOptions> + <AdditionalOptions>/experimental:deterministic %(AdditionalOptions)</AdditionalOptions> </Lib> </ItemDefinitionGroup> <ItemGroup /> |
