[bpo-30916] Pre-build OpenSSL and Tcl/Tk for Windows (#2688)

Updates ssl and tkinter projects to use pre-built externals
This commit is contained in:
Steve Dower 2017-07-17 11:15:48 +02:00 committed by GitHub
parent 49f6449ef4
commit 68d663cf85
34 changed files with 495 additions and 1400 deletions

View file

@ -5,8 +5,19 @@ pushd %~dp0
set this=%~n0 set this=%~n0
if "%SPHINXBUILD%" EQU "" set SPHINXBUILD=sphinx-build call ..\PCBuild\find_python.bat %PYTHON%
if "%SPHINXBUILD%" EQU "" if "%PYTHON%" NEQ "" (
set SPHINXBUILD=%PYTHON%\..\Scripts\sphinx-build.exe
rem Cannot use %SPHINXBUILD% in the same block where we set it
if not exist "%PYTHON%\..\Scripts\sphinx-build.exe" (
echo Installing sphinx with %PYTHON%
"%PYTHON%" -m pip install sphinx
if errorlevel 1 exit /B
)
)
if "%PYTHON%" EQU "" set PYTHON=py if "%PYTHON%" EQU "" set PYTHON=py
if "%SPHINXBUILD%" EQU "" set SPHINXBUILD=sphinx-build
if "%1" NEQ "htmlhelp" goto :skiphhcsearch if "%1" NEQ "htmlhelp" goto :skiphhcsearch
if exist "%HTMLHELP%" goto :skiphhcsearch if exist "%HTMLHELP%" goto :skiphhcsearch

View file

@ -1244,6 +1244,7 @@ class ContextTests(unittest.TestCase):
self.assertEqual(ctx.cert_store_stats(), {"crl": 0, "x509": 1, "x509_ca": 0}) self.assertEqual(ctx.cert_store_stats(), {"crl": 0, "x509": 1, "x509_ca": 0})
@unittest.skipUnless(sys.platform == "win32", "Windows specific") @unittest.skipUnless(sys.platform == "win32", "Windows specific")
@unittest.skipIf(hasattr(sys, "gettotalrefcount"), "Debug build does not share environment between CRTs")
def test_load_default_certs_env_windows(self): def test_load_default_certs_env_windows(self):
ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1) ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
ctx.load_default_certs() ctx.load_default_certs()

View file

@ -0,0 +1 @@
Pre-build OpenSSL, Tcl and Tk and include the binaries in the build.

View file

@ -21,11 +21,13 @@
#ifdef WITH_THREAD #ifdef WITH_THREAD
#include "pythread.h" #include "pythread.h"
/* Redefined below for Windows debug builds after important #includes */
#define _PySSL_FIX_ERRNO
#define PySSL_BEGIN_ALLOW_THREADS_S(save) \ #define PySSL_BEGIN_ALLOW_THREADS_S(save) \
do { if (_ssl_locks_count>0) { (save) = PyEval_SaveThread(); } } while (0) do { if (_ssl_locks_count>0) { (save) = PyEval_SaveThread(); } } while (0)
#define PySSL_END_ALLOW_THREADS_S(save) \ #define PySSL_END_ALLOW_THREADS_S(save) \
do { if (_ssl_locks_count>0) { PyEval_RestoreThread(save); } } while (0) do { if (_ssl_locks_count>0) { PyEval_RestoreThread(save); } _PySSL_FIX_ERRNO; } while (0)
#define PySSL_BEGIN_ALLOW_THREADS { \ #define PySSL_BEGIN_ALLOW_THREADS { \
PyThreadState *_save = NULL; \ PyThreadState *_save = NULL; \
PySSL_BEGIN_ALLOW_THREADS_S(_save); PySSL_BEGIN_ALLOW_THREADS_S(_save);
@ -96,6 +98,40 @@ struct py_ssl_library_code {
int code; int code;
}; };
#if defined(MS_WINDOWS) && defined(Py_DEBUG)
/* Debug builds on Windows rely on getting errno directly from OpenSSL.
* However, because it uses a different CRT, we need to transfer the
* value of errno from OpenSSL into our debug CRT.
*
* Don't be fooled - this is horribly ugly code. The only reasonable
* alternative is to do both debug and release builds of OpenSSL, which
* requires much uglier code to transform their automatically generated
* makefile. This is the lesser of all the evils.
*/
static void _PySSLFixErrno(void) {
HMODULE ucrtbase = GetModuleHandleW(L"ucrtbase.dll");
if (!ucrtbase) {
/* If ucrtbase.dll is not loaded but the SSL DLLs are, we likely
* have a catastrophic failure, but this function is not the
* place to raise it. */
return;
}
typedef int *(__stdcall *errno_func)(void);
errno_func ssl_errno = (errno_func)GetProcAddress(ucrtbase, "_errno");
if (ssl_errno) {
errno = *ssl_errno();
*ssl_errno() = 0;
} else {
errno = ENOTRECOVERABLE;
}
}
#undef _PySSL_FIX_ERRNO
#define _PySSL_FIX_ERRNO _PySSLFixErrno()
#endif
/* Include generated data (error codes) */ /* Include generated data (error codes) */
#include "_ssl_data.h" #include "_ssl_data.h"

View file

@ -54,17 +54,15 @@
<ImportGroup Label="PropertySheets"> <ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="pyproject.props" /> <Import Project="pyproject.props" />
<Import Project="openssl.props" />
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup> <PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup> <ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(opensslIncludeDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link> <Link>
<AdditionalDependencies>ws2_32.lib;$(OutDir)libeay$(PyDebugExt).lib;$(OutDir)ssleay$(PyDebugExt).lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
@ -78,14 +76,6 @@
<Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project> <Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly> <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference> </ProjectReference>
<ProjectReference Include="ssleay.vcxproj">
<Project>{10615b24-73bf-4efa-93aa-236916321317}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="libeay.vcxproj">
<Project>{e5b04cc0-eb4c-42ab-b4dc-18ef95f864b0}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">

View file

@ -54,21 +54,22 @@
<ImportGroup Label="PropertySheets"> <ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="pyproject.props" /> <Import Project="pyproject.props" />
<Import Project="openssl.props" />
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup> <PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup> <ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(opensslIncludeDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link> <Link>
<AdditionalDependencies>ws2_32.lib;crypt32.lib;$(OutDir)libeay$(PyDebugExt).lib;$(OutDir)ssleay$(PyDebugExt).lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>ws2_32.lib;crypt32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\Modules\_ssl.c" /> <ClCompile Include="..\Modules\_ssl.c" />
<ClCompile Include="$(opensslIncludeDir)\applink.c">
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;$(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="..\PC\python_nt.rc" /> <ResourceCompile Include="..\PC\python_nt.rc" />
@ -78,14 +79,6 @@
<Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project> <Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly> <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference> </ProjectReference>
<ProjectReference Include="libeay.vcxproj">
<Project>{e5b04cc0-eb4c-42ab-b4dc-18ef95f864b0}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="ssleay.vcxproj">
<Project>{10615b24-73bf-4efa-93aa-236916321317}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="_socket.vcxproj"> <ProjectReference Include="_socket.vcxproj">
<Project>{86937f53-c189-40ef-8ce8-8759d8e7d480}</Project> <Project>{86937f53-c189-40ef-8ce8-8759d8e7d480}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly> <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
@ -94,4 +87,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
</ImportGroup> </ImportGroup>
</Project> </Project>

View file

@ -9,5 +9,11 @@
<ClCompile Include="..\Modules\_ssl.c"> <ClCompile Include="..\Modules\_ssl.c">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="$(opensslIncludeDir)\applink.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\PC\python_nt.rc" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View file

@ -76,19 +76,23 @@
<ItemGroup> <ItemGroup>
<ResourceCompile Include="..\PC\python_nt.rc" /> <ResourceCompile Include="..\PC\python_nt.rc" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<_TclTkDLL Include="$(tcltkdir)\bin\$(tclDllName)" />
<_TclTkDLL Include="$(tcltkdir)\bin\$(tkDllName)" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="pythoncore.vcxproj"> <ProjectReference Include="pythoncore.vcxproj">
<Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project> <Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly> <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference> </ProjectReference>
<ProjectReference Include="tcl.vcxproj">
<Project>{b5fd6f1d-129e-4bff-9340-03606fac7283}</Project>
</ProjectReference>
<ProjectReference Include="tk.vcxproj">
<Project>{7e85eccf-a72c-4da4-9e52-884508e80ba1}</Project>
</ProjectReference>
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
</ImportGroup> </ImportGroup>
<Target Name="_CopyTclTkDLL" Inputs="@(_TclTkDLL)" Outputs="@(_TclTkDLL->'$(OutDir)%(Filename)%(Extension)')" AfterTargets="Build">
<Copy SourceFiles="@(_TclTkDLL)" DestinationFolder="$(OutDir)" />
</Target>
<Target Name="_CleanTclTkDLL" BeforeTargets="Clean">
<Delete Files="@(_TclTkDLL->'$(OutDir)%(Filename)%(Extension)')" />
</Target>
</Project> </Project>

View file

@ -5,8 +5,6 @@ echo.%~nx0 [flags and arguments] [quoted MSBuild options]
echo. echo.
echo.Build CPython from the command line. Requires the appropriate echo.Build CPython from the command line. Requires the appropriate
echo.version(s) of Microsoft Visual Studio to be installed (see readme.txt). echo.version(s) of Microsoft Visual Studio to be installed (see readme.txt).
echo.Also requires Subversion (svn.exe) to be on PATH if the '-e' flag is
echo.given.
echo. echo.
echo.After the flags recognized by this script, up to 9 arguments to be passed echo.After the flags recognized by this script, up to 9 arguments to be passed
echo.directly to MSBuild may be passed. If the argument contains an '=', the echo.directly to MSBuild may be passed. If the argument contains an '=', the

View file

@ -29,6 +29,14 @@
@where msbuild > "%TEMP%\msbuild.loc" 2> nul && set /P MSBUILD= < "%TEMP%\msbuild.loc" & del "%TEMP%\msbuild.loc" @where msbuild > "%TEMP%\msbuild.loc" 2> nul && set /P MSBUILD= < "%TEMP%\msbuild.loc" & del "%TEMP%\msbuild.loc"
@if exist "%MSBUILD%" set MSBUILD="%MSBUILD%" & (set _Py_MSBuild_Source=PATH) & goto :found @if exist "%MSBUILD%" set MSBUILD="%MSBUILD%" & (set _Py_MSBuild_Source=PATH) & goto :found
@rem VS 2015 and earlier register MSBuild separately, so we can find it.
@rem Prefer MSBuild 14.0 over MSBuild 15.0, since the latter may not be able to find a VC14 install.
@reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0" /v MSBuildToolsPath /reg:32 >nul 2>nul
@if NOT ERRORLEVEL 1 @for /F "tokens=1,2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0" /v MSBuildToolsPath /reg:32') DO @(
@if "%%i"=="MSBuildToolsPath" @if exist "%%k\msbuild.exe" @(set MSBUILD="%%k\msbuild.exe")
)
@if exist %MSBUILD% (set _Py_MSBuild_Source=registry) & goto :found
@rem VS 2017 sets exactly one install as the "main" install, so we may find MSBuild in there. @rem VS 2017 sets exactly one install as the "main" install, so we may find MSBuild in there.
@reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v 15.0 /reg:32 >nul 2>nul @reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v 15.0 /reg:32 >nul 2>nul
@if NOT ERRORLEVEL 1 @for /F "tokens=1,2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v 15.0 /reg:32') DO @( @if NOT ERRORLEVEL 1 @for /F "tokens=1,2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VS7" /v 15.0 /reg:32') DO @(
@ -36,13 +44,6 @@
) )
@if exist %MSBUILD% (set _Py_MSBuild_Source=Visual Studio 2017 registry) & goto :found @if exist %MSBUILD% (set _Py_MSBuild_Source=Visual Studio 2017 registry) & goto :found
@rem VS 2015 and earlier register MSBuild separately, so we can find it.
@reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0" /v MSBuildToolsPath /reg:32 >nul 2>nul
@if NOT ERRORLEVEL 1 @for /F "tokens=1,2*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0" /v MSBuildToolsPath /reg:32') DO @(
@if "%%i"=="MSBuildToolsPath" @if exist "%%k\msbuild.exe" @(set MSBUILD="%%k\msbuild.exe")
)
@if exist %MSBUILD% (set _Py_MSBuild_Source=registry) & goto :found
@exit /b 1 @exit /b 1

57
PCbuild/find_python.bat Normal file
View file

@ -0,0 +1,57 @@
@rem
@rem Searches for python.exe and may download a private copy from nuget.
@rem
@rem This file is supposed to modify the state of the caller (specifically
@rem the MSBUILD variable), so we do not use setlocal or echo, and avoid
@rem changing any other persistent state.
@rem
@rem No arguments provided means do full search
@if '%1' EQU '' goto :begin_search
@rem One argument may be the full path. Use a goto so we don't try to
@rem parse the next if statement - incorrect quoting in the multi-arg
@rem case can cause us to break immediately.
@if '%2' EQU '' goto :one_arg
@rem Entire command line may represent the full path if quoting failed.
@if exist "%*" (set PYTHON="%*") & (set _Py_Python_Source=from environment) & goto :found
@goto :begin_search
:one_arg
@if exist "%~1" (set PYTHON="%~1") & (set _Py_Python_Source=from environment) & goto :found
:begin_search
@set PYTHON=
@set _Py_EXTERNALS_DIR=%EXTERNAL_DIR%
@if "%_Py_EXTERNALS_DIR%"=="" (set _Py_EXTERNALS_DIR=%~dp0\..\externals)
@rem If we have Python in externals, use that one
@if exist "%_Py_EXTERNALS_DIR%\pythonx86\tools\python.exe" (set PYTHON="%_Py_EXTERNALS_DIR%\pythonx86\tools\python.exe") & (set _Py_Python_Source=found in externals directory) & goto :found
@rem If py.exe finds a recent enough version, use that one
@py -3.6 -V >nul 2>&1 && (set PYTHON=py -3.6) && (set _Py_Python_Source=found with py.exe) && goto :found
@if NOT exist "%_Py_EXTERNALS_DIR%" mkdir "%_Py_EXTERNALS_DIR%"
@set _Py_NUGET=%NUGET%
@set _Py_NUGET_URL=%NUGET_URL%
@if "%_Py_NUGET%"=="" (set _Py_NUGET=%EXTERNALS_DIR%\nuget.exe)
@if "%_Py_NUGET_URL%"=="" (set _Py_NUGET_URL=https://aka.ms/nugetclidl)
@if NOT exist "%_Py_NUGET%" (
@echo Downloading nuget...
@rem NB: Must use single quotes around NUGET here, NOT double!
@rem Otherwise, a space in the path would break things
@powershell.exe -Command Invoke-WebRequest %_Py_NUGET_URL% -OutFile '%_Py_NUGET%'
)
@echo Installing Python via nuget...
@"%_Py_NUGET%" install pythonx86 -ExcludeVersion -OutputDirectory "%_Py_EXTERNALS_DIR%"
@rem Quote it here; it's not quoted later because "py -3.6" wouldn't work
@if not errorlevel 1 (set PYTHON="%_Py_EXTERNALS_DIR%\pythonx86\tools\python.exe") & (set _Py_Python_Source=found on nuget.org) & goto :found
@exit /b 1
:found
@echo Using %PYTHON% (%_Py_Python_Source%)
@set _Py_Python_Source=

View file

@ -4,20 +4,27 @@ rem Simple script to fetch source for external libraries
if "%PCBUILD%"=="" (set PCBUILD=%~dp0) if "%PCBUILD%"=="" (set PCBUILD=%~dp0)
if "%EXTERNALS_DIR%"=="" (set EXTERNALS_DIR=%PCBUILD%\..\externals) if "%EXTERNALS_DIR%"=="" (set EXTERNALS_DIR=%PCBUILD%\..\externals)
if "%NUGET%"=="" (set NUGET=%EXTERNALS_DIR%\nuget.exe)
if "%NUGET_URL%"=="" (set NUGET_URL=https://aka.ms/nugetclidl)
set DO_FETCH=true set DO_FETCH=true
set DO_CLEAN=false set DO_CLEAN=false
set IncludeTkinterSrc=false
set IncludeSSLSrc=false
:CheckOpts :CheckOpts
if "%~1"=="--no-tkinter" (set IncludeTkinter=false) & shift & goto CheckOpts if "%~1"=="--no-tkinter" (set IncludeTkinter=false) & shift & goto CheckOpts
if "%~1"=="--no-openssl" (set IncludeSSL=false) & shift & goto CheckOpts if "%~1"=="--no-openssl" (set IncludeSSL=false) & shift & goto CheckOpts
if "%~1"=="--python" (set PYTHON_FOR_BUILD=%2) & shift & shift & goto CheckOpts if "%~1"=="--tkinter-src" (set IncludeTkinterSrc=true) & shift & goto CheckOpts
if "%~1"=="--openssl-src" (set IncludeSSLSrc=true) & shift & goto CheckOpts
if "%~1"=="--python" (set PYTHON=%2) & shift & shift & goto CheckOpts
if "%~1"=="--organization" (set ORG=%2) & shift & shift & goto CheckOpts if "%~1"=="--organization" (set ORG=%2) & shift & shift & goto CheckOpts
if "%~1"=="-c" (set DO_CLEAN=true) & shift & goto CheckOpts if "%~1"=="-c" (set DO_CLEAN=true) & shift & goto CheckOpts
if "%~1"=="--clean" (set DO_CLEAN=true) & shift & goto CheckOpts if "%~1"=="--clean" (set DO_CLEAN=true) & shift & goto CheckOpts
if "%~1"=="--clean-only" (set DO_FETCH=false) & goto clean if "%~1"=="--clean-only" (set DO_FETCH=false) & goto clean
rem Include old options for compatibility
if "%~1"=="--no-tkinter" shift & goto CheckOpts
if "%~1"=="--no-openssl" shift & goto CheckOpts
if "x%~1" NEQ "x" goto usage if "x%~1" NEQ "x" goto usage
if "%DO_CLEAN%"=="false" goto fetch if "%DO_CLEAN%"=="false" goto fetch
@ -32,57 +39,41 @@ if "%DO_FETCH%"=="false" goto end
:fetch :fetch
if "%ORG%"=="" (set ORG=python) if "%ORG%"=="" (set ORG=python)
call "%PCBUILD%find_python.bat" "%PYTHON%"
if "%PYTHON_FOR_BUILD%"=="" (
echo Checking for installed python...
py -3.6 -V >nul 2>&1 && (set PYTHON_FOR_BUILD=py -3.6)
)
if "%PYTHON_FOR_BUILD%"=="" (
if NOT exist "%EXTERNALS_DIR%" mkdir "%EXTERNALS_DIR%"
if NOT exist "%NUGET%" (
echo Downloading nuget...
rem NB: Must use single quotes around NUGET here, NOT double!
rem Otherwise, a space in the path would break things
powershell.exe -Command Invoke-WebRequest %NUGET_URL% -OutFile '%NUGET%'
)
echo Installing Python via nuget...
"%NUGET%" install pythonx86 -ExcludeVersion -OutputDirectory "%EXTERNALS_DIR%"
rem Quote it here; it's not quoted later because "py -3.6" wouldn't work
set PYTHON_FOR_BUILD="%EXTERNALS_DIR%\pythonx86\tools\python.exe"
)
echo.Fetching external libraries... echo.Fetching external libraries...
set libraries= set libraries=
set libraries=%libraries% bzip2-1.0.6 set libraries=%libraries% bzip2-1.0.6
if NOT "%IncludeSSL%"=="false" set libraries=%libraries% openssl-1.0.2k if NOT "%IncludeSSLSrc%"=="false" set libraries=%libraries% openssl-1.0.2k
set libraries=%libraries% sqlite-3.14.2.0 set libraries=%libraries% sqlite-3.14.2.0
if NOT "%IncludeTkinter%"=="false" set libraries=%libraries% tcl-core-8.6.6.0 if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.6.0
if NOT "%IncludeTkinter%"=="false" set libraries=%libraries% tk-8.6.6.0 if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tk-8.6.6.0
if NOT "%IncludeTkinter%"=="false" set libraries=%libraries% tix-8.4.3.6 if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tix-8.4.3.6
set libraries=%libraries% xz-5.2.2 set libraries=%libraries% xz-5.2.2
for %%e in (%libraries%) do ( for %%e in (%libraries%) do (
if exist "%EXTERNALS_DIR%\%%e" ( if exist "%EXTERNALS_DIR%\%%e" (
echo.%%e already exists, skipping. echo.%%e already exists, skipping.
) else ( ) else (
echo.Fetching %%e... echo.Fetching %%e...
%PYTHON_FOR_BUILD% "%PCBUILD%get_external.py" -O %ORG% %%e %PYTHON% "%PCBUILD%get_external.py" -O %ORG% %%e
) )
) )
echo.Fetching external binaries... echo.Fetching external binaries...
set binaries= set binaries=
set binaries=%binaries% if NOT "%IncludeSSL%"=="false" set binaries=%binaries% openssl-bin-1.0.2k
if NOT "%IncludeSSL%"=="false" set binaries=%binaries% nasm-2.11.06 if NOT "%IncludeTkinter%"=="false" set binaries=%binaries% tcltk-8.6.6.0
if NOT "%IncludeSSLSrc%"=="false" set binaries=%binaries% nasm-2.11.06
for %%b in (%binaries%) do ( for %%b in (%binaries%) do (
if exist "%EXTERNALS_DIR%\%%b" ( if exist "%EXTERNALS_DIR%\%%b" (
echo.%%b already exists, skipping. echo.%%b already exists, skipping.
) else ( ) else (
echo.Fetching %%b... echo.Fetching %%b...
%PYTHON_FOR_BUILD% "%PCBUILD%get_external.py" -b -O %ORG% %%b %PYTHON% "%PCBUILD%get_external.py" -b -O %ORG% %%b
) )
) )

View file

@ -1,907 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="PGInstrument|Win32">
<Configuration>PGInstrument</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="PGInstrument|x64">
<Configuration>PGInstrument</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="PGUpdate|Win32">
<Configuration>PGUpdate</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="PGUpdate|x64">
<Configuration>PGUpdate</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}</ProjectGuid>
<RootNamespace>libeay</RootNamespace>
</PropertyGroup>
<Import Project="python.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<Import Project="openssl.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Target Name="CreateBuildinfH" Inputs="$(MSBuildProjectFullPath)" Outputs="$(IntDir)\buildinf.h" AfterTargets="PrepareForBuild">
<PropertyGroup>
<_DATEValue>#define DATE "$([System.DateTime]::Now.ToString(`ddd MMM dd HH':'mm':'ss yyyy`))"</_DATEValue>
<_CFLAGSValue>#define CFLAGS "cl /MD /Ox -W3 -Gs0 -Gy -nologo @(PreprocessorDefinitions->'-D%(Identity)',' ')"</_CFLAGSValue>
<_PLATFORMValue Condition="$(Platform)=='Win32'">#define PLATFORM "VC-WIN32"</_PLATFORMValue>
<_PLATFORMValue Condition="$(Platform)=='x64'">#define PLATFORM "VC-WIN64A"</_PLATFORMValue>
</PropertyGroup>
<WriteLinesToFile File="$(IntDir)\buildinf.h"
Lines="$(_DATEValue);$(_CFLAGSValue);$(_PLATFORMValue)"
Overwrite="true" />
<Message Text="Updating buildinf.h:
$(_DATEValue)
$(_CFLAGSValue)
$(_PLATFORMValue)" Importance="normal" />
</Target>
<Target Name="SuppressOriginalBuildinfH" Condition="Exists('$(opensslDir)crypto\buildinf.h')" BeforeTargets="PrepareForBuild">
<Move SourceFiles="$(opensslDir)crypto\buildinf.h" DestinationFiles="$(opensslDir)crypto\buildinf.h.orig" />
</Target>
<ItemGroup>
<ClCompile Include="$(opensslDir)crypto\cversion.c">
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemGroup>
<ItemGroup>
<!--
<ClCompile Include="$(opensslDir)apps\errstr.c" />
<ClCompile Include="$(opensslDir)crypto\aes\aes_cfb.c" />
<ClCompile Include="$(opensslDir)crypto\aes\aes_ctr.c" />
<ClCompile Include="$(opensslDir)crypto\aes\aes_ecb.c" />
-->
<ClCompile Include="$(opensslDir)crypto\aes\aes_ige.c" />
<ClCompile Include="$(opensslDir)crypto\aes\aes_misc.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\aes\aes_ofb.c" />
-->
<ClCompile Include="$(opensslDir)crypto\aes\aes_wrap.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_bitstr.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_bool.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_bytes.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_d2i_fp.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_digest.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_dup.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_enum.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_gentm.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_i2d_fp.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_int.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_mbstr.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_object.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_octet.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_print.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_set.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_sign.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_strex.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_strnid.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_time.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_type.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_utctm.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_utf8.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\a_verify.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\ameth_lib.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\asn_mime.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\asn_moid.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\asn_pack.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\asn1_err.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\asn1_gen.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\asn1_lib.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\asn1_par.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\bio_asn1.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\bio_ndef.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\d2i_pr.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\asn1\d2i_pu.c" />
-->
<ClCompile Include="$(opensslDir)crypto\asn1\evp_asn1.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\asn1\f_enum.c" />
-->
<ClCompile Include="$(opensslDir)crypto\asn1\f_int.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\f_string.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\i2d_pr.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\asn1\i2d_pu.c" />
-->
<ClCompile Include="$(opensslDir)crypto\asn1\n_pkey.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\nsseq.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\p5_pbe.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\p5_pbev2.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\p8_pkey.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\asn1\t_bitst.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\t_crl.c" />
-->
<ClCompile Include="$(opensslDir)crypto\asn1\t_pkey.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\asn1\t_req.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\t_spki.c" />
-->
<ClCompile Include="$(opensslDir)crypto\asn1\t_x509.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\t_x509a.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\tasn_dec.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\tasn_enc.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\tasn_fre.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\tasn_new.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\tasn_prn.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\tasn_typ.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\tasn_utl.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\x_algor.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\x_attrib.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\x_bignum.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\x_crl.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\x_exten.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\x_info.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\x_long.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\x_name.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\x_nx509.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\x_pkey.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\x_pubkey.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\x_req.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\x_sig.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\x_spki.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\x_val.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\x_x509.c" />
<ClCompile Include="$(opensslDir)crypto\asn1\x_x509a.c" />
<ClCompile Include="$(opensslDir)crypto\bf\bf_cfb64.c" />
<ClCompile Include="$(opensslDir)crypto\bf\bf_ecb.c" />
<ClCompile Include="$(opensslDir)crypto\bf\bf_ofb64.c" />
<ClCompile Include="$(opensslDir)crypto\bf\bf_skey.c" />
<ClCompile Include="$(opensslDir)crypto\bio\b_dump.c" />
<ClCompile Include="$(opensslDir)crypto\bio\b_print.c" />
<ClCompile Include="$(opensslDir)crypto\bio\b_sock.c" />
<ClCompile Include="$(opensslDir)crypto\bio\bf_buff.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\bio\bf_nbio.c" />
<ClCompile Include="$(opensslDir)crypto\bio\bf_null.c" />
<ClCompile Include="$(opensslDir)crypto\bio\bio_cb.c" />
-->
<ClCompile Include="$(opensslDir)crypto\bio\bio_err.c" />
<ClCompile Include="$(opensslDir)crypto\bio\bio_lib.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\bio\bss_acpt.c" />
<ClCompile Include="$(opensslDir)crypto\bio\bss_bio.c" />
-->
<ClCompile Include="$(opensslDir)crypto\bio\bss_conn.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\bio\bss_dgram.c" />
<ClCompile Include="$(opensslDir)crypto\bio\bss_fd.c" />
-->
<ClCompile Include="$(opensslDir)crypto\bio\bss_file.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\bio\bss_log.c" />
-->
<ClCompile Include="$(opensslDir)crypto\bio\bss_mem.c" />
<ClCompile Include="$(opensslDir)crypto\bio\bss_null.c" />
<ClCompile Include="$(opensslDir)crypto\bio\bss_sock.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_add.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_blind.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\bn\bn_const.c" />
-->
<ClCompile Include="$(opensslDir)crypto\bn\bn_ctx.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\bn\bn_depr.c" />
-->
<ClCompile Include="$(opensslDir)crypto\bn\bn_div.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_err.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_exp.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_exp2.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_gcd.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_gf2m.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_kron.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_lib.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_mod.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_mont.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\bn\bn_mpi.c" />
-->
<ClCompile Include="$(opensslDir)crypto\bn\bn_mul.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_nist.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_prime.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_print.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_rand.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_recp.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_shift.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_sqr.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_sqrt.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_word.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\bn\bn_x931p.c" />
-->
<ClCompile Include="$(opensslDir)crypto\buffer\buf_err.c" />
<ClCompile Include="$(opensslDir)crypto\buffer\buf_str.c" />
<ClCompile Include="$(opensslDir)crypto\buffer\buffer.c" />
<ClCompile Include="$(opensslDir)crypto\camellia\cmll_cfb.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\camellia\cmll_ctr.c" />
-->
<ClCompile Include="$(opensslDir)crypto\camellia\cmll_ecb.c" />
<ClCompile Include="$(opensslDir)crypto\camellia\cmll_ofb.c" />
<ClCompile Include="$(opensslDir)crypto\camellia\cmll_utl.c" />
<ClCompile Include="$(opensslDir)crypto\cast\c_cfb64.c" />
<ClCompile Include="$(opensslDir)crypto\cast\c_ecb.c" />
<ClCompile Include="$(opensslDir)crypto\cast\c_ofb64.c" />
<ClCompile Include="$(opensslDir)crypto\cast\c_skey.c" />
<ClCompile Include="$(opensslDir)crypto\cmac\cm_ameth.c" />
<ClCompile Include="$(opensslDir)crypto\cmac\cm_pmeth.c" />
<ClCompile Include="$(opensslDir)crypto\cmac\cmac.c" />
<ClCompile Include="$(opensslDir)crypto\cms\cms_asn1.c" />
<ClCompile Include="$(opensslDir)crypto\cms\cms_att.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\cms\cms_cd.c" />
-->
<ClCompile Include="$(opensslDir)crypto\cms\cms_dd.c" />
<ClCompile Include="$(opensslDir)crypto\cms\cms_enc.c" />
<ClCompile Include="$(opensslDir)crypto\cms\cms_env.c" />
<ClCompile Include="$(opensslDir)crypto\cms\cms_err.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\cms\cms_ess.c" />
-->
<ClCompile Include="$(opensslDir)crypto\cms\cms_io.c" />
<ClCompile Include="$(opensslDir)crypto\cms\cms_kari.c" />
<ClCompile Include="$(opensslDir)crypto\cms\cms_lib.c" />
<ClCompile Include="$(opensslDir)crypto\cms\cms_pwri.c" />
<ClCompile Include="$(opensslDir)crypto\cms\cms_sd.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\cms\cms_smime.c" />
<ClCompile Include="$(opensslDir)crypto\comp\c_rle.c" />
-->
<ClCompile Include="$(opensslDir)crypto\comp\c_zlib.c" />
<ClCompile Include="$(opensslDir)crypto\comp\comp_err.c" />
<ClCompile Include="$(opensslDir)crypto\comp\comp_lib.c" />
<ClCompile Include="$(opensslDir)crypto\conf\conf_api.c" />
<ClCompile Include="$(opensslDir)crypto\conf\conf_def.c" />
<ClCompile Include="$(opensslDir)crypto\conf\conf_err.c" />
<ClCompile Include="$(opensslDir)crypto\conf\conf_lib.c" />
<ClCompile Include="$(opensslDir)crypto\conf\conf_mall.c" />
<ClCompile Include="$(opensslDir)crypto\conf\conf_mod.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\conf\conf_sap.c" />
-->
<ClCompile Include="$(opensslDir)crypto\cpt_err.c" />
<ClCompile Include="$(opensslDir)crypto\cryptlib.c" />
<ClCompile Include="$(opensslDir)crypto\des\cbc_cksm.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\des\cbc_enc.c" />
-->
<ClCompile Include="$(opensslDir)crypto\des\cfb_enc.c" />
<ClCompile Include="$(opensslDir)crypto\des\cfb64ede.c" />
<ClCompile Include="$(opensslDir)crypto\des\cfb64enc.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\des\des_old.c" />
<ClCompile Include="$(opensslDir)crypto\des\des_old2.c" />
-->
<ClCompile Include="$(opensslDir)crypto\des\ecb_enc.c" />
<ClCompile Include="$(opensslDir)crypto\des\ecb3_enc.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\des\ede_cbcm_enc.c" />
<ClCompile Include="$(opensslDir)crypto\des\enc_read.c" />
<ClCompile Include="$(opensslDir)crypto\des\enc_writ.c" />
<ClCompile Include="$(opensslDir)crypto\des\fcrypt.c" />
<ClCompile Include="$(opensslDir)crypto\des\ofb_enc.c" />
-->
<ClCompile Include="$(opensslDir)crypto\des\ofb64ede.c" />
<ClCompile Include="$(opensslDir)crypto\des\ofb64enc.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\des\pcbc_enc.c" />
<ClCompile Include="$(opensslDir)crypto\des\qud_cksm.c" />
<ClCompile Include="$(opensslDir)crypto\des\rand_key.c" />
<ClCompile Include="$(opensslDir)crypto\des\read2pwd.c" />
<ClCompile Include="$(opensslDir)crypto\des\rpc_enc.c" />
-->
<ClCompile Include="$(opensslDir)crypto\des\set_key.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\des\str2key.c" />
-->
<ClCompile Include="$(opensslDir)crypto\des\xcbc_enc.c" />
<ClCompile Include="$(opensslDir)crypto\dh\dh_ameth.c" />
<ClCompile Include="$(opensslDir)crypto\dh\dh_asn1.c" />
<ClCompile Include="$(opensslDir)crypto\dh\dh_check.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\dh\dh_depr.c" />
-->
<ClCompile Include="$(opensslDir)crypto\dh\dh_err.c" />
<ClCompile Include="$(opensslDir)crypto\dh\dh_gen.c" />
<ClCompile Include="$(opensslDir)crypto\dh\dh_kdf.c" />
<ClCompile Include="$(opensslDir)crypto\dh\dh_key.c" />
<ClCompile Include="$(opensslDir)crypto\dh\dh_lib.c" />
<ClCompile Include="$(opensslDir)crypto\dh\dh_pmeth.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\dh\dh_prn.c" />
-->
<ClCompile Include="$(opensslDir)crypto\dh\dh_rfc5114.c" />
<ClCompile Include="$(opensslDir)crypto\dsa\dsa_ameth.c" />
<ClCompile Include="$(opensslDir)crypto\dsa\dsa_asn1.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\dsa\dsa_depr.c" />
-->
<ClCompile Include="$(opensslDir)crypto\dsa\dsa_err.c" />
<ClCompile Include="$(opensslDir)crypto\dsa\dsa_gen.c" />
<ClCompile Include="$(opensslDir)crypto\dsa\dsa_key.c" />
<ClCompile Include="$(opensslDir)crypto\dsa\dsa_lib.c" />
<ClCompile Include="$(opensslDir)crypto\dsa\dsa_ossl.c" />
<ClCompile Include="$(opensslDir)crypto\dsa\dsa_pmeth.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\dsa\dsa_prn.c" />
-->
<ClCompile Include="$(opensslDir)crypto\dsa\dsa_sign.c" />
<ClCompile Include="$(opensslDir)crypto\dsa\dsa_vrf.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\dso\dso_beos.c" />
<ClCompile Include="$(opensslDir)crypto\dso\dso_dl.c" />
<ClCompile Include="$(opensslDir)crypto\dso\dso_dlfcn.c" />
-->
<ClCompile Include="$(opensslDir)crypto\dso\dso_err.c" />
<ClCompile Include="$(opensslDir)crypto\dso\dso_lib.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\dso\dso_null.c" />
-->
<ClCompile Include="$(opensslDir)crypto\dso\dso_openssl.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\dso\dso_vms.c" />
-->
<ClCompile Include="$(opensslDir)crypto\dso\dso_win32.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\ebcdic.c" />
-->
<ClCompile Include="$(opensslDir)crypto\ec\ec_ameth.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ec_asn1.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\ec\ec_check.c" />
-->
<ClCompile Include="$(opensslDir)crypto\ec\ec_curve.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ec_cvt.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ec_err.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ec_key.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ec_lib.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ec_mult.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ec_oct.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ec_pmeth.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ec_print.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ec2_mult.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ec2_oct.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ec2_smpl.c" />
<ClCompile Include="$(opensslDir)crypto\ec\eck_prn.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ecp_mont.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ecp_nist.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\ec\ecp_nistp224.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ecp_nistp256.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ecp_nistp521.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ecp_nistputil.c" />
-->
<ClCompile Include="$(opensslDir)crypto\ec\ecp_oct.c" />
<ClCompile Include="$(opensslDir)crypto\ec\ecp_smpl.c" />
<ClCompile Include="$(opensslDir)crypto\ecdh\ech_err.c" />
<ClCompile Include="$(opensslDir)crypto\ecdh\ech_kdf.c" />
<ClCompile Include="$(opensslDir)crypto\ecdh\ech_key.c" />
<ClCompile Include="$(opensslDir)crypto\ecdh\ech_lib.c" />
<ClCompile Include="$(opensslDir)crypto\ecdh\ech_ossl.c" />
<ClCompile Include="$(opensslDir)crypto\ecdsa\ecs_asn1.c" />
<ClCompile Include="$(opensslDir)crypto\ecdsa\ecs_err.c" />
<ClCompile Include="$(opensslDir)crypto\ecdsa\ecs_lib.c" />
<ClCompile Include="$(opensslDir)crypto\ecdsa\ecs_ossl.c" />
<ClCompile Include="$(opensslDir)crypto\ecdsa\ecs_sign.c" />
<ClCompile Include="$(opensslDir)crypto\ecdsa\ecs_vrf.c" />
<ClCompile Include="$(opensslDir)crypto\engine\eng_all.c" />
<ClCompile Include="$(opensslDir)crypto\engine\eng_cnf.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\engine\eng_cryptodev.c" />
-->
<ClCompile Include="$(opensslDir)crypto\engine\eng_ctrl.c" />
<ClCompile Include="$(opensslDir)crypto\engine\eng_dyn.c" />
<ClCompile Include="$(opensslDir)crypto\engine\eng_err.c" />
<ClCompile Include="$(opensslDir)crypto\engine\eng_fat.c" />
<ClCompile Include="$(opensslDir)crypto\engine\eng_init.c" />
<ClCompile Include="$(opensslDir)crypto\engine\eng_lib.c" />
<ClCompile Include="$(opensslDir)crypto\engine\eng_list.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\engine\eng_openssl.c" />
-->
<ClCompile Include="$(opensslDir)crypto\engine\eng_pkey.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\engine\eng_rdrand.c" />
<ClCompile Include="$(opensslDir)crypto\engine\eng_rsax.c" />
-->
<ClCompile Include="$(opensslDir)crypto\engine\eng_table.c" />
<ClCompile Include="$(opensslDir)crypto\engine\tb_asnmth.c" />
<ClCompile Include="$(opensslDir)crypto\engine\tb_cipher.c" />
<ClCompile Include="$(opensslDir)crypto\engine\tb_dh.c" />
<ClCompile Include="$(opensslDir)crypto\engine\tb_digest.c" />
<ClCompile Include="$(opensslDir)crypto\engine\tb_dsa.c" />
<ClCompile Include="$(opensslDir)crypto\engine\tb_ecdh.c" />
<ClCompile Include="$(opensslDir)crypto\engine\tb_ecdsa.c" />
<ClCompile Include="$(opensslDir)crypto\engine\tb_pkmeth.c" />
<ClCompile Include="$(opensslDir)crypto\engine\tb_rand.c" />
<ClCompile Include="$(opensslDir)crypto\engine\tb_rsa.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\engine\tb_store.c" />
-->
<ClCompile Include="$(opensslDir)crypto\err\err.c" />
<ClCompile Include="$(opensslDir)crypto\err\err_all.c" />
<ClCompile Include="$(opensslDir)crypto\err\err_prn.c" />
<ClCompile Include="$(opensslDir)crypto\evp\bio_b64.c" />
<ClCompile Include="$(opensslDir)crypto\evp\bio_enc.c" />
<ClCompile Include="$(opensslDir)crypto\evp\bio_md.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\evp\bio_ok.c" />
-->
<ClCompile Include="$(opensslDir)crypto\evp\c_all.c" />
<ClCompile Include="$(opensslDir)crypto\evp\c_allc.c" />
<ClCompile Include="$(opensslDir)crypto\evp\c_alld.c" />
<ClCompile Include="$(opensslDir)crypto\evp\digest.c" />
<ClCompile Include="$(opensslDir)crypto\evp\e_aes.c" />
<ClCompile Include="$(opensslDir)crypto\evp\e_aes_cbc_hmac_sha1.c" />
<ClCompile Include="$(opensslDir)crypto\evp\e_aes_cbc_hmac_sha256.c" />
<ClCompile Include="$(opensslDir)crypto\evp\e_bf.c" />
<ClCompile Include="$(opensslDir)crypto\evp\e_camellia.c" />
<ClCompile Include="$(opensslDir)crypto\evp\e_cast.c" />
<ClCompile Include="$(opensslDir)crypto\evp\e_des.c" />
<ClCompile Include="$(opensslDir)crypto\evp\e_des3.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\evp\e_idea.c" />
-->
<ClCompile Include="$(opensslDir)crypto\evp\e_null.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\evp\e_old.c" />
-->
<ClCompile Include="$(opensslDir)crypto\evp\e_rc2.c" />
<ClCompile Include="$(opensslDir)crypto\evp\e_rc4.c" />
<ClCompile Include="$(opensslDir)crypto\evp\e_rc4_hmac_md5.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\evp\e_rc5.c" />
-->
<ClCompile Include="$(opensslDir)crypto\evp\e_seed.c" />
<ClCompile Include="$(opensslDir)crypto\evp\e_xcbc_d.c" />
<ClCompile Include="$(opensslDir)crypto\evp\encode.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\evp\evp_acnf.c" />
-->
<ClCompile Include="$(opensslDir)crypto\evp\evp_cnf.c" />
<ClCompile Include="$(opensslDir)crypto\evp\evp_enc.c" />
<ClCompile Include="$(opensslDir)crypto\evp\evp_err.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\evp\evp_fips.c" />
-->
<ClCompile Include="$(opensslDir)crypto\evp\evp_key.c" />
<ClCompile Include="$(opensslDir)crypto\evp\evp_lib.c" />
<ClCompile Include="$(opensslDir)crypto\evp\evp_pbe.c" />
<ClCompile Include="$(opensslDir)crypto\evp\evp_pkey.c" />
<ClCompile Include="$(opensslDir)crypto\evp\m_dss.c" />
<ClCompile Include="$(opensslDir)crypto\evp\m_dss1.c" />
<ClCompile Include="$(opensslDir)crypto\evp\m_ecdsa.c" />
<ClCompile Include="$(opensslDir)crypto\evp\m_md4.c" />
<ClCompile Include="$(opensslDir)crypto\evp\m_md5.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\evp\m_null.c" />
-->
<ClCompile Include="$(opensslDir)crypto\evp\m_ripemd.c" />
<ClCompile Include="$(opensslDir)crypto\evp\m_sha.c" />
<ClCompile Include="$(opensslDir)crypto\evp\m_sha1.c" />
<ClCompile Include="$(opensslDir)crypto\evp\m_sigver.c" />
<ClCompile Include="$(opensslDir)crypto\evp\m_wp.c" />
<ClCompile Include="$(opensslDir)crypto\evp\names.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\evp\p_dec.c" />
-->
<ClCompile Include="$(opensslDir)crypto\evp\p_lib.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\evp\p_open.c" />
<ClCompile Include="$(opensslDir)crypto\evp\p_seal.c" />
-->
<ClCompile Include="$(opensslDir)crypto\evp\p_sign.c" />
<ClCompile Include="$(opensslDir)crypto\evp\p_verify.c" />
<ClCompile Include="$(opensslDir)crypto\evp\p5_crpt.c" />
<ClCompile Include="$(opensslDir)crypto\evp\p5_crpt2.c" />
<ClCompile Include="$(opensslDir)crypto\evp\pmeth_fn.c" />
<ClCompile Include="$(opensslDir)crypto\evp\pmeth_gn.c" />
<ClCompile Include="$(opensslDir)crypto\evp\pmeth_lib.c" />
<ClCompile Include="$(opensslDir)crypto\ex_data.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\fips_ers.c" />
-->
<ClCompile Include="$(opensslDir)crypto\hmac\hm_ameth.c" />
<ClCompile Include="$(opensslDir)crypto\hmac\hm_pmeth.c" />
<ClCompile Include="$(opensslDir)crypto\hmac\hmac.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\krb5\krb5_asn.c" />
<ClCompile Include="$(opensslDir)crypto\lhash\lh_stats.c" />
-->
<ClCompile Include="$(opensslDir)crypto\lhash\lhash.c" />
<ClCompile Include="$(opensslDir)crypto\md4\md4_dgst.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\md4\md4_one.c" />
-->
<ClCompile Include="$(opensslDir)crypto\md5\md5_dgst.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\md5\md5_one.c" />
-->
<ClCompile Include="$(opensslDir)crypto\mem.c" />
<ClCompile Include="$(opensslDir)crypto\mem_dbg.c" />
<ClCompile Include="$(opensslDir)crypto\modes\cbc128.c" />
<ClCompile Include="$(opensslDir)crypto\modes\ccm128.c" />
<ClCompile Include="$(opensslDir)crypto\modes\cfb128.c" />
<ClCompile Include="$(opensslDir)crypto\modes\ctr128.c" />
<ClCompile Include="$(opensslDir)crypto\modes\cts128.c" />
<ClCompile Include="$(opensslDir)crypto\modes\gcm128.c" />
<ClCompile Include="$(opensslDir)crypto\modes\ofb128.c" />
<ClCompile Include="$(opensslDir)crypto\modes\wrap128.c" />
<ClCompile Include="$(opensslDir)crypto\modes\xts128.c" />
<ClCompile Include="$(opensslDir)crypto\o_dir.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\o_fips.c" />
-->
<ClCompile Include="$(opensslDir)crypto\o_init.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\o_str.c" />
-->
<ClCompile Include="$(opensslDir)crypto\o_time.c" />
<ClCompile Include="$(opensslDir)crypto\objects\o_names.c" />
<ClCompile Include="$(opensslDir)crypto\objects\obj_dat.c" />
<ClCompile Include="$(opensslDir)crypto\objects\obj_err.c" />
<ClCompile Include="$(opensslDir)crypto\objects\obj_lib.c" />
<ClCompile Include="$(opensslDir)crypto\objects\obj_xref.c" />
<ClCompile Include="$(opensslDir)crypto\ocsp\ocsp_asn.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\ocsp\ocsp_cl.c" />
-->
<ClCompile Include="$(opensslDir)crypto\ocsp\ocsp_err.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\ocsp\ocsp_ext.c" />
-->
<ClCompile Include="$(opensslDir)crypto\ocsp\ocsp_ht.c" />
<ClCompile Include="$(opensslDir)crypto\ocsp\ocsp_lib.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\ocsp\ocsp_prn.c" />
<ClCompile Include="$(opensslDir)crypto\ocsp\ocsp_srv.c" />
<ClCompile Include="$(opensslDir)crypto\ocsp\ocsp_vfy.c" />
-->
<ClCompile Include="$(opensslDir)crypto\pem\pem_all.c" />
<ClCompile Include="$(opensslDir)crypto\pem\pem_err.c" />
<ClCompile Include="$(opensslDir)crypto\pem\pem_info.c" />
<ClCompile Include="$(opensslDir)crypto\pem\pem_lib.c" />
<ClCompile Include="$(opensslDir)crypto\pem\pem_oth.c" />
<ClCompile Include="$(opensslDir)crypto\pem\pem_pk8.c" />
<ClCompile Include="$(opensslDir)crypto\pem\pem_pkey.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\pem\pem_seal.c" />
<ClCompile Include="$(opensslDir)crypto\pem\pem_sign.c" />
-->
<ClCompile Include="$(opensslDir)crypto\pem\pem_x509.c" />
<ClCompile Include="$(opensslDir)crypto\pem\pem_xaux.c" />
<ClCompile Include="$(opensslDir)crypto\pem\pvkfmt.c" />
<ClCompile Include="$(opensslDir)crypto\pkcs12\p12_add.c" />
<ClCompile Include="$(opensslDir)crypto\pkcs12\p12_asn.c" />
<ClCompile Include="$(opensslDir)crypto\pkcs12\p12_attr.c" />
<ClCompile Include="$(opensslDir)crypto\pkcs12\p12_crpt.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\pkcs12\p12_crt.c" />
-->
<ClCompile Include="$(opensslDir)crypto\pkcs12\p12_decr.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\pkcs12\p12_init.c" />
-->
<ClCompile Include="$(opensslDir)crypto\pkcs12\p12_key.c" />
<ClCompile Include="$(opensslDir)crypto\pkcs12\p12_kiss.c" />
<ClCompile Include="$(opensslDir)crypto\pkcs12\p12_mutl.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\pkcs12\p12_npas.c" />
-->
<ClCompile Include="$(opensslDir)crypto\pkcs12\p12_p8d.c" />
<ClCompile Include="$(opensslDir)crypto\pkcs12\p12_p8e.c" />
<ClCompile Include="$(opensslDir)crypto\pkcs12\p12_utl.c" />
<ClCompile Include="$(opensslDir)crypto\pkcs12\pk12err.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\pkcs7\bio_pk7.c" />
-->
<ClCompile Include="$(opensslDir)crypto\pkcs7\pk7_asn1.c" />
<ClCompile Include="$(opensslDir)crypto\pkcs7\pk7_attr.c" />
<ClCompile Include="$(opensslDir)crypto\pkcs7\pk7_doit.c" />
<ClCompile Include="$(opensslDir)crypto\pkcs7\pk7_lib.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\pkcs7\pk7_mime.c" />
<ClCompile Include="$(opensslDir)crypto\pkcs7\pk7_smime.c" />
-->
<ClCompile Include="$(opensslDir)crypto\pkcs7\pkcs7err.c" />
<ClCompile Include="$(opensslDir)crypto\pqueue\pqueue.c" />
<ClCompile Include="$(opensslDir)crypto\rand\md_rand.c" />
<ClCompile Include="$(opensslDir)crypto\rand\rand_egd.c" />
<ClCompile Include="$(opensslDir)crypto\rand\rand_err.c" />
<ClCompile Include="$(opensslDir)crypto\rand\rand_lib.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\rand\rand_nw.c" />
<ClCompile Include="$(opensslDir)crypto\rand\rand_os2.c" />
<ClCompile Include="$(opensslDir)crypto\rand\rand_unix.c" />
-->
<ClCompile Include="$(opensslDir)crypto\rand\rand_win.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\rand\randfile.c" />
-->
<ClCompile Include="$(opensslDir)crypto\rc2\rc2_cbc.c" />
<ClCompile Include="$(opensslDir)crypto\rc2\rc2_ecb.c" />
<ClCompile Include="$(opensslDir)crypto\rc2\rc2_skey.c" />
<ClCompile Include="$(opensslDir)crypto\rc2\rc2cfb64.c" />
<ClCompile Include="$(opensslDir)crypto\rc2\rc2ofb64.c" />
<ClCompile Include="$(opensslDir)crypto\rc4\rc4_utl.c" />
<ClCompile Include="$(opensslDir)crypto\ripemd\rmd_dgst.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\ripemd\rmd_one.c" />
-->
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_ameth.c" />
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_asn1.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_chk.c" />
-->
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_crpt.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_depr.c" />
-->
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_eay.c" />
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_err.c" />
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_gen.c" />
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_lib.c" />
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_none.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_null.c" />
-->
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_oaep.c" />
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_pk1.c" />
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_pmeth.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_prn.c" />
-->
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_pss.c" />
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_saos.c" />
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_sign.c" />
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_ssl.c" />
<ClCompile Include="$(opensslDir)crypto\rsa\rsa_x931.c" />
<ClCompile Include="$(opensslDir)crypto\seed\seed.c" />
<ClCompile Include="$(opensslDir)crypto\seed\seed_cbc.c" />
<ClCompile Include="$(opensslDir)crypto\seed\seed_cfb.c" />
<ClCompile Include="$(opensslDir)crypto\seed\seed_ecb.c" />
<ClCompile Include="$(opensslDir)crypto\seed\seed_ofb.c" />
<ClCompile Include="$(opensslDir)crypto\sha\sha_dgst.c" />
<ClCompile Include="$(opensslDir)crypto\sha\sha_one.c" />
<ClCompile Include="$(opensslDir)crypto\sha\sha1_one.c" />
<ClCompile Include="$(opensslDir)crypto\sha\sha1dgst.c" />
<ClCompile Include="$(opensslDir)crypto\sha\sha256.c" />
<ClCompile Include="$(opensslDir)crypto\sha\sha512.c" />
<ClCompile Include="$(opensslDir)crypto\srp\srp_lib.c" />
<ClCompile Include="$(opensslDir)crypto\srp\srp_vfy.c" />
<ClCompile Include="$(opensslDir)crypto\stack\stack.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\ts\ts_asn1.c" />
<ClCompile Include="$(opensslDir)crypto\ts\ts_conf.c" />
-->
<ClCompile Include="$(opensslDir)crypto\ts\ts_err.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\ts\ts_lib.c" />
<ClCompile Include="$(opensslDir)crypto\ts\ts_req_print.c" />
<ClCompile Include="$(opensslDir)crypto\ts\ts_req_utils.c" />
<ClCompile Include="$(opensslDir)crypto\ts\ts_rsp_print.c" />
<ClCompile Include="$(opensslDir)crypto\ts\ts_rsp_sign.c" />
<ClCompile Include="$(opensslDir)crypto\ts\ts_rsp_utils.c" />
<ClCompile Include="$(opensslDir)crypto\ts\ts_rsp_verify.c" />
<ClCompile Include="$(opensslDir)crypto\ts\ts_verify_ctx.c" />
-->
<ClCompile Include="$(opensslDir)crypto\txt_db\txt_db.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\ui\ui_compat.c" />
-->
<ClCompile Include="$(opensslDir)crypto\ui\ui_err.c" />
<ClCompile Include="$(opensslDir)crypto\ui\ui_lib.c" />
<ClCompile Include="$(opensslDir)crypto\ui\ui_openssl.c" />
<ClCompile Include="$(opensslDir)crypto\ui\ui_util.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\uid.c" />
-->
<ClCompile Include="$(opensslDir)crypto\whrlpool\wp_dgst.c" />
<ClCompile Include="$(opensslDir)crypto\x509\by_dir.c" />
<ClCompile Include="$(opensslDir)crypto\x509\by_file.c" />
<ClCompile Include="$(opensslDir)crypto\x509\x_all.c" />
<ClCompile Include="$(opensslDir)crypto\x509\x509_att.c" />
<ClCompile Include="$(opensslDir)crypto\x509\x509_cmp.c" />
<ClCompile Include="$(opensslDir)crypto\x509\x509_d2.c" />
<ClCompile Include="$(opensslDir)crypto\x509\x509_def.c" />
<ClCompile Include="$(opensslDir)crypto\x509\x509_err.c" />
<ClCompile Include="$(opensslDir)crypto\x509\x509_ext.c" />
<ClCompile Include="$(opensslDir)crypto\x509\x509_lu.c" />
<ClCompile Include="$(opensslDir)crypto\x509\x509_obj.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\x509\x509_r2x.c" />
-->
<ClCompile Include="$(opensslDir)crypto\x509\x509_req.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\x509\x509_set.c" />
-->
<ClCompile Include="$(opensslDir)crypto\x509\x509_trs.c" />
<ClCompile Include="$(opensslDir)crypto\x509\x509_txt.c" />
<ClCompile Include="$(opensslDir)crypto\x509\x509_v3.c" />
<ClCompile Include="$(opensslDir)crypto\x509\x509_vfy.c" />
<ClCompile Include="$(opensslDir)crypto\x509\x509_vpm.c" />
<ClCompile Include="$(opensslDir)crypto\x509\x509cset.c" />
<ClCompile Include="$(opensslDir)crypto\x509\x509name.c" />
<ClCompile Include="$(opensslDir)crypto\x509\x509rset.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\x509\x509spki.c" />
-->
<ClCompile Include="$(opensslDir)crypto\x509\x509type.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\pcy_cache.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\pcy_data.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\pcy_lib.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\pcy_map.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\pcy_node.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\pcy_tree.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_addr.c" />
-->
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_akey.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_akeya.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_alt.c" />
<!--
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_asid.c" />
-->
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_bcons.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_bitst.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_conf.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_cpols.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_crld.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_enum.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_extku.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_genn.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_ia5.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_info.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_int.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_lib.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_ncons.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_ocsp.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_pci.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_pcia.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_pcons.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_pku.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_pmaps.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_prn.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_purp.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_scts.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_skey.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_sxnet.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3_utl.c" />
<ClCompile Include="$(opensslDir)crypto\x509v3\v3err.c" />
<ClCompile Include="$(opensslDir)engines\ccgost\e_gost_err.c" />
<ClCompile Include="$(opensslDir)engines\ccgost\gost_ameth.c" />
<ClCompile Include="$(opensslDir)engines\ccgost\gost_asn1.c" />
<ClCompile Include="$(opensslDir)engines\ccgost\gost_crypt.c" />
<ClCompile Include="$(opensslDir)engines\ccgost\gost_ctl.c" />
<ClCompile Include="$(opensslDir)engines\ccgost\gost_eng.c" />
<ClCompile Include="$(opensslDir)engines\ccgost\gost_keywrap.c" />
<ClCompile Include="$(opensslDir)engines\ccgost\gost_md.c" />
<ClCompile Include="$(opensslDir)engines\ccgost\gost_params.c" />
<ClCompile Include="$(opensslDir)engines\ccgost\gost_pmeth.c" />
<ClCompile Include="$(opensslDir)engines\ccgost\gost_sign.c" />
<ClCompile Include="$(opensslDir)engines\ccgost\gost2001.c" />
<ClCompile Include="$(opensslDir)engines\ccgost\gost2001_keyx.c" />
<ClCompile Include="$(opensslDir)engines\ccgost\gost89.c" />
<ClCompile Include="$(opensslDir)engines\ccgost\gost94_keyx.c" />
<ClCompile Include="$(opensslDir)engines\ccgost\gosthash.c" />
<ClCompile Include="$(opensslDir)engines\e_4758cca.c" />
<ClCompile Include="$(opensslDir)engines\e_aep.c" />
<ClCompile Include="$(opensslDir)engines\e_atalla.c" />
<ClCompile Include="$(opensslDir)engines\e_capi.c" />
<ClCompile Include="$(opensslDir)engines\e_chil.c" />
<ClCompile Include="$(opensslDir)engines\e_cswift.c" />
<ClCompile Include="$(opensslDir)engines\e_gmp.c" />
<ClCompile Include="$(opensslDir)engines\e_nuron.c" />
<ClCompile Include="$(opensslDir)engines\e_padlock.c" />
<ClCompile Include="$(opensslDir)engines\e_sureware.c" />
<ClCompile Include="$(opensslDir)engines\e_ubsec.c" />
<ClCompile Include="$(opensslDir)ssl\d1_clnt.c" />
<ClCompile Include="$(opensslDir)ssl\d1_meth.c" />
<ClCompile Include="$(opensslDir)ssl\d1_lib.c" />
<ClCompile Include="$(opensslDir)ssl\d1_srvr.c" />
<ClCompile Include="$(opensslDir)ssl\s2_srvr.c" />
<ClCompile Include="$(opensslDir)ssl\t1_clnt.c" />
<ClCompile Include="$(opensslDir)ssl\t1_ext.c" />
<ClCompile Include="$(opensslDir)ssl\t1_srvr.c" />
</ItemGroup>
<ItemGroup Condition="$(Platform) == 'Win32'">
<ClCompile Include="$(opensslDir)crypto\whrlpool\wp_block.c" />
</ItemGroup>
<ItemGroup Condition="$(Platform) == 'x64'">
<ClCompile Include="$(opensslDir)crypto\bf\bf_enc.c" />
<ClCompile Include="$(opensslDir)crypto\bn\bn_asm.c" />
<ClCompile Include="$(opensslDir)crypto\camellia\cmll_misc.c" />
<ClCompile Include="$(opensslDir)crypto\cast\c_enc.c" />
<ClCompile Include="$(opensslDir)crypto\des\des_enc.c" />
<ClCompile Include="$(opensslDir)crypto\des\fcrypt_b.c" />
</ItemGroup>
<ItemGroup Condition="$(Platform) == 'Win32'">
<NasmCompile Include="$(opensslDir)tmp32\aes-586.asm" />
<NasmCompile Include="$(opensslDir)tmp32\aesni-x86.asm" />
<NasmCompile Include="$(opensslDir)tmp32\bf-586.asm" />
<NasmCompile Include="$(opensslDir)tmp32\bn-586.asm" />
<NasmCompile Include="$(opensslDir)tmp32\cast-586.asm" />
<NasmCompile Include="$(opensslDir)tmp32\cmll-x86.asm" />
<NasmCompile Include="$(opensslDir)tmp32\co-586.asm" />
<NasmCompile Include="$(opensslDir)tmp32\crypt586.asm" />
<NasmCompile Include="$(opensslDir)tmp32\des-586.asm" />
<NasmCompile Include="$(opensslDir)tmp32\ghash-x86.asm" />
<NasmCompile Include="$(opensslDir)tmp32\md5-586.asm" />
<NasmCompile Include="$(opensslDir)tmp32\rc4-586.asm" />
<NasmCompile Include="$(opensslDir)tmp32\rmd-586.asm" />
<NasmCompile Include="$(opensslDir)tmp32\sha1-586.asm" />
<NasmCompile Include="$(opensslDir)tmp32\sha256-586.asm" />
<NasmCompile Include="$(opensslDir)tmp32\sha512-586.asm" />
<NasmCompile Include="$(opensslDir)tmp32\vpaes-x86.asm" />
<NasmCompile Include="$(opensslDir)tmp32\wp-mmx.asm" />
<NasmCompile Include="$(opensslDir)tmp32\x86cpuid.asm" />
<NasmCompile Include="$(opensslDir)tmp32\x86-gf2m.asm" />
<NasmCompile Include="$(opensslDir)tmp32\x86-mont.asm" />
</ItemGroup>
<ItemGroup Condition="$(Platform) == 'x64'">
<NasmCompile Include="$(opensslDir)tmp64\aesni-sha1-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\aesni-sha1-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\aesni-gcm-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\aesni-mb-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\aesni-sha256-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\aesni-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\aes-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\bsaes-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\cmll-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\ghash-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\md5-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\rc4-md5-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\rc4-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\sha1-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\sha1-mb-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\sha256-mb-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\sha256-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\sha512-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\vpaes-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\wp-x86_64.asm" />
<NasmCompile Include="$(opensslDir)tmp64\x86_64cpuid.asm" />
<NasmCompile Include="$(opensslDir)tmp64\x86_64-gf2m.asm" />
<NasmCompile Include="$(opensslDir)tmp64\x86_64-mont.asm" />
<NasmCompile Include="$(opensslDir)tmp64\x86_64-mont5.asm" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Target Name="Clean" />
<Target Name="CleanAll">
<Delete Files="$(TargetPath)" />
<RemoveDir Directories="$(IntDir)" />
</Target>
</Project>

View file

@ -1,77 +1,24 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Py_IntDir Condition="'$(Py_IntDir)' == ''">$(opensslDir)tmp\</Py_IntDir>
</PropertyGroup>
<Import Project="pyproject.props" />
<PropertyGroup Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<ItemGroup>
<PreprocessorDefinitions Include="DSO_WIN32" />
<PreprocessorDefinitions Include="WIN32_LEAN_AND_MEAN" />
<PreprocessorDefinitions Include="L_ENDIAN" />
<PreprocessorDefinitions Include="_CRT_SECURE_NO_WARNINGS" />
<PreprocessorDefinitions Include="_CRT_SECURE_NO_DEPRECATE" />
<PreprocessorDefinitions Include="_WINSOCK_DEPRECATED_NO_WARNINGS" />
<PreprocessorDefinitions Include="OPENSSL_THREADS" />
<!-- <PreprocessorDefinitions Include="OPENSSL_SYSNAME_WIN32" /> -->
<PreprocessorDefinitions Include="OPENSSL_IA32_SSE2" />
<PreprocessorDefinitions Include="OPENSSL_BN_ASM_GF2m" />
<PreprocessorDefinitions Include="SHA1_ASM" />
<PreprocessorDefinitions Include="SHA256_ASM" />
<PreprocessorDefinitions Include="SHA512_ASM" />
<PreprocessorDefinitions Include="MD5_ASM" />
<PreprocessorDefinitions Include="AES_ASM" />
<PreprocessorDefinitions Include="VPAES_ASM" />
<PreprocessorDefinitions Include="WHIRLPOOL_ASM" />
<PreprocessorDefinitions Include="GHASH_ASM" />
<PreprocessorDefinitions Include="OPENSSL_NO_IDEA" />
<PreprocessorDefinitions Include="OPENSSL_NO_RC5" />
<PreprocessorDefinitions Include="OPENSSL_NO_MD2" />
<PreprocessorDefinitions Include="OPENSSL_NO_MDC2" />
<PreprocessorDefinitions Include="OPENSSL_NO_KRB5" />
<PreprocessorDefinitions Include="OPENSSL_NO_JPAKE" />
<PreprocessorDefinitions Include="OPENSSL_NO_RDRAND" />
<PreprocessorDefinitions Include="OPENSSL_NO_RSAX" />
<PreprocessorDefinitions Include="OPENSSL_NO_DYNAMIC_ENGINE" />
</ItemGroup>
<ItemGroup Condition="'$(Platform)'=='Win32'">
<PreprocessorDefinitions Include="OPENSSL_BN_ASM_PART_WORDS" />
<PreprocessorDefinitions Include="OPENSSL_BN_ASM_MONT" />
<PreprocessorDefinitions Include="RMD160_ASM" />
</ItemGroup>
<PropertyGroup>
<_PreprocessorDefinitionList>@(PreprocessorDefinitions)</_PreprocessorDefinitionList>
</PropertyGroup>
<ItemDefinitionGroup> <ItemDefinitionGroup>
<ClCompile> <ClCompile>
<!-- Suppress 64-bit truncation warnings - they aren't ours to worry about --> <AdditionalIncludeDirectories>$(opensslIncludeDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DisableSpecificWarnings>4244;4267</DisableSpecificWarnings>
<AdditionalIncludeDirectories>$(opensslDir);$(opensslIncludeDir);$(opensslDir)crypto;$(opensslDir)crypto\asn1;$(opensslDir)crypto\evp;$(opensslDir)crypto\modes</AdditionalIncludeDirectories>
<PreprocessorDefinitions>$(_PreprocessorDefinitionList);%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile> </ClCompile>
<Link>
<AdditionalLibraryDirectories>$(opensslOutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>ws2_32.lib;libeay32.lib;ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup>
<Target Name="FindNasm"> <_SSLDLL Include="$(opensslOutDir)\libeay32.dll" />
<PropertyGroup> <_SSLDLL Include="$(opensslOutDir)\libeay32.pdb" />
<nasm Condition="$(Platform) == 'Win32'">nasm.exe -f win32</nasm> <_SSLDLL Include="$(opensslOutDir)\ssleay32.dll" />
<nasm Condition="$(Platform) == 'x64'">nasm.exe -f win64 -DNEAR -Ox -g</nasm> <_SSLDLL Include="$(opensslOutDir)\ssleay32.pdb" />
</PropertyGroup> </ItemGroup>
<Target Name="_CopySSLDLL" Inputs="@(_SSLDLL)" Outputs="@(_SSLDLL->'$(OutDir)%(Filename)%(Extension)')" AfterTargets="Build">
<Copy SourceFiles="@(_SSLDLL)" DestinationFolder="$(OutDir)" />
</Target> </Target>
<Target Name="_CleanSSLDLL" BeforeTargets="Clean">
<Target Name="BuildNasmFiles" BeforeTargets="PreBuildEvent" DependsOnTargets="PrepareForBuild;FindNasm" Inputs="@(NasmCompile)" Outputs="@(NasmCompile->'$(IntDir)%(Filename).obj')"> <Delete Files="@(_SSLDLL->'$(OutDir)%(Filename)%(Extension)')" />
<Exec Command='setlocal
set PATH=$(nasmDir);%PATH%
$(nasm) -o "$(IntDir)%(NasmCompile.Filename).obj" "%(NasmCompile.FullPath)"' />
<ItemGroup>
<Link Include="$(IntDir)%(NasmCompile.Filename).obj" />
<Lib Include="$(IntDir)%(NasmCompile.Filename).obj" />
</ItemGroup>
</Target> </Target>
</Project> </Project>

118
PCbuild/openssl.vcxproj Normal file
View file

@ -0,0 +1,118 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="PGInstrument|Win32">
<Configuration>PGInstrument</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="PGInstrument|x64">
<Configuration>PGInstrument</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="PGUpdate|Win32">
<Configuration>PGUpdate</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="PGUpdate|x64">
<Configuration>PGUpdate</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{B5FD6F1D-129E-4BFF-9340-03606FAC7283}</ProjectGuid>
</PropertyGroup>
<Import Project="python.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType>
<Bitness>32</Bitness>
<Bitness Condition="$(Platform) == 'x64'">64</Bitness>
<ArchName>x86</ArchName>
<ArchName Condition="$(Platform) == 'x64'">amd64</ArchName>
<SupportSigning>true</SupportSigning>
</PropertyGroup>
<ItemGroup>
<PrepareSSL Include="prepare_ssl.py" />
<Perl Include="$(Perl)" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Import Project="pyproject.props" />
<PropertyGroup>
<IntDir>$(opensslDir)\tmp$(Bitness)dll</IntDir>
<OutDir>$(opensslDir)\out$(Bitness)dll</OutDir>
<MakeFile>ms\ntdll$(Bitness).mak</MakeFile>
<NMakeOptions>LIB_D="$(opensslOutDir.TrimEnd(`\`))" OUT_D=out$(Bitness)dll TMP_D=tmp$(Bitness)dll INC_D=inc$(Bitness) INCO_D=inc$(Bitness)\openssl</NMakeOptions>
<NMakeBuildCommandLine>setlocal
set PATH=%PATH%;$(nasmDir);@(Perl->'%(RootDir)%(Directory)',';')
set VCINSTALLDIR=$(VCInstallDir)
cd /D "$(opensslDir.TrimEnd(`\`))"
if not exist "$(IntDir.TrimEnd('\'))" mkdir "$(IntDir.TrimEnd('\'))"
if not exist "$(OutDir.TrimEnd('\'))" mkdir "$(OutDir.TrimEnd('\'))"
if not exist "$(opensslOutDir.TrimEnd(`\`))" mkdir "$(opensslOutDir.TrimEnd(`\`))"
$(PYTHON) "@(PrepareSSL->'%(FullPath)')" "$(opensslDir.TrimEnd(`\`))" $(ArchName)
nmake -f $(MakeFile) $(NMakeOptions) headers lib
copy /y LICENSE "$(opensslOutDir)\LICENSE"
</NMakeBuildCommandLine>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Target Name="SuppressOriginalBuildinfH" Condition="Exists('$(opensslDir)crypto\buildinf.h')" BeforeTargets="CreateBuildinfH">
<Move SourceFiles="$(opensslDir)crypto\buildinf.h" DestinationFiles="$(opensslDir)crypto\buildinf.h.orig" />
</Target>
<Target Name="_CopyIncludes" AfterTargets="Build">
<ItemGroup>
<Sources Include="$(opensslDir)inc$(Bitness)\**\*.h" />
<Sources Include="$(opensslDir)ms\applink.c" />
</ItemGroup>
<Copy SourceFiles="%(Sources.FullPath)" DestinationFiles="$(opensslOutDir)\include\%(Sources.RecursiveDir)\%(Sources.Filename)%(Sources.Extension)" />
</Target>
<Target Name="SignFiles" AfterTargets="Build" Condition="$(_SignCommand) != ''">
<ItemGroup>
<FilesToSign Include="$(opensslOutDir)\libeay32.dll;$(opensslOutDir)\ssleay32.dll" />
</ItemGroup>
<Exec Command="$(_SignCommand) %(FilesToSign.FullPath)" ContinueOnError="true" />
</Target>
<Target Name="Clean" />
<Target Name="CleanAll">
<Delete Files="$(TargetPath);$(BuildPath)$(tclDLLName)" />
<RemoveDir Directories="$(IntDir)" />
</Target>
<Target Name="LocateNMake">
<PropertyGroup>
<OutputFilename Condition="$(OutputFilename) == ''">$(Temp)\nmake.loc</OutputFilename>
</PropertyGroup>
<ItemGroup>
<_NMakeExe Include="$(VC_ExecutablePath_x86_x86)\nmake.exe" Condition="$(VC_ExecutablePath_x86_x86) != ''" />
</ItemGroup>
<MakeDir Directories="$([System.IO.Path]::GetDirectoryName($(OutputFilename)))" />
<WriteLinesToFile File="$(OutputFilename)" Lines="@(_NMakeExe)" />
</Target>
<Target Name="ResolveAssemblyReferences" />
</Project>

View file

@ -55,7 +55,7 @@
<!-- _ssl will build _socket as well, which may cause conflicts in parallel builds --> <!-- _ssl will build _socket as well, which may cause conflicts in parallel builds -->
<ExtensionModules Include="_socket" Condition="!$(IncludeSSL) or !$(IncludeExternals)" /> <ExtensionModules Include="_socket" Condition="!$(IncludeSSL) or !$(IncludeExternals)" />
<ExternalModules Include="_ssl;_hashlib" Condition="$(IncludeSSL)" /> <ExternalModules Include="_ssl;_hashlib" Condition="$(IncludeSSL)" />
<ExternalModules Include="_tkinter;tix" Condition="$(IncludeTkinter)" /> <ExternalModules Include="_tkinter" Condition="$(IncludeTkinter)" />
<ExtensionModules Include="@(ExternalModules->'%(Identity)')" Condition="$(IncludeExternals)" /> <ExtensionModules Include="@(ExternalModules->'%(Identity)')" Condition="$(IncludeExternals)" />
<Projects Include="@(ExtensionModules->'%(Identity).vcxproj')" Condition="$(IncludeExtensions)" /> <Projects Include="@(ExtensionModules->'%(Identity).vcxproj')" Condition="$(IncludeExtensions)" />
<!-- Test modules --> <!-- Test modules -->

View file

@ -1,6 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15 # Visual Studio 15
VisualStudioVersion = 15.0.26430.6 VisualStudioVersion = 15.0.26621.2
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{553EC33E-9816-4996-A660-5D6186A0B0B3}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{553EC33E-9816-4996-A660-5D6186A0B0B3}"
ProjectSection(SolutionItems) = preProject ProjectSection(SolutionItems) = preProject
@ -83,16 +83,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testembed", "_testembed.vc
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testmultiphase", "_testmultiphase.vcxproj", "{16BFE6F0-22EF-40B5-B831-7E937119EF10}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testmultiphase", "_testmultiphase.vcxproj", "{16BFE6F0-22EF-40B5-B831-7E937119EF10}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcl", "tcl.vcxproj", "{B5FD6F1D-129E-4BFF-9340-03606FAC7283}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tix", "tix.vcxproj", "{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tk", "tk.vcxproj", "{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libeay", "libeay.vcxproj", "{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssleay", "ssleay.vcxproj", "{10615B24-73BF-4EFA-93AA-236916321317}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyshellext", "pyshellext.vcxproj", "{0F6EE4A4-C75F-4578-B4B3-2D64F4B9B782}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyshellext", "pyshellext.vcxproj", "{0F6EE4A4-C75F-4578-B4B3-2D64F4B9B782}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testconsole", "_testconsole.vcxproj", "{B244E787-C445-441C-BDF4-5A4F1A3A1E51}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testconsole", "_testconsole.vcxproj", "{B244E787-C445-441C-BDF4-5A4F1A3A1E51}"
@ -621,86 +611,6 @@ Global
{16BFE6F0-22EF-40B5-B831-7E937119EF10}.Release|Win32.Build.0 = Release|Win32 {16BFE6F0-22EF-40B5-B831-7E937119EF10}.Release|Win32.Build.0 = Release|Win32
{16BFE6F0-22EF-40B5-B831-7E937119EF10}.Release|x64.ActiveCfg = Release|x64 {16BFE6F0-22EF-40B5-B831-7E937119EF10}.Release|x64.ActiveCfg = Release|x64
{16BFE6F0-22EF-40B5-B831-7E937119EF10}.Release|x64.Build.0 = Release|x64 {16BFE6F0-22EF-40B5-B831-7E937119EF10}.Release|x64.Build.0 = Release|x64
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Debug|Win32.ActiveCfg = Debug|Win32
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Debug|Win32.Build.0 = Debug|Win32
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Debug|x64.ActiveCfg = Debug|x64
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Debug|x64.Build.0 = Debug|x64
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGInstrument|Win32.ActiveCfg = Release|Win32
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGInstrument|Win32.Build.0 = Release|Win32
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGInstrument|x64.ActiveCfg = Release|x64
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGInstrument|x64.Build.0 = Release|x64
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGUpdate|Win32.ActiveCfg = Release|Win32
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGUpdate|Win32.Build.0 = Release|Win32
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGUpdate|x64.ActiveCfg = Release|x64
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.PGUpdate|x64.Build.0 = Release|x64
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Release|Win32.ActiveCfg = Release|Win32
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Release|Win32.Build.0 = Release|Win32
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Release|x64.ActiveCfg = Release|x64
{B5FD6F1D-129E-4BFF-9340-03606FAC7283}.Release|x64.Build.0 = Release|x64
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Debug|Win32.ActiveCfg = Debug|Win32
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Debug|Win32.Build.0 = Debug|Win32
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Debug|x64.ActiveCfg = Debug|x64
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Debug|x64.Build.0 = Debug|x64
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGInstrument|Win32.ActiveCfg = Release|Win32
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGInstrument|Win32.Build.0 = Release|Win32
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGInstrument|x64.ActiveCfg = Release|x64
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGInstrument|x64.Build.0 = Release|x64
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGUpdate|Win32.ActiveCfg = Release|Win32
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGUpdate|Win32.Build.0 = Release|Win32
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGUpdate|x64.ActiveCfg = Release|x64
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.PGUpdate|x64.Build.0 = Release|x64
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Release|Win32.ActiveCfg = Release|Win32
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Release|Win32.Build.0 = Release|Win32
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Release|x64.ActiveCfg = Release|x64
{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}.Release|x64.Build.0 = Release|x64
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Debug|Win32.ActiveCfg = Debug|Win32
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Debug|Win32.Build.0 = Debug|Win32
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Debug|x64.ActiveCfg = Debug|x64
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Debug|x64.Build.0 = Debug|x64
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGInstrument|Win32.ActiveCfg = Release|Win32
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGInstrument|Win32.Build.0 = Release|Win32
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGInstrument|x64.ActiveCfg = Release|x64
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGInstrument|x64.Build.0 = Release|x64
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGUpdate|Win32.ActiveCfg = Release|Win32
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGUpdate|Win32.Build.0 = Release|Win32
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGUpdate|x64.ActiveCfg = Release|x64
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.PGUpdate|x64.Build.0 = Release|x64
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Release|Win32.ActiveCfg = Release|Win32
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Release|Win32.Build.0 = Release|Win32
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Release|x64.ActiveCfg = Release|x64
{7E85ECCF-A72C-4DA4-9E52-884508E80BA1}.Release|x64.Build.0 = Release|x64
{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Debug|Win32.ActiveCfg = Debug|Win32
{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Debug|Win32.Build.0 = Debug|Win32
{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Debug|x64.ActiveCfg = Debug|x64
{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Debug|x64.Build.0 = Debug|x64
{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGInstrument|Win32.ActiveCfg = Release|Win32
{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGInstrument|Win32.Build.0 = Release|Win32
{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGInstrument|x64.ActiveCfg = Release|x64
{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGInstrument|x64.Build.0 = Release|x64
{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGUpdate|Win32.ActiveCfg = Release|Win32
{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGUpdate|Win32.Build.0 = Release|Win32
{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGUpdate|x64.ActiveCfg = Release|x64
{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.PGUpdate|x64.Build.0 = Release|x64
{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Release|Win32.ActiveCfg = Release|Win32
{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Release|Win32.Build.0 = Release|Win32
{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Release|x64.ActiveCfg = Release|x64
{E5B04CC0-EB4C-42AB-B4DC-18EF95F864B0}.Release|x64.Build.0 = Release|x64
{10615B24-73BF-4EFA-93AA-236916321317}.Debug|Win32.ActiveCfg = Debug|Win32
{10615B24-73BF-4EFA-93AA-236916321317}.Debug|Win32.Build.0 = Debug|Win32
{10615B24-73BF-4EFA-93AA-236916321317}.Debug|x64.ActiveCfg = Debug|x64
{10615B24-73BF-4EFA-93AA-236916321317}.Debug|x64.Build.0 = Debug|x64
{10615B24-73BF-4EFA-93AA-236916321317}.PGInstrument|Win32.ActiveCfg = Release|Win32
{10615B24-73BF-4EFA-93AA-236916321317}.PGInstrument|Win32.Build.0 = Release|Win32
{10615B24-73BF-4EFA-93AA-236916321317}.PGInstrument|x64.ActiveCfg = Release|x64
{10615B24-73BF-4EFA-93AA-236916321317}.PGInstrument|x64.Build.0 = Release|x64
{10615B24-73BF-4EFA-93AA-236916321317}.PGUpdate|Win32.ActiveCfg = Release|Win32
{10615B24-73BF-4EFA-93AA-236916321317}.PGUpdate|Win32.Build.0 = Release|Win32
{10615B24-73BF-4EFA-93AA-236916321317}.PGUpdate|x64.ActiveCfg = Release|x64
{10615B24-73BF-4EFA-93AA-236916321317}.PGUpdate|x64.Build.0 = Release|x64
{10615B24-73BF-4EFA-93AA-236916321317}.Release|Win32.ActiveCfg = Release|Win32
{10615B24-73BF-4EFA-93AA-236916321317}.Release|Win32.Build.0 = Release|Win32
{10615B24-73BF-4EFA-93AA-236916321317}.Release|x64.ActiveCfg = Release|x64
{10615B24-73BF-4EFA-93AA-236916321317}.Release|x64.Build.0 = Release|x64
{0F6EE4A4-C75F-4578-B4B3-2D64F4B9B782}.Debug|Win32.ActiveCfg = Debug|Win32 {0F6EE4A4-C75F-4578-B4B3-2D64F4B9B782}.Debug|Win32.ActiveCfg = Debug|Win32
{0F6EE4A4-C75F-4578-B4B3-2D64F4B9B782}.Debug|Win32.Build.0 = Debug|Win32 {0F6EE4A4-C75F-4578-B4B3-2D64F4B9B782}.Debug|Win32.Build.0 = Debug|Win32
{0F6EE4A4-C75F-4578-B4B3-2D64F4B9B782}.Debug|x64.ActiveCfg = Debug|x64 {0F6EE4A4-C75F-4578-B4B3-2D64F4B9B782}.Debug|x64.ActiveCfg = Debug|x64
@ -769,4 +679,7 @@ Global
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {5C33FFD3-C8DC-4A54-B842-8BA9846BDFFE}
EndGlobalSection
EndGlobal EndGlobal

View file

@ -1,12 +1,53 @@
@echo off @echo off
if not defined HOST_PYTHON ( rem Downloads and build sources for libraries we depend upon
if "%1" EQU "Debug" (
shift goto Run
set HOST_PYTHON=python_d.exe :Usage
if not exist python37_d.dll exit 1 echo.%~nx0 [flags and arguments]
) ELSE ( echo.
set HOST_PYTHON=python.exe echo.Download and build OpenSSL. This should only be performed in order to
if not exist python37.dll exit 1 echo.update the binaries kept online - in most cases, the files downloaded
) echo.by the get_externals.bat script are sufficient for building CPython.
) echo.
%HOST_PYTHON% "%~dp0prepare_ssl.py" %1 echo.Available flags:
echo. -h Display this help message
echo.
echo.Available arguments:
echo. --certificate (-c) The signing certificate to use for binaries.
echo. --organization The github organization to obtain sources from.
echo.
exit /b 127
:Run
setlocal
if "%PCBUILD%"=="" (set PCBUILD=%~dp0)
if "%EXTERNALS_DIR%"=="" (set EXTERNALS_DIR=%PCBUILD%\..\externals)
set ORG_SETTING=
:CheckOpts
if "%~1"=="-h" shift & goto Usage
if "%~1"=="--certificate" (set SigningCertificate=%~2) && shift && shift & goto CheckOpts
if "%~1"=="-c" (set SigningCertificate=%~2) && shift && shift & goto CheckOpts
if "%~1"=="--organization" (set ORG_SETTING=--organization "%~2") && shift && shift && goto CheckOpts
if "%~1"=="" goto Build
echo Unrecognized option: %1
goto Usage
:Build
call "%PCBUILD%find_msbuild.bat" %MSBUILD%
if ERRORLEVEL 1 (echo Cannot locate MSBuild.exe on PATH or as MSBUILD variable & exit /b 2)
call "%PCBUILD%find_python.bat" "%PYTHON%"
if ERRORLEVEL 1 (echo Cannot locate python.exe on PATH or as PYTHON variable & exit /b 3)
call "%PCBUILD%get_externals.bat" --openssl-src %ORG_SETTING%
if "%PERL%" == "" where perl > "%TEMP%\perl.loc" 2> nul && set /P PERL= <"%TEMP%\perl.loc" & del "%TEMP%\perl.loc"
if "%PERL%" == "" (echo Cannot locate perl.exe on PATH or as PERL variable & exit /b 4)
%MSBUILD% "%PCBUILD%openssl.vcxproj" /p:Configuration=Release /p:Platform=Win32
if errorlevel 1 exit /b
%MSBUILD% "%PCBUILD%openssl.vcxproj" /p:Configuration=Release /p:Platform=x64
if errorlevel 1 exit /b

View file

@ -21,6 +21,7 @@
from __future__ import print_function from __future__ import print_function
import os import os
import re
import sys import sys
import subprocess import subprocess
from shutil import copy from shutil import copy
@ -64,32 +65,8 @@ def find_working_perl(perls):
print(" Please install ActivePerl and ensure it appears on your path") print(" Please install ActivePerl and ensure it appears on your path")
def create_asms(makefile, tmp_d):
#create a custom makefile out of the provided one
asm_makefile = os.path.splitext(makefile)[0] + '.asm.mak'
with open(makefile) as fin, open(asm_makefile, 'w') as fout:
for line in fin:
# Keep everything up to the install target (it's convenient)
if line.startswith('install: all'):
break
fout.write(line)
asms = []
for line in fin:
if '.asm' in line and line.strip().endswith('.pl'):
asms.append(line.split(':')[0])
while line.strip():
fout.write(line)
line = next(fin)
fout.write('\n')
fout.write('asms: $(TMP_D) ')
fout.write(' '.join(asms))
fout.write('\n')
os.system('nmake /f {} PERL=perl TMP_D={} asms'.format(asm_makefile, tmp_d))
def copy_includes(makefile, suffix): def copy_includes(makefile, suffix):
dir = 'include'+suffix+'\\openssl' dir = 'inc'+suffix+'\\openssl'
try: try:
os.makedirs(dir) os.makedirs(dir)
except OSError: except OSError:
@ -114,9 +91,29 @@ def run_configure(configure, do_script):
print(do_script) print(do_script)
os.system(do_script) os.system(do_script)
def fix_uplink():
# uplink.c tries to find the OPENSSL_Applink function exported from the current
# executable. However, we export it from _ssl[_d].pyd instead. So we update the
# module name here before building.
with open('ms\\uplink.c', 'r', encoding='utf-8') as f1:
code = list(f1)
os.replace('ms\\uplink.c', 'ms\\uplink.c.orig')
already_patched = False
with open('ms\\uplink.c', 'w', encoding='utf-8') as f2:
for line in code:
if not already_patched:
if re.search('MODIFIED FOR CPYTHON _ssl MODULE', line):
already_patched = True
elif re.match(r'^\s+if\s*\(\(h\s*=\s*GetModuleHandle[AW]?\(NULL\)\)\s*==\s*NULL\)', line):
f2.write("/* MODIFIED FOR CPYTHON _ssl MODULE */\n")
f2.write('if ((h = GetModuleHandleW(L"_ssl.pyd")) == NULL) if ((h = GetModuleHandleW(L"_ssl_d.pyd")) == NULL)\n')
already_patched = True
f2.write(line)
if not already_patched:
print("WARN: failed to patch ms\\uplink.c")
def prep(arch): def prep(arch):
makefile_template = "ms\\nt{}.mak" makefile_template = "ms\\ntdll{}.mak"
generated_makefile = makefile_template.format('') generated_makefile = makefile_template.format('')
if arch == "x86": if arch == "x86":
configure = "VC-WIN32" configure = "VC-WIN32"
@ -126,13 +123,12 @@ def prep(arch):
configure = "VC-WIN64A" configure = "VC-WIN64A"
do_script = "ms\\do_win64a" do_script = "ms\\do_win64a"
suffix = "64" suffix = "64"
#os.environ["VSEXTCOMP_USECL"] = "MS_OPTERON"
else: else:
raise ValueError('Unrecognized platform: %s' % arch) raise ValueError('Unrecognized platform: %s' % arch)
print("Creating the makefiles...") print("Creating the makefiles...")
sys.stdout.flush() sys.stdout.flush()
# run configure, copy includes, create asms # run configure, copy includes, patch files
run_configure(configure, do_script) run_configure(configure, do_script)
makefile = makefile_template.format(suffix) makefile = makefile_template.format(suffix)
try: try:
@ -142,9 +138,8 @@ def prep(arch):
os.rename(generated_makefile, makefile) os.rename(generated_makefile, makefile)
copy_includes(makefile, suffix) copy_includes(makefile, suffix)
print('creating asms...') print('patching ms\\uplink.c...')
create_asms(makefile, 'tmp'+suffix) fix_uplink()
def main(): def main():
if len(sys.argv) == 1: if len(sys.argv) == 1:
@ -152,12 +147,17 @@ def main():
"sources must be supplied") "sources must be supplied")
sys.exit(1) sys.exit(1)
if len(sys.argv) > 2: if len(sys.argv) == 3 and sys.argv[2] not in ('x86', 'amd64'):
print("Second argument must be x86 or amd64")
sys.exit(1)
if len(sys.argv) > 3:
print("Too many arguments supplied, all we need is the directory", print("Too many arguments supplied, all we need is the directory",
"containing OpenSSL sources") "containing OpenSSL sources and optionally the architecture")
sys.exit(1) sys.exit(1)
ssl_dir = sys.argv[1] ssl_dir = sys.argv[1]
arch = sys.argv[2] if len(sys.argv) >= 3 else None
if not os.path.isdir(ssl_dir): if not os.path.isdir(ssl_dir):
print(ssl_dir, "is not an existing directory!") print(ssl_dir, "is not an existing directory!")
@ -191,8 +191,11 @@ def main():
old_cwd = os.getcwd() old_cwd = os.getcwd()
try: try:
os.chdir(ssl_dir) os.chdir(ssl_dir)
for arch in ['amd64', 'x86']: if arch:
prep(arch) prep(arch)
else:
for arch in ['amd64', 'x86']:
prep(arch)
finally: finally:
os.chdir(old_cwd) os.chdir(old_cwd)

55
PCbuild/prepare_tcltk.bat Normal file
View file

@ -0,0 +1,55 @@
@echo off
rem Downloads and build sources for libraries we depend upon
goto Run
:Usage
echo.%~nx0 [flags and arguments]
echo.
echo.Download and build Tcl/Tk. This should only be performed in order to
echo.update the binaries kept online - in most cases, the files downloaded
echo.by the get_externals.bat script are sufficient for building CPython.
echo.
echo.Available flags:
echo. -h Display this help message
echo.
echo.Available arguments:
echo. --certificate (-c) The signing certificate to use for binaries.
echo. --organization The github organization to obtain sources from.
echo.
exit /b 127
:Run
setlocal
if "%PCBUILD%"=="" (set PCBUILD=%~dp0)
if "%EXTERNALS_DIR%"=="" (set EXTERNALS_DIR=%PCBUILD%\..\externals)
set CERT_SETTING=
set ORG_SETTING=
:CheckOpts
if "%~1"=="-h" shift & goto Usage
if "%~1"=="--certificate" (set SigningCertificate=%~2) && shift && shift & goto CheckOpts
if "%~1"=="-c" (set SigningCertificate=%~2) && shift && shift & goto CheckOpts
if "%~1"=="--organization" (set ORG_SETTING=--organization "%~2") && shift && shift && goto CheckOpts
if "%~1"=="" goto Build
echo Unrecognized option: %1
goto Usage
:Build
call "%PCBUILD%find_msbuild.bat" %MSBUILD%
if ERRORLEVEL 1 (echo Cannot locate MSBuild.exe on PATH or as MSBUILD variable & exit /b 2)
rem call "%PCBUILD%find_python.bat" "%PYTHON%"
rem if ERRORLEVEL 1 (echo Cannot locate python.exe on PATH or as PYTHON variable & exit /b 3)
call "%PCBUILD%get_externals.bat" --tkinter-src %ORG_SETTING%
%MSBUILD% "%PCBUILD%tcl.vcxproj" /p:Configuration=Release /p:Platform=Win32
%MSBUILD% "%PCBUILD%tk.vcxproj" /p:Configuration=Release /p:Platform=Win32
%MSBUILD% "%PCBUILD%tix.vcxproj" /p:Configuration=Release /p:Platform=Win32
%MSBUILD% "%PCBUILD%tcl.vcxproj" /p:Configuration=Release /p:Platform=x64
%MSBUILD% "%PCBUILD%tk.vcxproj" /p:Configuration=Release /p:Platform=x64
%MSBUILD% "%PCBUILD%tix.vcxproj" /p:Configuration=Release /p:Platform=x64

View file

@ -152,7 +152,7 @@ foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses
<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@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\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> <SdkBinPath Condition="!Exists($(SdkBinPath))">$(registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1A@InstallationFolder)\Bin\</SdkBinPath>
<_SignCommand Condition="Exists($(SdkBinPath)) and '$(SigningCertificate)' != '' and $(SupportSigning)">"$(SdkBinPath)\signtool.exe" sign /q /n "$(SigningCertificate)" /fd sha256 /t http://timestamp.verisign.com/scripts/timestamp.dll /d "Python $(PythonVersion)"</_SignCommand> <_SignCommand Condition="Exists($(SdkBinPath)) and '$(SigningCertificate)' != '' and $(SupportSigning)">"$(SdkBinPath)\signtool.exe" sign /q /a /n "$(SigningCertificate)" /fd sha256 /t http://timestamp.verisign.com/scripts/timestamp.dll /d "Python $(PythonVersion)"</_SignCommand>
<_MakeCatCommand Condition="Exists($(SdkBinPath))">"$(SdkBinPath)\makecat.exe"</_MakeCatCommand> <_MakeCatCommand Condition="Exists($(SdkBinPath))">"$(SdkBinPath)\makecat.exe"</_MakeCatCommand>
</PropertyGroup> </PropertyGroup>

View file

@ -46,8 +46,8 @@
<bz2Dir>$(ExternalsDir)bzip2-1.0.6\</bz2Dir> <bz2Dir>$(ExternalsDir)bzip2-1.0.6\</bz2Dir>
<lzmaDir>$(ExternalsDir)xz-5.2.2\</lzmaDir> <lzmaDir>$(ExternalsDir)xz-5.2.2\</lzmaDir>
<opensslDir>$(ExternalsDir)openssl-1.0.2k\</opensslDir> <opensslDir>$(ExternalsDir)openssl-1.0.2k\</opensslDir>
<opensslIncludeDir>$(opensslDir)include32</opensslIncludeDir> <opensslOutDir>$(ExternalsDir)openssl-bin-1.0.2k\$(ArchName)\</opensslOutDir>
<opensslIncludeDir Condition="'$(ArchName)' == 'amd64'">$(opensslDir)include64</opensslIncludeDir> <opensslIncludeDir>$(opensslOutDir)include</opensslIncludeDir>
<nasmDir>$(ExternalsDir)\nasm-2.11.06\</nasmDir> <nasmDir>$(ExternalsDir)\nasm-2.11.06\</nasmDir>
<!-- Suffix for all binaries when building for debug --> <!-- Suffix for all binaries when building for debug -->
@ -72,6 +72,8 @@
--> -->
<DefaultWindowsSDKVersion Condition="$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion) == '10.0.15063'">10.0.15063.0</DefaultWindowsSDKVersion> <DefaultWindowsSDKVersion Condition="$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion) == '10.0.15063'">10.0.15063.0</DefaultWindowsSDKVersion>
<DefaultWindowsSDKVersion Condition="$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion) == '10.0.15063'">10.0.15063.0</DefaultWindowsSDKVersion> <DefaultWindowsSDKVersion Condition="$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion) == '10.0.15063'">10.0.15063.0</DefaultWindowsSDKVersion>
<DefaultWindowsSDKVersion Condition="$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion) == '10.0.14393'">10.0.14393.0</DefaultWindowsSDKVersion>
<DefaultWindowsSDKVersion Condition="$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion) == '10.0.14393'">10.0.14393.0</DefaultWindowsSDKVersion>
<DefaultWindowsSDKVersion Condition="$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion) == '10.0.10586'">10.0.10586.0</DefaultWindowsSDKVersion> <DefaultWindowsSDKVersion Condition="$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion) == '10.0.10586'">10.0.10586.0</DefaultWindowsSDKVersion>
<DefaultWindowsSDKVersion Condition="$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion) == '10.0.10586'">10.0.10586.0</DefaultWindowsSDKVersion> <DefaultWindowsSDKVersion Condition="$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion) == '10.0.10586'">10.0.10586.0</DefaultWindowsSDKVersion>
<DefaultWindowsSDKVersion Condition="$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion) == '10.0.10240'">10.0.10240.0</DefaultWindowsSDKVersion> <DefaultWindowsSDKVersion Condition="$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion) == '10.0.10240'">10.0.10240.0</DefaultWindowsSDKVersion>

View file

@ -1,119 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="PGInstrument|Win32">
<Configuration>PGInstrument</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="PGInstrument|x64">
<Configuration>PGInstrument</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="PGUpdate|Win32">
<Configuration>PGUpdate</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="PGUpdate|x64">
<Configuration>PGUpdate</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{10615B24-73BF-4EFA-93AA-236916321317}</ProjectGuid>
<RootNamespace>ssleay</RootNamespace>
</PropertyGroup>
<Import Project="python.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<Import Project="openssl.props" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ItemGroup>
<!--
<ClCompile Include="$(opensslDir)ssl\bio_ssl.c" />
-->
<ClCompile Include="$(opensslDir)ssl\d1_both.c" />
<!--
<ClCompile Include="$(opensslDir)ssl\d1_clnt.c" />
<ClCompile Include="$(opensslDir)ssl\d1_enc.c" />
-->
<ClCompile Include="$(opensslDir)ssl\d1_lib.c" />
<!--
<ClCompile Include="$(opensslDir)ssl\d1_meth.c" />
-->
<ClCompile Include="$(opensslDir)ssl\d1_pkt.c" />
<ClCompile Include="$(opensslDir)ssl\d1_srtp.c" />
<!--
<ClCompile Include="$(opensslDir)ssl\d1_srvr.c" />
<ClCompile Include="$(opensslDir)ssl\kssl.c" />
-->
<ClCompile Include="$(opensslDir)ssl\s2_clnt.c" />
<ClCompile Include="$(opensslDir)ssl\s2_enc.c" />
<ClCompile Include="$(opensslDir)ssl\s2_lib.c" />
<ClCompile Include="$(opensslDir)ssl\s2_meth.c" />
<ClCompile Include="$(opensslDir)ssl\s2_pkt.c" />
<ClCompile Include="$(opensslDir)ssl\s2_srvr.c" />
<ClCompile Include="$(opensslDir)ssl\s23_clnt.c" />
<ClCompile Include="$(opensslDir)ssl\s23_lib.c" />
<ClCompile Include="$(opensslDir)ssl\s23_meth.c" />
<ClCompile Include="$(opensslDir)ssl\s23_pkt.c" />
<ClCompile Include="$(opensslDir)ssl\s23_srvr.c" />
<ClCompile Include="$(opensslDir)ssl\s3_both.c" />
<ClCompile Include="$(opensslDir)ssl\s3_cbc.c" />
<ClCompile Include="$(opensslDir)ssl\s3_clnt.c" />
<ClCompile Include="$(opensslDir)ssl\s3_enc.c" />
<ClCompile Include="$(opensslDir)ssl\s3_lib.c" />
<ClCompile Include="$(opensslDir)ssl\s3_meth.c" />
<ClCompile Include="$(opensslDir)ssl\s3_pkt.c" />
<ClCompile Include="$(opensslDir)ssl\s3_srvr.c" />
<ClCompile Include="$(opensslDir)ssl\ssl_algs.c" />
<ClCompile Include="$(opensslDir)ssl\ssl_asn1.c" />
<ClCompile Include="$(opensslDir)ssl\ssl_cert.c" />
<ClCompile Include="$(opensslDir)ssl\ssl_ciph.c" />
<ClCompile Include="$(opensslDir)ssl\ssl_err.c" />
<ClCompile Include="$(opensslDir)ssl\ssl_err2.c" />
<ClCompile Include="$(opensslDir)ssl\ssl_lib.c" />
<ClCompile Include="$(opensslDir)ssl\ssl_rsa.c" />
<ClCompile Include="$(opensslDir)ssl\ssl_sess.c" />
<!--
<ClCompile Include="$(opensslDir)ssl\ssl_stat.c" />
<ClCompile Include="$(opensslDir)ssl\ssl_txt.c" />
<ClCompile Include="$(opensslDir)ssl\ssl_utst.c" />
-->
<ClCompile Include="$(opensslDir)ssl\t1_clnt.c" />
<ClCompile Include="$(opensslDir)ssl\t1_enc.c" />
<ClCompile Include="$(opensslDir)ssl\t1_lib.c" />
<ClCompile Include="$(opensslDir)ssl\t1_meth.c" />
<ClCompile Include="$(opensslDir)ssl\t1_reneg.c" />
<ClCompile Include="$(opensslDir)ssl\t1_srvr.c" />
<ClCompile Include="$(opensslDir)ssl\tls_srp.c" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Target Name="Clean" />
<Target Name="CleanAll">
<Delete Files="$(TargetPath)" />
<RemoveDir Directories="$(IntDir)" />
</Target>
</Project>

View file

@ -48,16 +48,6 @@
<TargetPath>$(OutDir)bin\$(tclDLLName)</TargetPath> <TargetPath>$(OutDir)bin\$(tclDLLName)</TargetPath>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<ExpectedOutputs Include="
$(OutDir)\bin\$(tclDLLName);
$(OutDir)\bin\$(tclShExeName);
$(OutDir)\include\tcl.h;
$(OutDir)\lib\tcl$(TclMajorVersion);
$(OutDir)\lib\tcl$(TclMajorVersion).$(TclMinorVersion);
$(OutDir)\lib\$(tclLibName)" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup> <PropertyGroup>
@ -66,28 +56,17 @@
<TclDirs>INSTALLDIR="$(OutDir.TrimEnd(`\`))" INSTALL_DIR="$(OutDir.TrimEnd(`\`))"</TclDirs> <TclDirs>INSTALLDIR="$(OutDir.TrimEnd(`\`))" INSTALL_DIR="$(OutDir.TrimEnd(`\`))"</TclDirs>
<DebugFlags Condition="'$(Configuration)' == 'Debug'">DEBUGFLAGS="-wd4456 -wd4457 -wd4458 -wd4459 -wd4996"</DebugFlags> <DebugFlags Condition="'$(Configuration)' == 'Debug'">DEBUGFLAGS="-wd4456 -wd4457 -wd4458 -wd4459 -wd4996"</DebugFlags>
<NMakeBuildCommandLine>setlocal <NMakeBuildCommandLine>setlocal
@(ExpectedOutputs->'if not exist "%(FullPath)" goto build','
')
goto :eof
:build
set VCINSTALLDIR=$(VCInstallDir) set VCINSTALLDIR=$(VCInstallDir)
cd /D "$(tclDir)win" cd /D "$(tclDir)win"
nmake -f makefile.vc MACHINE=$(TclMachine) OPTS=$(TclOpts) $(TclDirs) $(DebugFlags) core shell dlls nmake -f makefile.vc MACHINE=$(TclMachine) OPTS=$(TclOpts) $(TclDirs) $(DebugFlags) core shell dlls
nmake -f makefile.vc MACHINE=$(TclMachine) OPTS=$(TclOpts) $(TclDirs) $(DebugFlags) install-binaries install-libraries nmake -f makefile.vc MACHINE=$(TclMachine) OPTS=$(TclOpts) $(TclDirs) $(DebugFlags) install-binaries install-libraries
copy /Y ..\license.terms "$(OutDir)\tcllicense.terms"
</NMakeBuildCommandLine> </NMakeBuildCommandLine>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Target Name="CopyDll" Inputs="$(OutDir)\bin\$(tclDLLName)" Outputs="$(BuildPath)$(tclDLLName)" AfterTargets="Build">
<Copy SourceFiles="$(OutDir)\bin\$(tclDLLName)" DestinationFiles="$(BuildPath)$(tclDLLName)" />
</Target>
<Target Name="Clean" /> <Target Name="Clean" />
<Target Name="CleanAll">
<Delete Files="$(TargetPath);$(BuildPath)$(tclDLLName)" />
<RemoveDir Directories="$(IntDir)" />
</Target>
<Target Name="ResolveAssemblyReferences" /> <Target Name="ResolveAssemblyReferences" />
</Project> </Project>

View file

@ -17,9 +17,8 @@
<tclDir>$(ExternalsDir)tcl-core-$(TclMajorVersion).$(TclMinorVersion).$(TclPatchLevel).$(TclRevision)\</tclDir> <tclDir>$(ExternalsDir)tcl-core-$(TclMajorVersion).$(TclMinorVersion).$(TclPatchLevel).$(TclRevision)\</tclDir>
<tkDir>$(ExternalsDir)tk-$(TkMajorVersion).$(TkMinorVersion).$(TkPatchLevel).$(TkRevision)\</tkDir> <tkDir>$(ExternalsDir)tk-$(TkMajorVersion).$(TkMinorVersion).$(TkPatchLevel).$(TkRevision)\</tkDir>
<tixDir>$(ExternalsDir)tix-$(TixMajorVersion).$(TixMinorVersion).$(TixPatchLevel).$(TixRevision)\</tixDir> <tixDir>$(ExternalsDir)tix-$(TixMajorVersion).$(TixMinorVersion).$(TixPatchLevel).$(TixRevision)\</tixDir>
<tcltkDir>$(ExternalsDir)tcltk\</tcltkDir> <tcltkDir>$(ExternalsDir)tcltk-$(TclMajorVersion).$(TclMinorVersion).$(TclPatchLevel).$(TclRevision)\$(ArchName)\</tcltkDir>
<tcltkDir Condition="'$(Platform)' == 'x64'">$(ExternalsDir)tcltk64\</tcltkDir> <!--<TclDebugExt Condition="'$(Configuration)' == 'Debug'">g</TclDebugExt>-->
<TclDebugExt Condition="'$(Configuration)' == 'Debug'">g</TclDebugExt>
<tclDLLName>tcl$(TclMajorVersion)$(TclMinorVersion)t$(TclDebugExt).dll</tclDLLName> <tclDLLName>tcl$(TclMajorVersion)$(TclMinorVersion)t$(TclDebugExt).dll</tclDLLName>
<tclLibName>tcl$(TclMajorVersion)$(TclMinorVersion)t$(TclDebugExt).lib</tclLibName> <tclLibName>tcl$(TclMajorVersion)$(TclMinorVersion)t$(TclDebugExt).lib</tclLibName>
<tclShExeName>tclsh$(TclMajorVersion)$(TclMinorVersion)t$(TclDebugExt).exe</tclShExeName> <tclShExeName>tclsh$(TclMajorVersion)$(TclMinorVersion)t$(TclDebugExt).exe</tclShExeName>

View file

@ -37,6 +37,7 @@
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<ProjectGuid>{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}</ProjectGuid> <ProjectGuid>{C5A3E7FB-9695-4B2E-960B-1D9F43F1E555}</ProjectGuid>
<RootNamespace>tix</RootNamespace> <RootNamespace>tix</RootNamespace>
<SupportSigning>true</SupportSigning>
</PropertyGroup> </PropertyGroup>
<Import Project="python.props" /> <Import Project="python.props" />
@ -49,10 +50,6 @@
<TargetPath>$(tixDLLPath)</TargetPath> <TargetPath>$(tixDLLPath)</TargetPath>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<ExpectedOutputs Include="$(TargetPath)" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup> <PropertyGroup>
@ -61,17 +58,22 @@
<DebugFlags Condition="'$(Configuration)' != 'Debug'">DEBUG=0 NODEBUG=1</DebugFlags> <DebugFlags Condition="'$(Configuration)' != 'Debug'">DEBUG=0 NODEBUG=1</DebugFlags>
<CFlags>-c -W3 -nologo -MD -wd4028 -wd4090</CFlags> <CFlags>-c -W3 -nologo -MD -wd4028 -wd4090</CFlags>
<NMakeBuildCommandLine>setlocal <NMakeBuildCommandLine>setlocal
@(ExpectedOutputs->'if not exist "%(FullPath)" goto build','
')
goto :eof
:build
set VCINSTALLDIR=$(VCInstallDir) set VCINSTALLDIR=$(VCInstallDir)
cd /D "$(tixDir)win" cd /D "$(tixDir)win"
nmake /nologo -f makefile.vc MACHINE=$(TclMachine) cflags="$(CFlags)" $(DebugFlags) $(TclShortVersions) $(TixDirs) all install nmake /nologo -f makefile.vc MACHINE=$(TclMachine) cflags="$(CFlags)" $(DebugFlags) $(TclShortVersions) $(TixDirs) all install
copy /Y ..\license.terms "$(OutDir)\tixlicense.terms"
</NMakeBuildCommandLine> </NMakeBuildCommandLine>
<NMakeCleanCommandLine>rmdir /q/s "$(OutDir.TrimEnd(`\`))"</NMakeCleanCommandLine> <NMakeCleanCommandLine>rmdir /q/s "$(OutDir.TrimEnd(`\`))"</NMakeCleanCommandLine>
</PropertyGroup> </PropertyGroup>
<Target Name="SignFiles" AfterTargets="Build" Condition="$(_SignCommand) != ''">
<ItemGroup>
<FilesToSign Include="$(OutDir)\bin\*.exe" />
<FilesToSign Include="$(OutDir)\bin\*.dll" />
</ItemGroup>
<Exec Command="$(_SignCommand) &quot;%(FilesToSign.FullPath)&quot;" ContinueOnError="true" />
</Target>
<ItemGroup> <ItemGroup>
<ProjectReference Include="tcl.vcxproj"> <ProjectReference Include="tcl.vcxproj">
<Project>{b5fd6f1d-129e-4bff-9340-03606fac7283}</Project> <Project>{b5fd6f1d-129e-4bff-9340-03606fac7283}</Project>

View file

@ -49,14 +49,6 @@
<TargetPath>$(OutDir)bin\$(tkDLLName)</TargetPath> <TargetPath>$(OutDir)bin\$(tkDLLName)</TargetPath>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<ExpectedOutputs Include="
$(OutDir)bin\$(tkDLLName);
$(OutDir)include\tk.h;
$(OutDir)lib\$(tkLibName);
$(OutDir)lib\tk$(TkMajorVersion).$(TkMinorVersion)" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<PropertyGroup> <PropertyGroup>
@ -65,14 +57,11 @@
<TkDirs>TCLDIR="$(tclDir.TrimEnd(`\`))" INSTALLDIR="$(OutDir.TrimEnd(`\`))"</TkDirs> <TkDirs>TCLDIR="$(tclDir.TrimEnd(`\`))" INSTALLDIR="$(OutDir.TrimEnd(`\`))"</TkDirs>
<DebugFlags Condition="'$(Configuration)' == 'Debug'">DEBUGFLAGS="-wd4456 -wd4457 -wd4458 -wd4459 -wd4996"</DebugFlags> <DebugFlags Condition="'$(Configuration)' == 'Debug'">DEBUGFLAGS="-wd4456 -wd4457 -wd4458 -wd4459 -wd4996"</DebugFlags>
<NMakeBuildCommandLine>setlocal <NMakeBuildCommandLine>setlocal
@(ExpectedOutputs->'if not exist "%(FullPath)" goto build','
')
goto :eof
:build
set VCINSTALLDIR=$(VCInstallDir) set VCINSTALLDIR=$(VCInstallDir)
cd /D "$(tkDir)win" cd /D "$(tkDir)win"
nmake /nologo -f makefile.vc RC=rc MACHINE=$(TclMachine) OPTS=$(TkOpts) $(TkDirs) $(DebugFlags) all nmake /nologo -f makefile.vc RC=rc MACHINE=$(TclMachine) OPTS=$(TkOpts) $(TkDirs) $(DebugFlags) all
nmake /nologo -f makefile.vc RC=rc MACHINE=$(TclMachine) OPTS=$(TkOpts) $(TkDirs) $(DebugFlags) install-binaries install-libraries nmake /nologo -f makefile.vc RC=rc MACHINE=$(TclMachine) OPTS=$(TkOpts) $(TkDirs) $(DebugFlags) install-binaries install-libraries
copy /Y ..\license.terms "$(OutDir)\tklicense.terms"
</NMakeBuildCommandLine> </NMakeBuildCommandLine>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@ -83,15 +72,7 @@ nmake /nologo -f makefile.vc RC=rc MACHINE=$(TclMachine) OPTS=$(TkOpts) $(TkDirs
</ItemGroup> </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<Target Name="CopyDll" Inputs="$(OutDir)\bin\$(tkDLLName)" Outputs="$(BuildPath)$(tkDLLName)" AfterTargets="Build">
<Copy SourceFiles="$(OutDir)\bin\$(tkDLLName)" DestinationFiles="$(BuildPath)$(tkDLLName)" />
</Target>
<Target Name="Clean" /> <Target Name="Clean" />
<Target Name="CleanAll">
<Delete Files="$(TargetPath);$(BuildPath)$(tkDLLName)" />
<RemoveDir Directories="$(IntDir)" />
</Target>
<Target Name="ResolveAssemblyReferences" /> <Target Name="ResolveAssemblyReferences" />
</Project> </Project>

View file

@ -76,9 +76,6 @@ if ERRORLEVEL 1 (echo Cannot locate MSBuild.exe on PATH or as MSBUILD variable &
if "%SKIPBUILD%" EQU "1" goto skipdoc if "%SKIPBUILD%" EQU "1" goto skipdoc
if "%SKIPDOC%" EQU "1" goto skipdoc if "%SKIPDOC%" EQU "1" goto skipdoc
if not defined PYTHON where py -q || echo Cannot find py on path and PYTHON is not set. && exit /B 1
if not defined SPHINXBUILD where sphinx-build -q || echo Cannot find sphinx-build on path and SPHINXBUILD is not set. && exit /B 1
call "%D%..\..\doc\make.bat" htmlhelp call "%D%..\..\doc\make.bat" htmlhelp
if errorlevel 1 goto :eof if errorlevel 1 goto :eof
:skipdoc :skipdoc

View file

@ -26,10 +26,10 @@
<LicenseFiles Include="$(PySourcePath)LICENSE; <LicenseFiles Include="$(PySourcePath)LICENSE;
crtlicense.txt; crtlicense.txt;
$(bz2Dir)LICENSE; $(bz2Dir)LICENSE;
$(opensslDir)LICENSE; $(opensslOutDir)LICENSE;
$(tclDir)license.terms; $(tcltkDir)tcllicense.terms;
$(tkDir)license.terms; $(tcltkDir)tklicense.terms;
$(tixDir)license.terms" /> $(tcltkDir)tixlicense.terms" />
<_LicenseFiles Include="@(LicenseFiles)"> <_LicenseFiles Include="@(LicenseFiles)">
<Content>$([System.IO.File]::ReadAllText(%(FullPath)))</Content> <Content>$([System.IO.File]::ReadAllText(%(FullPath)))</Content>
</_LicenseFiles> </_LicenseFiles>

View file

@ -12,7 +12,7 @@ set DO_FETCH=true
set DO_CLEAN=false set DO_CLEAN=false
:CheckOpts :CheckOpts
if "%~1"=="--python" (set PYTHON_FOR_BUILD=%2) & shift & shift & goto CheckOpts if "%~1"=="--python" (set PYTHON=%2) & shift & shift & goto CheckOpts
if "%~1"=="--organization" (set ORG=%2) & shift & shift & goto CheckOpts if "%~1"=="--organization" (set ORG=%2) & shift & shift & goto CheckOpts
if "%~1"=="-c" (set DO_CLEAN=true) & shift & goto CheckOpts if "%~1"=="-c" (set DO_CLEAN=true) & shift & goto CheckOpts
if "%~1"=="--clean" (set DO_CLEAN=true) & shift & goto CheckOpts if "%~1"=="--clean" (set DO_CLEAN=true) & shift & goto CheckOpts
@ -32,23 +32,7 @@ if "%DO_FETCH%"=="false" goto end
if "%ORG%"=="" (set ORG=python) if "%ORG%"=="" (set ORG=python)
if "%PYTHON_FOR_BUILD%"=="" ( call "%PCBUILD%\find_python.bat" "%PYTHON%"
echo Checking for installed python...
py -3.6 -V >nul 2>&1 && (set PYTHON_FOR_BUILD=py -3.6)
)
if "%PYTHON_FOR_BUILD%"=="" (
if NOT exist "%EXTERNALS_DIR%" mkdir "%EXTERNALS_DIR%"
if NOT exist "%NUGET%" (
echo Downloading nuget...
rem NB: Must use single quotes around NUGET here, NOT double!
rem Otherwise, a space in the path would break things
powershell.exe -Command Invoke-WebRequest %NUGET_URL% -OutFile '%NUGET%'
)
echo Installing Python via nuget...
"%NUGET%" install pythonx86 -ExcludeVersion -OutputDirectory "%EXTERNALS_DIR%"
rem Quote it here; it's not quoted later because "py -3.6" wouldn't work
set PYTHON_FOR_BUILD="%EXTERNALS_DIR%\pythonx86\tools\python.exe"
)
echo.Fetching external libraries... echo.Fetching external libraries...
@ -59,7 +43,7 @@ for %%e in (%libraries%) do (
echo.%%e already exists, skipping. echo.%%e already exists, skipping.
) else ( ) else (
echo.Fetching %%e... echo.Fetching %%e...
%PYTHON_FOR_BUILD% "%PCBUILD%get_external.py" -e "%EXTERNALS_DIR%" -O %ORG% %%e %PYTHON% "%PCBUILD%get_external.py" -e "%EXTERNALS_DIR%" -O %ORG% %%e
) )
) )
@ -79,7 +63,7 @@ for %%b in (%binaries%) do (
echo.%%b already exists, skipping. echo.%%b already exists, skipping.
) else ( ) else (
echo.Fetching %%b... echo.Fetching %%b...
%PYTHON_FOR_BUILD% "%PCBUILD%get_external.py" -e "%EXTERNALS_DIR%" -b -O %ORG% %%b %PYTHON% "%PCBUILD%get_external.py" -e "%EXTERNALS_DIR%" -b -O %ORG% %%b
) )
) )

View file

@ -14,6 +14,12 @@
<Component Id="sqlite3.dll" Directory="DLLs" Guid="*"> <Component Id="sqlite3.dll" Directory="DLLs" Guid="*">
<File Name="sqlite3.dll" KeyPath="yes" /> <File Name="sqlite3.dll" KeyPath="yes" />
</Component> </Component>
<Component Id="libeay32.dll" Directory="DLLs" Guid="*">
<File Name="libeay32.dll" KeyPath="yes" />
</Component>
<Component Id="ssleay32.dll" Directory="DLLs" Guid="*">
<File Name="ssleay32.dll" KeyPath="yes" />
</Component>
</ComponentGroup> </ComponentGroup>
</Fragment> </Fragment>
@ -30,6 +36,12 @@
<Component Id="sqlite3.pdb" Directory="DLLs" Guid="*"> <Component Id="sqlite3.pdb" Directory="DLLs" Guid="*">
<File Name="sqlite3.pdb" /> <File Name="sqlite3.pdb" />
</Component> </Component>
<Component Id="libeay32.pdb" Directory="DLLs" Guid="*">
<File Name="libeay32.pdb" KeyPath="yes" />
</Component>
<Component Id="ssleay32.pdb" Directory="DLLs" Guid="*">
<File Name="ssleay32.pdb" KeyPath="yes" />
</Component>
</ComponentGroup> </ComponentGroup>
</Fragment> </Fragment>

View file

@ -20,14 +20,6 @@
<WxlTemplate Include="*.wxl_template" /> <WxlTemplate Include="*.wxl_template" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<InstallFiles Include="$(tcltkDir)bin\*.dll" Exclude="$(tcltkDir)bin\*g.dll">
<SourceBase>$(tcltkDir)</SourceBase>
<Source>!(bindpath.tcltk)</Source>
<TargetBase>$(tcltkDir)bin</TargetBase>
<Target_>DLLs\</Target_>
<Group>tcltk_dlls</Group>
</InstallFiles>
<InstallFiles Include="$(tcltkDir)lib\**\*"> <InstallFiles Include="$(tcltkDir)lib\**\*">
<SourceBase>$(tcltkDir)</SourceBase> <SourceBase>$(tcltkDir)</SourceBase>
<Source>!(bindpath.tcltk)</Source> <Source>!(bindpath.tcltk)</Source>

View file

@ -8,7 +8,6 @@
<Feature Id="DebugBinaries" AllowAdvertise="no" Title="!(loc.Title_d)" Description="!(loc.Description_d)"> <Feature Id="DebugBinaries" AllowAdvertise="no" Title="!(loc.Title_d)" Description="!(loc.Description_d)">
<ComponentGroupRef Id="tkinter_extension_d" /> <ComponentGroupRef Id="tkinter_extension_d" />
<ComponentGroupRef Id="tcltk_dlls_d" />
</Feature> </Feature>
</Product> </Product>
</Wix> </Wix>

View file

@ -5,9 +5,17 @@
<Component Id="_tkinter.pyd" Directory="DLLs" Guid="*"> <Component Id="_tkinter.pyd" Directory="DLLs" Guid="*">
<File Name="_tkinter.pyd" KeyPath="yes" /> <File Name="_tkinter.pyd" KeyPath="yes" />
</Component> </Component>
</ComponentGroup>
<ComponentGroup Id="tcltk_dlls">
<Component Id="_tkinter.lib" Directory="libs" Guid="*"> <Component Id="_tkinter.lib" Directory="libs" Guid="*">
<File Name="_tkinter.lib" KeyPath="yes" /> <File Name="_tkinter.lib" KeyPath="yes" />
</Component> </Component>
<Component Id="tcl86t.dll" Directory="DLLs" Guid="*">
<File Name="tcl86t.dll" KeyPath="yes" />
</Component>
<Component Id="tk86t.dll" Directory="DLLs" Guid="*">
<File Name="tk86t.dll" KeyPath="yes" />
</Component>
</ComponentGroup> </ComponentGroup>
</Fragment> </Fragment>