blob: 1a36d08ec06cb30dfa22505a1386c5dd00566788 [file] [log] [blame]
Steve Dower68d663c2017-07-17 11:15:48 +02001<?xml version="1.0" encoding="utf-8"?>
2<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3 <ItemGroup Label="ProjectConfigurations">
4 <ProjectConfiguration Include="Debug|Win32">
5 <Configuration>Debug</Configuration>
6 <Platform>Win32</Platform>
7 </ProjectConfiguration>
8 <ProjectConfiguration Include="Release|Win32">
9 <Configuration>Release</Configuration>
10 <Platform>Win32</Platform>
11 </ProjectConfiguration>
12 <ProjectConfiguration Include="PGInstrument|Win32">
13 <Configuration>PGInstrument</Configuration>
14 <Platform>Win32</Platform>
15 </ProjectConfiguration>
16 <ProjectConfiguration Include="PGInstrument|x64">
17 <Configuration>PGInstrument</Configuration>
18 <Platform>x64</Platform>
19 </ProjectConfiguration>
20 <ProjectConfiguration Include="PGUpdate|Win32">
21 <Configuration>PGUpdate</Configuration>
22 <Platform>Win32</Platform>
23 </ProjectConfiguration>
24 <ProjectConfiguration Include="PGUpdate|x64">
25 <Configuration>PGUpdate</Configuration>
26 <Platform>x64</Platform>
27 </ProjectConfiguration>
28 <ProjectConfiguration Include="Debug|x64">
29 <Configuration>Debug</Configuration>
30 <Platform>x64</Platform>
31 </ProjectConfiguration>
32 <ProjectConfiguration Include="Release|x64">
33 <Configuration>Release</Configuration>
34 <Platform>x64</Platform>
35 </ProjectConfiguration>
36 </ItemGroup>
37 <PropertyGroup Label="Globals">
38 <ProjectGuid>{B5FD6F1D-129E-4BFF-9340-03606FAC7283}</ProjectGuid>
39 </PropertyGroup>
40
41 <Import Project="python.props" />
42 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
43
44 <PropertyGroup Label="Configuration">
45 <ConfigurationType>Makefile</ConfigurationType>
46 <Bitness>32</Bitness>
47 <Bitness Condition="$(Platform) == 'x64'">64</Bitness>
48 <ArchName>x86</ArchName>
49 <ArchName Condition="$(Platform) == 'x64'">amd64</ArchName>
Steve Dowerb84bcc42017-09-09 06:13:06 -070050 <OpenSSLPlatform>VC-WIN32</OpenSSLPlatform>
51 <OpenSSLPlatform Condition="$(Platform) == 'x64'">VC-WIN64A</OpenSSLPlatform>
Steve Dower68d663c2017-07-17 11:15:48 +020052 <SupportSigning>true</SupportSigning>
53 </PropertyGroup>
54
Steve Dower68d663c2017-07-17 11:15:48 +020055 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
56 <Import Project="pyproject.props" />
57
58 <PropertyGroup>
59 <IntDir>$(opensslDir)\tmp$(Bitness)dll</IntDir>
Steve Dowerb84bcc42017-09-09 06:13:06 -070060 <OutDir>$(opensslOutDir)</OutDir>
Steve Dower68d663c2017-07-17 11:15:48 +020061 <NMakeBuildCommandLine>setlocal
Steve Dower68d663c2017-07-17 11:15:48 +020062set VCINSTALLDIR=$(VCInstallDir)
Steve Dower68d663c2017-07-17 11:15:48 +020063if not exist "$(IntDir.TrimEnd('\'))" mkdir "$(IntDir.TrimEnd('\'))"
Steve Dowerb84bcc42017-09-09 06:13:06 -070064cd /D "$(IntDir.TrimEnd('\'))"
65$(Perl) "$(opensslDir)\configure" $(OpenSSLPlatform) no-asm
66nmake
Steve Dower68d663c2017-07-17 11:15:48 +020067</NMakeBuildCommandLine>
68 </PropertyGroup>
69
70 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
71
Steve Dowerb84bcc42017-09-09 06:13:06 -070072 <Target Name="_PatchUplink" BeforeTargets="Build">
73 <PropertyGroup>
74 <Uplink>$(opensslDir)\ms\uplink.c</Uplink>
75 <BeforePatch>((h = GetModuleHandle(NULL)) == NULL)</BeforePatch>
76 <AfterPatch>((h = GetModuleHandleA("_ssl.pyd")) == NULL) if ((h = GetModuleHandleA("_ssl_d.pyd")) == NULL) if ((h = GetModuleHandle(NULL)) == NULL /*patched*/)</AfterPatch>
77 </PropertyGroup>
78 <Error Text="Cannot find $(Uplink)" Condition="!Exists($(Uplink))" />
79 <PropertyGroup>
80 <_Original>$([System.IO.File]::ReadAllText($(Uplink)))</_Original>
81 <_Patched>$(_Original.Replace($(BeforePatch), $(AfterPatch)))</_Patched>
82 <IsPatched>false</IsPatched>
83 <IsPatched Condition="$(_Patched) == $(_Original)">true</IsPatched>
84 </PropertyGroup>
85 <Message Text="$(Uplink) is already patched" Importance="normal" Condition="$(IsPatched)" />
86 <Message Text="Patching $(Uplink)" Importance="high" Condition="!$(IsPatched)" />
87 <WriteLinesToFile File="$(Uplink)"
88 Lines="$(_Patched)"
89 Overwrite="true"
90 Encoding="ASCII"
91 Condition="!$(IsPatched)" />
Steve Dower68d663c2017-07-17 11:15:48 +020092 </Target>
93
Steve Dowerb84bcc42017-09-09 06:13:06 -070094 <Target Name="_CopyToOutput" AfterTargets="Build">
Steve Dower68d663c2017-07-17 11:15:48 +020095 <ItemGroup>
Steve Dowerb84bcc42017-09-09 06:13:06 -070096 <_Built Include="$(opensslDir)\LICENSE" />
97 <_Built Include="$(IntDir)\libcrypto.lib;$(IntDir)\libcrypto-*.dll;$(IntDir)\libcrypto-*.pdb" />
98 <_Built Include="$(IntDir)\libssl.lib;$(IntDir)\libssl-*.dll;$(IntDir)\libssl-*.pdb" />
99 <_AppLink Include="$(opensslDir)\ms\applink.c" />
100 <_Include Include="$(opensslDir)\Include\openssl\*.h" />
101 <_Include Include="$(IntDir)\include\openssl\*.h" />
Steve Dower68d663c2017-07-17 11:15:48 +0200102 </ItemGroup>
Steve Dowerb84bcc42017-09-09 06:13:06 -0700103 <MakeDir Directories="$(opensslOutDir)\include\openssl" />
104 <Copy SourceFiles="@(_Built)" DestinationFolder="$(opensslOutDir)" />
105 <Copy SourceFiles="@(_AppLink)" DestinationFolder="$(opensslOutDir)\include" />
106 <Copy SourceFiles="@(_Include)" DestinationFolder="$(opensslOutDir)\include\openssl" />
Steve Dower68d663c2017-07-17 11:15:48 +0200107 </Target>
108
109 <Target Name="SignFiles" AfterTargets="Build" Condition="$(_SignCommand) != ''">
110 <ItemGroup>
Steve Dowerb84bcc42017-09-09 06:13:06 -0700111 <FilesToSign Include="$(opensslOutDir)\lib*.dll" />
Steve Dower68d663c2017-07-17 11:15:48 +0200112 </ItemGroup>
113 <Exec Command="$(_SignCommand) %(FilesToSign.FullPath)" ContinueOnError="true" />
114 </Target>
115
116 <Target Name="Clean" />
117 <Target Name="CleanAll">
118 <Delete Files="$(TargetPath);$(BuildPath)$(tclDLLName)" />
119 <RemoveDir Directories="$(IntDir)" />
120 </Target>
121
122 <Target Name="LocateNMake">
123 <PropertyGroup>
124 <OutputFilename Condition="$(OutputFilename) == ''">$(Temp)\nmake.loc</OutputFilename>
125 </PropertyGroup>
126 <ItemGroup>
127 <_NMakeExe Include="$(VC_ExecutablePath_x86_x86)\nmake.exe" Condition="$(VC_ExecutablePath_x86_x86) != ''" />
128 </ItemGroup>
129 <MakeDir Directories="$([System.IO.Path]::GetDirectoryName($(OutputFilename)))" />
130 <WriteLinesToFile File="$(OutputFilename)" Lines="@(_NMakeExe)" />
131 </Target>
132
133 <Target Name="ResolveAssemblyReferences" />
134</Project>