summaryrefslogtreecommitdiffstats
path: root/PCbuild
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@microsoft.com>2017-09-06 17:01:38 (GMT)
committerGitHub <noreply@github.com>2017-09-06 17:01:38 (GMT)
commit5fcd5e64eec9ed67613b8fe7356fb8288151ceba (patch)
tree7f439fe482a133d7877977a255d518a5ee846024 /PCbuild
parentbcaac8188b1a1e67d2cc155609f0f883f036df33 (diff)
downloadcpython-5fcd5e64eec9ed67613b8fe7356fb8288151ceba.zip
cpython-5fcd5e64eec9ed67613b8fe7356fb8288151ceba.tar.gz
cpython-5fcd5e64eec9ed67613b8fe7356fb8288151ceba.tar.bz2
bpo-31340: Change to building with MSVC v141 (included with Visual Studio 2017) (#3311)
Diffstat (limited to 'PCbuild')
-rw-r--r--PCbuild/pyproject.props18
-rw-r--r--PCbuild/python.props2
-rw-r--r--PCbuild/python.vcxproj1
-rw-r--r--PCbuild/pythoncore.vcxproj3
4 files changed, 22 insertions, 2 deletions
diff --git a/PCbuild/pyproject.props b/PCbuild/pyproject.props
index 6ab9b65..aed8f34 100644
--- a/PCbuild/pyproject.props
+++ b/PCbuild/pyproject.props
@@ -147,8 +147,24 @@ foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses
Targets="CleanAll" />
</Target>
+ <Target Name="CopyPGCFiles" BeforeTargets="PrepareForBuild" Condition="$(Configuration) == 'PGUpdate'">
+ <ItemGroup>
+ <_PGCFiles Include="$(OutDir)instrumented\$(TargetName)!*.pgc" />
+ <_PGDFile Include="$(OutDir)instrumented\$(TargetName).pgd" />
+ <_CopyFiles Include="@(_PGCFiles);@(_PGDFile)" Condition="Exists(%(FullPath))" />
+ </ItemGroup>
+ <Delete Files="@(_CopyFiles->'$(OutDir)%(Filename)%(Extension)')" />
+ <Error Text="PGO run did not succeed (no $(TargetName)!*.pgc files) and there is no data to merge"
+ Condition="$(RequirePGCFiles) == 'true' and @(_PGCFiles) == ''" />
+ <Copy SourceFiles="@(_CopyFiles)"
+ DestinationFolder="$(OutDir)"
+ UseHardLinksIfPossible="true"
+ OverwriteReadOnlyFiles="true" />
+ </Target>
+
<PropertyGroup>
- <SdkBinPath Condition="'$(SdkBinPath)' == '' or !Exists($(SdkBinPath))">$(registry:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Kits\Installed Roots@KitsRoot10)\bin\x86</SdkBinPath>
+ <SdkBinPath Condition="'$(SdkBinPath)' == '' or !Exists($(SdkBinPath))">$(registry:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Kits\Installed Roots@KitsRoot10)\bin\$(DefaultWindowsSDKVersion)\x86</SdkBinPath>
+ <SdkBinPath Condition="!Exists($(SdkBinPath))">$(registry:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Kits\Installed Roots@KitsRoot10)\bin\x86</SdkBinPath>
<SdkBinPath Condition="!Exists($(SdkBinPath))">$(registry:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Kits\Installed Roots@KitsRoot81)\bin\x86</SdkBinPath>
<SdkBinPath Condition="!Exists($(SdkBinPath))">$(registry:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Kits\Installed Roots@KitsRoot)\bin\x86</SdkBinPath>
<SdkBinPath Condition="!Exists($(SdkBinPath))">$(registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1A@InstallationFolder)\Bin\</SdkBinPath>
diff --git a/PCbuild/python.props b/PCbuild/python.props
index c81cd94..c2baebc 100644
--- a/PCbuild/python.props
+++ b/PCbuild/python.props
@@ -10,6 +10,7 @@
We set BasePlatformToolset for ICC's benefit, it's otherwise ignored.
-->
+ <BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and ('$(MSBuildToolsVersion)' == '15.0' or '$(VisualStudioVersion)' == '15.0')">v141</BasePlatformToolset>
<BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and '$(VCTargetsPath14)' != ''">v140</BasePlatformToolset>
<BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and '$(VCTargetsPath12)' != ''">v120</BasePlatformToolset>
<BasePlatformToolset Condition="'$(BasePlatformToolset)' == '' and '$(VCTargetsPath11)' != ''">v110</BasePlatformToolset>
@@ -39,6 +40,7 @@
<BuildPath Condition="'$(ArchName)' == 'amd64'">$(BuildPath64)</BuildPath>
<BuildPath Condition="'$(BuildPath)' == ''">$(PySourcePath)PCBuild\$(ArchName)\</BuildPath>
<BuildPath Condition="!HasTrailingSlash($(BuildPath))">$(BuildPath)\</BuildPath>
+ <BuildPath Condition="$(Configuration) == 'PGInstrument'">$(BuildPath)instrumented\</BuildPath>
<!-- Directories of external projects. tcltk is handled in tcltk.props -->
<ExternalsDir>$([System.IO.Path]::GetFullPath(`$(PySourcePath)externals\`))</ExternalsDir>
diff --git a/PCbuild/python.vcxproj b/PCbuild/python.vcxproj
index 2786ac2..ab9fb05 100644
--- a/PCbuild/python.vcxproj
+++ b/PCbuild/python.vcxproj
@@ -96,6 +96,7 @@ set PYTHONPATH=$(PySourcePath)Lib
<PropertyGroup>
<_PGOPath Condition="$(Configuration) == 'PGInstrument' and $(Platform) == 'Win32'">@set PATH=%PATH%%3B$(VCInstallDir)bin</_PGOPath>
<_PGOPath Condition="$(Configuration) == 'PGInstrument' and $(Platform) == 'x64'">@set PATH=%PATH%%3B$(VCInstallDir)bin\amd64</_PGOPath>
+ <_PGOPath Condition="$(Configuration) == 'PGInstrument' and $(VC_PGO_RunTime_Dir) != ''">@set PATH=%PATH%%3B$(VC_PGO_RunTime_Dir)</_PGOPath>
<_Content>@rem This script invokes the most recently built Python with all arguments
@rem passed through to the interpreter. This file is generated by the
@rem build process and any changes *will* be thrown away by the next
diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj
index 8ebb22e..763540e 100644
--- a/PCbuild/pythoncore.vcxproj
+++ b/PCbuild/pythoncore.vcxproj
@@ -49,6 +49,7 @@
</ImportGroup>
<PropertyGroup>
<KillPython>true</KillPython>
+ <RequirePGCFiles>true</RequirePGCFiles>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
@@ -429,7 +430,7 @@
</ClCompile>
</ItemGroup>
</Target>
- <Target Name="_WarnAboutToolset" BeforeTargets="PrepareForBuild" Condition="$(PlatformToolset) != 'v140'">
+ <Target Name="_WarnAboutToolset" BeforeTargets="PrepareForBuild" Condition="$(PlatformToolset) != 'v140' and $(PlatformToolset) != 'v141'">
<Warning Text="Toolset $(PlatformToolset) is not used for official builds. Your build may have errors or incompatibilities." />
</Target>
</Project>