Brian Curtin | 401f9f3 | 2012-05-13 11:19:23 -0500 | [diff] [blame] | 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
Steve Dower | 65e4cb1 | 2014-11-22 12:54:57 -0800 | [diff] [blame] | 3 | <PropertyGroup Label="Globals"> |
Stefan Krah | 318c56c | 2012-06-24 19:04:35 +0200 | [diff] [blame] | 4 | <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> |
Steve Dower | 65e4cb1 | 2014-11-22 12:54:57 -0800 | [diff] [blame] | 5 | <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> |
| 6 | <OutDir>$(BuildPath)</OutDir> |
| 7 | <IntDir>$(SolutionDir)obj\$(ArchName)_$(Configuration)\$(ProjectName)\</IntDir> |
| 8 | <IntDir Condition="$(Configuration) == 'PGInstrument' or $(Configuration) == 'PGUpdate'">$(SolutionDir)obj\$(ArchName)\$(ProjectName)\</IntDir> |
| 9 | <TargetName Condition="'$(TargetName)' == ''">$(ProjectName)</TargetName> |
| 10 | <TargetName>$(TargetName)$(PyDebugExt)</TargetName> |
| 11 | <GenerateManifest>false</GenerateManifest> |
| 12 | <EmbedManifest>false</EmbedManifest> |
| 13 | <SupportPGO Condition="'$(SupportPGO)' == ''">true</SupportPGO> |
Steve Dower | bb24087 | 2015-02-05 22:08:48 -0800 | [diff] [blame] | 14 | <SupportSigning Condition="'$(SupportSigning)' == ''">true</SupportSigning> |
| 15 | <SupportSigning Condition="'$(Configuration)' == 'Debug'">false</SupportSigning> |
| 16 | <SupportSigning Condition="'$(ConfigurationType)' == 'StaticLibrary'">false</SupportSigning> |
Zachary Ware | 6373ba5 | 2014-03-17 15:57:38 -0500 | [diff] [blame] | 17 | </PropertyGroup> |
Steve Dower | 65e4cb1 | 2014-11-22 12:54:57 -0800 | [diff] [blame] | 18 | |
| 19 | <PropertyGroup> |
| 20 | <_DebugPreprocessorDefinition>NDEBUG;</_DebugPreprocessorDefinition> |
| 21 | <_DebugPreprocessorDefinition Condition="$(Configuration) == 'Debug'">_DEBUG;</_DebugPreprocessorDefinition> |
| 22 | <_PlatformPreprocessorDefinition>_WIN32;</_PlatformPreprocessorDefinition> |
| 23 | <_PlatformPreprocessorDefinition Condition="$(Platform) == 'x64'">_WIN64;_M_X64;</_PlatformPreprocessorDefinition> |
| 24 | <_PydPreprocessorDefinition Condition="$(TargetExt) == '.pyd'">Py_BUILD_CORE_MODULE;</_PydPreprocessorDefinition> |
Brian Curtin | 401f9f3 | 2012-05-13 11:19:23 -0500 | [diff] [blame] | 25 | </PropertyGroup> |
Brian Curtin | 401f9f3 | 2012-05-13 11:19:23 -0500 | [diff] [blame] | 26 | <ItemDefinitionGroup> |
| 27 | <ClCompile> |
Steve Dower | 65e4cb1 | 2014-11-22 12:54:57 -0800 | [diff] [blame] | 28 | <AdditionalIncludeDirectories>$(PySourcePath)Include;$(PySourcePath)PC;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |
| 29 | <PreprocessorDefinitions>WIN32;$(_PlatformPreprocessorDefinition)$(_DebugPreprocessorDefinition)$(_PydPreprocessorDefinition)%(PreprocessorDefinitions)</PreprocessorDefinitions> |
| 30 | |
Brian Curtin | 401f9f3 | 2012-05-13 11:19:23 -0500 | [diff] [blame] | 31 | <Optimization>MaxSpeed</Optimization> |
Brian Curtin | 401f9f3 | 2012-05-13 11:19:23 -0500 | [diff] [blame] | 32 | <IntrinsicFunctions>true</IntrinsicFunctions> |
Brian Curtin | 401f9f3 | 2012-05-13 11:19:23 -0500 | [diff] [blame] | 33 | <StringPooling>true</StringPooling> |
Steve Dower | 65e4cb1 | 2014-11-22 12:54:57 -0800 | [diff] [blame] | 34 | <ExceptionHandling></ExceptionHandling> |
| 35 | <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> |
Brian Curtin | 401f9f3 | 2012-05-13 11:19:23 -0500 | [diff] [blame] | 36 | <FunctionLevelLinking>true</FunctionLevelLinking> |
| 37 | <WarningLevel>Level3</WarningLevel> |
| 38 | <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> |
| 39 | <CompileAs>Default</CompileAs> |
Steve Dower | 65e4cb1 | 2014-11-22 12:54:57 -0800 | [diff] [blame] | 40 | <SuppressStartupBanner>true</SuppressStartupBanner> |
| 41 | <WholeProgramOptimization>true</WholeProgramOptimization> |
| 42 | </ClCompile> |
| 43 | <ClCompile Condition="$(Configuration) == 'Debug'"> |
| 44 | <Optimization>Disabled</Optimization> |
| 45 | <WholeProgramOptimization>false</WholeProgramOptimization> |
| 46 | <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> |
Brian Curtin | 401f9f3 | 2012-05-13 11:19:23 -0500 | [diff] [blame] | 47 | </ClCompile> |
| 48 | <Link> |
| 49 | <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> |
| 50 | <GenerateDebugInformation>true</GenerateDebugInformation> |
| 51 | <ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile> |
| 52 | <SubSystem>Windows</SubSystem> |
Christian Heimes | f3bf35e | 2013-11-20 17:43:23 +0100 | [diff] [blame] | 53 | <RandomizedBaseAddress>true</RandomizedBaseAddress> |
| 54 | <DataExecutionPrevention>true</DataExecutionPrevention> |
Steve Dower | 65e4cb1 | 2014-11-22 12:54:57 -0800 | [diff] [blame] | 55 | <SuppressStartupBanner>true</SuppressStartupBanner> |
| 56 | <IgnoreSpecificDefaultLibraries>LIBC;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries> |
Brian Curtin | 401f9f3 | 2012-05-13 11:19:23 -0500 | [diff] [blame] | 57 | <TargetMachine>MachineX86</TargetMachine> |
Steve Dower | 65e4cb1 | 2014-11-22 12:54:57 -0800 | [diff] [blame] | 58 | <TargetMachine Condition="'$(Platform)' == 'x64'">MachineX64</TargetMachine> |
| 59 | <ProfileGuidedDatabase Condition="$(SupportPGO)">$(OutDir)$(TargetName).pgd</ProfileGuidedDatabase> |
| 60 | <LinkTimeCodeGeneration Condition="$(Configuration) == 'Release'">UseLinkTimeCodeGeneration</LinkTimeCodeGeneration> |
| 61 | <LinkTimeCodeGeneration Condition="$(SupportPGO) and $(Configuration) == 'PGInstrument'">PGInstrument</LinkTimeCodeGeneration> |
| 62 | <LinkTimeCodeGeneration Condition="$(SupportPGO) and $(Configuration) == 'PGUpdate'">PGUpdate</LinkTimeCodeGeneration> |
Brian Curtin | 401f9f3 | 2012-05-13 11:19:23 -0500 | [diff] [blame] | 63 | </Link> |
Steve Dower | 65e4cb1 | 2014-11-22 12:54:57 -0800 | [diff] [blame] | 64 | <Lib> |
| 65 | <LinkTimeCodeGeneration Condition="$(Configuration) == 'Release'">true</LinkTimeCodeGeneration> |
| 66 | <LinkTimeCodeGeneration Condition="$(SupportPGO) and $(Configuration) == 'PGInstrument'">true</LinkTimeCodeGeneration> |
| 67 | <LinkTimeCodeGeneration Condition="$(SupportPGO) and $(Configuration) == 'PGUpdate'">true</LinkTimeCodeGeneration> |
| 68 | </Lib> |
Brian Curtin | 401f9f3 | 2012-05-13 11:19:23 -0500 | [diff] [blame] | 69 | <ResourceCompile> |
Steve Dower | 65e4cb1 | 2014-11-22 12:54:57 -0800 | [diff] [blame] | 70 | <AdditionalIncludeDirectories>$(PySourcePath)PC;$(PySourcePath)Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> |
| 71 | <PreprocessorDefinitions>$(_DebugPreprocessorDefinition)%(PreprocessorDefinitions)</PreprocessorDefinitions> |
| 72 | <Culture>0x0409</Culture> |
Brian Curtin | 401f9f3 | 2012-05-13 11:19:23 -0500 | [diff] [blame] | 73 | </ResourceCompile> |
Steve Dower | 65e4cb1 | 2014-11-22 12:54:57 -0800 | [diff] [blame] | 74 | <Midl> |
| 75 | <PreprocessorDefinitions>$(_DebugPreprocessorDefinition)%(PreprocessorDefinitions)</PreprocessorDefinitions> |
| 76 | <MkTypLibCompatible>true</MkTypLibCompatible> |
| 77 | <SuppressStartupBanner>true</SuppressStartupBanner> |
| 78 | <TargetEnvironment>Win32</TargetEnvironment> |
| 79 | <TargetEnvironment Condition="'$(Platform)' == 'x64'">X64</TargetEnvironment> |
| 80 | <TypeLibraryName>$(OutDir)wininst.tlb</TypeLibraryName> |
| 81 | <HeaderFileName> |
| 82 | </HeaderFileName> |
| 83 | </Midl> |
Brian Curtin | 401f9f3 | 2012-05-13 11:19:23 -0500 | [diff] [blame] | 84 | </ItemDefinitionGroup> |
Steve Dower | 65e4cb1 | 2014-11-22 12:54:57 -0800 | [diff] [blame] | 85 | |
| 86 | <Target Name="GeneratePythonNtRcH" |
| 87 | BeforeTargets="$(MakeVersionInfoBeforeTarget)" |
| 88 | Inputs="$(PySourcePath)Include\patchlevel.h" |
| 89 | Outputs="$(PySourcePath)PC\pythonnt_rc$(PyDebugExt).h"> |
| 90 | <WriteLinesToFile File="$(PySourcePath)PC\pythonnt_rc$(PyDebugExt).h" Overwrite="true" Encoding="ascii" |
| 91 | Lines='/* This file created by python.props /t:GeneratePythonNtRcH */ |
| 92 | #define FIELD3 $(Field3Value) |
Steve Dower | 2587952 | 2015-01-15 09:10:16 -0800 | [diff] [blame] | 93 | #define MS_DLL_ID "$(SysWinVer)" |
Steve Dower | 65e4cb1 | 2014-11-22 12:54:57 -0800 | [diff] [blame] | 94 | #define PYTHON_DLL_NAME "$(PyDllName).dll" |
| 95 | ' /> |
| 96 | <ItemGroup> |
| 97 | <FileWrites Include="$(PySourcePath)PC\pythonnt_rc$(PyDebugExt).h" /> |
| 98 | </ItemGroup> |
| 99 | </Target> |
| 100 | |
| 101 | <UsingTask TaskName="KillPython" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll"> |
| 102 | <ParameterGroup> |
| 103 | <FileName Required="true" /> |
| 104 | </ParameterGroup> |
| 105 | <Task> |
| 106 | <Code Type="Fragment" Language="cs"> |
| 107 | <![CDATA[ |
| 108 | string fullPath = System.IO.Path.GetFullPath(FileName); |
| 109 | Log.LogMessage("Looking for " + fullPath, MessageImportance.Normal); |
| 110 | foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses()) { |
| 111 | try { |
| 112 | Log.LogMessage("Found running process: " + p.MainModule.FileName, MessageImportance.Low); |
| 113 | if (fullPath.Equals(System.IO.Path.GetFullPath(p.MainModule.FileName), StringComparison.OrdinalIgnoreCase)) { |
| 114 | Log.LogMessage("Terminating " + p.MainModule.FileName, MessageImportance.High); |
| 115 | p.Kill(); |
| 116 | } |
| 117 | } catch { |
| 118 | } |
| 119 | } |
| 120 | ]]> |
| 121 | </Code> |
| 122 | </Task> |
| 123 | </UsingTask> |
Steve Dower | 10e6585 | 2014-12-12 12:18:11 -0800 | [diff] [blame] | 124 | |
Steve Dower | f4f1080 | 2014-12-12 13:45:25 -0800 | [diff] [blame] | 125 | <Target Name="KillPython" BeforeTargets="PrepareForBuild" Condition="'$(KillPython)' == 'true'"> |
Steve Dower | 65e4cb1 | 2014-11-22 12:54:57 -0800 | [diff] [blame] | 126 | <Message Text="Killing any running python.exe instances..." Importance="high" /> |
| 127 | <KillPython FileName="$(OutDir)python$(PyDebugExt).exe" /> |
| 128 | </Target> |
| 129 | |
| 130 | <!-- |
| 131 | A default target to handle msbuild pcbuild.proj /t:CleanAll. |
| 132 | |
| 133 | Some externals projects don't respond to /t:Clean, so we invoke |
| 134 | CleanAll on them when we really want to clean up. |
| 135 | --> |
| 136 | <Target Name="CleanAll" DependsOnTargets="Clean"> |
| 137 | <MSBuild Projects="@(ProjectReference->'%(FullPath)')" |
| 138 | Properties="Configuration=$(Configuration);Platform=$(Platform)" |
| 139 | BuildInParallel="true" |
| 140 | StopOnFirstFailure="false" |
| 141 | Condition="Exists(%(FullPath))" |
| 142 | Targets="CleanAll" /> |
| 143 | </Target> |
Steve Dower | bb24087 | 2015-02-05 22:08:48 -0800 | [diff] [blame] | 144 | |
| 145 | <PropertyGroup Condition="'$(SigningCertificate)' != '' and $(SupportSigning)"> |
| 146 | <SignToolPath Condition="'$(SignToolPath)' == '' or !Exists($(SignToolPath))">$(registry:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Kits\Installed Roots@KitsRoot81)\bin\x86\signtool.exe</SignToolPath> |
| 147 | <SignToolPath Condition="!Exists($(SignToolPath))">$(registry:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Kits\Installed Roots@KitsRoot)\bin\x86\signtool.exe</SignToolPath> |
| 148 | <SignToolPath Condition="!Exists($(SignToolPath))">$(registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1A@InstallationFolder)\Bin\signtool.exe</SignToolPath> |
| 149 | <_SignCommand Condition="Exists($(SignToolPath))">"$(SignToolPath)" sign /q /n "$(SigningCertificate)" /t http://timestamp.verisign.com/scripts/timestamp.dll /d "Python $(PythonVersion)"</_SignCommand> |
| 150 | </PropertyGroup> |
| 151 | |
| 152 | <Target Name="_SignBuild" AfterTargets="AfterBuild" Condition="'$(SigningCertificate)' != '' and $(SupportSigning)"> |
| 153 | <Error Text="Unable to locate signtool.exe. Set /p:SignToolPath and rebuild" Condition="'$(_SignCommand)' == ''" /> |
| 154 | <Exec Command='$(_SignCommand) "$(TargetPath)" || $(_SignCommand) "$(TargetPath)" || $(_SignCommand) "$(TargetPath)"' ContinueOnError="false" /> |
| 155 | </Target> |
Zachary Ware | a191b91 | 2014-03-21 22:58:19 -0500 | [diff] [blame] | 156 | </Project> |