mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
Issue #22919: Windows build updated to support VC 14.0 (Visual Studio 2015), which will be used for the official 3.5 release.
This commit is contained in:
parent
92716777b8
commit
65e4cb10d9
144 changed files with 2494 additions and 26822 deletions
|
@ -1,47 +1,46 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Platform)'=='Win32'">
|
||||
<PropertyGroup Label="Globals">
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<OutDir>$(SolutionDir)</OutDir>
|
||||
<IntDir>$(SolutionDir)$(PlatformName)-temp-$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
<OutDir>$(BuildPath)</OutDir>
|
||||
<IntDir>$(SolutionDir)obj\$(ArchName)_$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<IntDir Condition="$(Configuration) == 'PGInstrument' or $(Configuration) == 'PGUpdate'">$(SolutionDir)obj\$(ArchName)\$(ProjectName)\</IntDir>
|
||||
<TargetName Condition="'$(TargetName)' == ''">$(ProjectName)</TargetName>
|
||||
<TargetName>$(TargetName)$(PyDebugExt)</TargetName>
|
||||
<GenerateManifest>false</GenerateManifest>
|
||||
<EmbedManifest>false</EmbedManifest>
|
||||
<SupportPGO Condition="'$(SupportPGO)' == ''">true</SupportPGO>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Platform)'=='x64'">
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<_PropertySheetDisplayName>amd64</_PropertySheetDisplayName>
|
||||
<OutDir>$(SolutionDir)amd64\</OutDir>
|
||||
<IntDir>$(SolutionDir)$(PlatformName)-temp-$(Configuration)\$(ProjectName)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<PyDllName>python35$(PyDebugExt)</PyDllName>
|
||||
<PythonExe>$(OutDir)python$(PyDebugExt).exe</PythonExe>
|
||||
<KillPythonExe>$(OutDir)kill_python$(PyDebugExt).exe</KillPythonExe>
|
||||
<externalsDir>..\externals</externalsDir>
|
||||
<sqlite3Dir>$(externalsDir)\sqlite-3.8.3.1</sqlite3Dir>
|
||||
<bz2Dir>$(externalsDir)\bzip2-1.0.6</bz2Dir>
|
||||
<lzmaDir>$(externalsDir)\xz-5.0.5</lzmaDir>
|
||||
<nasmDir>$(externalsDir)\nasm-2.11.06</nasmDir>
|
||||
<opensslDir>$(externalsDir)\openssl-1.0.1j</opensslDir>
|
||||
<tclDir>$(externalsDir)\tcl-8.6.1.0</tclDir>
|
||||
<tkDir>$(externalsDir)\tk-8.6.1.0</tkDir>
|
||||
<tixDir>$(externalsDir)\tix-8.4.3.4</tixDir>
|
||||
<tcltkDir>$(externalsDir)\tcltk</tcltkDir>
|
||||
|
||||
<PropertyGroup>
|
||||
<_DebugPreprocessorDefinition>NDEBUG;</_DebugPreprocessorDefinition>
|
||||
<_DebugPreprocessorDefinition Condition="$(Configuration) == 'Debug'">_DEBUG;</_DebugPreprocessorDefinition>
|
||||
<_PlatformPreprocessorDefinition>_WIN32;</_PlatformPreprocessorDefinition>
|
||||
<_PlatformPreprocessorDefinition Condition="$(Platform) == 'x64'">_WIN64;_M_X64;</_PlatformPreprocessorDefinition>
|
||||
<_PydPreprocessorDefinition Condition="$(TargetExt) == '.pyd'">Py_BUILD_CORE_MODULE;</_PydPreprocessorDefinition>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(PySourcePath)Include;$(PySourcePath)PC;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;$(_PlatformPreprocessorDefinition)$(_DebugPreprocessorDefinition)$(_PydPreprocessorDefinition)%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<AdditionalIncludeDirectories>..\Include; ..\PC;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>_WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<ExceptionHandling>
|
||||
</ExceptionHandling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<ExceptionHandling></ExceptionHandling>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<CompileAs>Default</CompileAs>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</ClCompile>
|
||||
<ClCompile Condition="$(Configuration) == 'Debug'">
|
||||
<Optimization>Disabled</Optimization>
|
||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
|
@ -50,51 +49,92 @@
|
|||
<SubSystem>Windows</SubSystem>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<IgnoreSpecificDefaultLibraries>LIBC;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<TargetMachine Condition="'$(Platform)' == 'x64'">MachineX64</TargetMachine>
|
||||
<ProfileGuidedDatabase Condition="$(SupportPGO)">$(OutDir)$(TargetName).pgd</ProfileGuidedDatabase>
|
||||
<LinkTimeCodeGeneration Condition="$(Configuration) == 'Release'">UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
||||
<LinkTimeCodeGeneration Condition="$(SupportPGO) and $(Configuration) == 'PGInstrument'">PGInstrument</LinkTimeCodeGeneration>
|
||||
<LinkTimeCodeGeneration Condition="$(SupportPGO) and $(Configuration) == 'PGUpdate'">PGUpdate</LinkTimeCodeGeneration>
|
||||
</Link>
|
||||
<Lib>
|
||||
<LinkTimeCodeGeneration Condition="$(Configuration) == 'Release'">true</LinkTimeCodeGeneration>
|
||||
<LinkTimeCodeGeneration Condition="$(SupportPGO) and $(Configuration) == 'PGInstrument'">true</LinkTimeCodeGeneration>
|
||||
<LinkTimeCodeGeneration Condition="$(SupportPGO) and $(Configuration) == 'PGUpdate'">true</LinkTimeCodeGeneration>
|
||||
</Lib>
|
||||
<ResourceCompile>
|
||||
<AdditionalIncludeDirectories>..\PC;..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(PySourcePath)PC;$(PySourcePath)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>$(_DebugPreprocessorDefinition)%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0409</Culture>
|
||||
</ResourceCompile>
|
||||
<Midl>
|
||||
<PreprocessorDefinitions>$(_DebugPreprocessorDefinition)%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MkTypLibCompatible>true</MkTypLibCompatible>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<TargetEnvironment>Win32</TargetEnvironment>
|
||||
<TargetEnvironment Condition="'$(Platform)' == 'x64'">X64</TargetEnvironment>
|
||||
<TypeLibraryName>$(OutDir)wininst.tlb</TypeLibraryName>
|
||||
<HeaderFileName>
|
||||
</HeaderFileName>
|
||||
</Midl>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="PyDllName">
|
||||
<Value>$(PyDllName)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="PythonExe">
|
||||
<Value>$(PythonExe)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="KillPythonExe">
|
||||
<Value>$(KillPythonExe)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="externalsDir">
|
||||
<Value>$(externalsDir)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="sqlite3Dir">
|
||||
<Value>$(sqlite3Dir)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="bz2Dir">
|
||||
<Value>$(bz2Dir)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="lzmaDir">
|
||||
<Value>$(lzmaDir)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="nasmDir">
|
||||
<Value>$(nasmDir)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="opensslDir">
|
||||
<Value>$(opensslDir)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="tclDir">
|
||||
<Value>$(tclDir)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="tkDir">
|
||||
<Value>$(tkDir)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="tixDir">
|
||||
<Value>$(tixDir)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="tcltkDir">
|
||||
<Value>$(tcltkDir)</Value>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="GeneratePythonNtRcH"
|
||||
BeforeTargets="$(MakeVersionInfoBeforeTarget)"
|
||||
Inputs="$(PySourcePath)Include\patchlevel.h"
|
||||
Outputs="$(PySourcePath)PC\pythonnt_rc$(PyDebugExt).h">
|
||||
<WriteLinesToFile File="$(PySourcePath)PC\pythonnt_rc$(PyDebugExt).h" Overwrite="true" Encoding="ascii"
|
||||
Lines='/* This file created by python.props /t:GeneratePythonNtRcH */
|
||||
#define FIELD3 $(Field3Value)
|
||||
#define MS_DLL_ID "$(PythonMajorVersion).$(PythonMinorVersion)"
|
||||
#define PYTHON_DLL_NAME "$(PyDllName).dll"
|
||||
' />
|
||||
<ItemGroup>
|
||||
<FileWrites Include="$(PySourcePath)PC\pythonnt_rc$(PyDebugExt).h" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<UsingTask TaskName="KillPython" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
|
||||
<ParameterGroup>
|
||||
<FileName Required="true" />
|
||||
</ParameterGroup>
|
||||
<Task>
|
||||
<Code Type="Fragment" Language="cs">
|
||||
<![CDATA[
|
||||
string fullPath = System.IO.Path.GetFullPath(FileName);
|
||||
Log.LogMessage("Looking for " + fullPath, MessageImportance.Normal);
|
||||
foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses()) {
|
||||
try {
|
||||
Log.LogMessage("Found running process: " + p.MainModule.FileName, MessageImportance.Low);
|
||||
if (fullPath.Equals(System.IO.Path.GetFullPath(p.MainModule.FileName), StringComparison.OrdinalIgnoreCase)) {
|
||||
Log.LogMessage("Terminating " + p.MainModule.FileName, MessageImportance.High);
|
||||
p.Kill();
|
||||
}
|
||||
} catch {
|
||||
}
|
||||
}
|
||||
]]>
|
||||
</Code>
|
||||
</Task>
|
||||
</UsingTask>
|
||||
<Target Name="KillPython" BeforeTargets="InitializeBuildStatus" Condition="$([msbuild]::ValueOrDefault($(KillPython), 'false'))">
|
||||
<Message Text="Killing any running python.exe instances..." Importance="high" />
|
||||
<KillPython FileName="$(OutDir)python$(PyDebugExt).exe" />
|
||||
</Target>
|
||||
|
||||
<!--
|
||||
A default target to handle msbuild pcbuild.proj /t:CleanAll.
|
||||
|
||||
Some externals projects don't respond to /t:Clean, so we invoke
|
||||
CleanAll on them when we really want to clean up.
|
||||
-->
|
||||
<Target Name="CleanAll" DependsOnTargets="Clean">
|
||||
<MSBuild Projects="@(ProjectReference->'%(FullPath)')"
|
||||
Properties="Configuration=$(Configuration);Platform=$(Platform)"
|
||||
BuildInParallel="true"
|
||||
StopOnFirstFailure="false"
|
||||
Condition="Exists(%(FullPath))"
|
||||
Targets="CleanAll" />
|
||||
</Target>
|
||||
</Project>
|
Loading…
Add table
Add a link
Reference in a new issue