diff options
author | Steve Dower <steve.dower@microsoft.com> | 2017-09-06 17:01:38 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-06 17:01:38 (GMT) |
commit | 5fcd5e64eec9ed67613b8fe7356fb8288151ceba (patch) | |
tree | 7f439fe482a133d7877977a255d518a5ee846024 /PCbuild | |
parent | bcaac8188b1a1e67d2cc155609f0f883f036df33 (diff) | |
download | cpython-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.props | 18 | ||||
-rw-r--r-- | PCbuild/python.props | 2 | ||||
-rw-r--r-- | PCbuild/python.vcxproj | 1 | ||||
-rw-r--r-- | PCbuild/pythoncore.vcxproj | 3 |
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> |