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:
Steve Dower 2014-11-22 12:54:57 -08:00
parent 92716777b8
commit 65e4cb10d9
144 changed files with 2494 additions and 26822 deletions

View file

@ -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>