summaryrefslogtreecommitdiff
path: root/PCbuild
diff options
context:
space:
mode:
authorZachary Ware <zachary.ware@gmail.com>2017-09-06 17:29:37 -0700
committerGitHub <noreply@github.com>2017-09-06 17:29:37 -0700
commitd01db1c2a2a71455163a1d3b214cc8dc27201303 (patch)
tree6b089cebac71c3bc48df25985c2911597c559a5b /PCbuild
parente7c566caf177afe43b57f0b2723e723d880368e8 (diff)
downloadcpython-git-d01db1c2a2a71455163a1d3b214cc8dc27201303.tar.gz
bpo-31358: Pull zlib out of the repository (GH-3375)
Also enable building externals by default on Windows, use PCbuild\build.bat's -E option to disable it.
Diffstat (limited to 'PCbuild')
-rw-r--r--PCbuild/build.bat8
-rw-r--r--PCbuild/get_externals.bat1
-rw-r--r--PCbuild/pcbuild.proj2
-rw-r--r--PCbuild/python.props1
-rw-r--r--PCbuild/pythoncore.vcxproj57
5 files changed, 41 insertions, 28 deletions
diff --git a/PCbuild/build.bat b/PCbuild/build.bat
index 3826c664ad..99d9eadc28 100644
--- a/PCbuild/build.bat
+++ b/PCbuild/build.bat
@@ -20,9 +20,10 @@ echo. -h Display this help message
echo. -V Display version information for the current build
echo. -r Target Rebuild instead of Build
echo. -d Set the configuration to Debug
-echo. -e Build external libraries fetched by get_externals.bat
-echo. Extension modules that depend on external libraries will not attempt
-echo. to build if this flag is not present
+echo. -E Don't fetch or build external libraries. Extension modules that
+echo. depend on external libraries will not attempt to build if this flag
+echo. is present; -e is also accepted to explicitly enable fetching and
+echo. building externals.
echo. -m Enable parallel build (enabled by default)
echo. -M Disable parallel build
echo. -v Increased output messages
@@ -79,6 +80,7 @@ rem These use the actual property names used by MSBuild. We could just let
rem them in through the environment, but we specify them on the command line
rem anyway for visibility so set defaults after this
if "%~1"=="-e" (set IncludeExternals=true) & shift & goto CheckOpts
+if "%~1"=="-E" (set IncludeExternals=false) & shift & goto CheckOpts
if "%~1"=="--no-ssl" (set IncludeSSL=false) & shift & goto CheckOpts
if "%~1"=="--no-tkinter" (set IncludeTkinter=false) & shift & goto CheckOpts
diff --git a/PCbuild/get_externals.bat b/PCbuild/get_externals.bat
index 1c0e9a0305..0bbd2ad232 100644
--- a/PCbuild/get_externals.bat
+++ b/PCbuild/get_externals.bat
@@ -55,6 +55,7 @@ if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.6.0
if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tk-8.6.6.0
if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tix-8.4.3.6
set libraries=%libraries% xz-5.2.2
+set libraries=%libraries% zlib-1.2.11
for %%e in (%libraries%) do (
if exist "%EXTERNALS_DIR%\%%e" (
diff --git a/PCbuild/pcbuild.proj b/PCbuild/pcbuild.proj
index 8d30e0895c..22cf7b5418 100644
--- a/PCbuild/pcbuild.proj
+++ b/PCbuild/pcbuild.proj
@@ -117,4 +117,4 @@
<Target Name="Rebuild" DependsOnTargets="Clean;Build" />
<Target Name="RebuildAll" DependsOnTargets="CleanAll;Build" />
-</Project> \ No newline at end of file
+</Project>
diff --git a/PCbuild/python.props b/PCbuild/python.props
index c2baebc06c..3bfbb77ab2 100644
--- a/PCbuild/python.props
+++ b/PCbuild/python.props
@@ -51,6 +51,7 @@
<opensslOutDir>$(ExternalsDir)openssl-bin-1.0.2k\$(ArchName)\</opensslOutDir>
<opensslIncludeDir>$(opensslOutDir)include</opensslIncludeDir>
<nasmDir>$(ExternalsDir)\nasm-2.11.06\</nasmDir>
+ <zlibDir>$(ExternalsDir)\zlib-1.2.11\</zlibDir>
<!-- Suffix for all binaries when building for debug -->
<PyDebugExt Condition="'$(PyDebugExt)' == '' and $(Configuration) == 'Debug'">_d</PyDebugExt>
diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj
index 763540e173..b0d2e9be8a 100644
--- a/PCbuild/pythoncore.vcxproj
+++ b/PCbuild/pythoncore.vcxproj
@@ -66,8 +66,10 @@
<ItemDefinitionGroup>
<ClCompile>
<AdditionalOptions>/Zm200 %(AdditionalOptions)</AdditionalOptions>
- <AdditionalIncludeDirectories>$(PySourcePath)Python;$(PySourcePath)Modules\zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(PySourcePath)Python;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="$(IncludeExternals)">$(zlibDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_USRDLL;Py_BUILD_CORE;Py_ENABLE_SHARED;MS_DLL_ID="$(SysWinVer)";%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions Condition="$(IncludeExternals)">_Py_HAVE_ZLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalDependencies>version.lib;shlwapi.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
@@ -175,17 +177,6 @@
<ClInclude Include="..\Modules\sre_constants.h" />
<ClInclude Include="..\Modules\sre_lib.h" />
<ClInclude Include="..\Modules\_io\_iomodule.h" />
- <ClInclude Include="..\Modules\zlib\crc32.h" />
- <ClInclude Include="..\Modules\zlib\deflate.h" />
- <ClInclude Include="..\Modules\zlib\inffast.h" />
- <ClInclude Include="..\Modules\zlib\inffixed.h" />
- <ClInclude Include="..\Modules\zlib\inflate.h" />
- <ClInclude Include="..\Modules\zlib\inftrees.h" />
- <ClInclude Include="..\Modules\zlib\trees.h" />
- <ClInclude Include="..\Modules\zlib\zconf.h" />
- <ClInclude Include="..\Modules\zlib\zconf.in.h" />
- <ClInclude Include="..\Modules\zlib\zlib.h" />
- <ClInclude Include="..\Modules\zlib\zutil.h" />
<ClInclude Include="..\Modules\cjkcodecs\alg_jisx0201.h" />
<ClInclude Include="..\Modules\cjkcodecs\cjkcodecs.h" />
<ClInclude Include="..\Modules\cjkcodecs\emu_jisx0213_2000.h" />
@@ -213,6 +204,19 @@
<ClInclude Include="..\Python\thread_nt.h" />
<ClInclude Include="..\Python\wordcode_helpers.h" />
</ItemGroup>
+ <ItemGroup Condition="$(IncludeExternals)">
+ <ClInclude Include="$(zlibDir)\crc32.h" />
+ <ClInclude Include="$(zlibDir)\deflate.h" />
+ <ClInclude Include="$(zlibDir)\inffast.h" />
+ <ClInclude Include="$(zlibDir)\inffixed.h" />
+ <ClInclude Include="$(zlibDir)\inflate.h" />
+ <ClInclude Include="$(zlibDir)\inftrees.h" />
+ <ClInclude Include="$(zlibDir)\trees.h" />
+ <ClInclude Include="$(zlibDir)\zconf.h" />
+ <ClInclude Include="$(zlibDir)\zconf.in.h" />
+ <ClInclude Include="$(zlibDir)\zlib.h" />
+ <ClInclude Include="$(zlibDir)\zutil.h" />
+ </ItemGroup>
<ItemGroup>
<ClCompile Include="..\Modules\_bisectmodule.c" />
<ClCompile Include="..\Modules\_blake2\blake2module.c" />
@@ -264,7 +268,6 @@
<ClCompile Include="..\Modules\timemodule.c" />
<ClCompile Include="..\Modules\xxsubtype.c" />
<ClCompile Include="..\Modules\zipimport.c" />
- <ClCompile Include="..\Modules\zlibmodule.c" />
<ClCompile Include="..\Modules\_io\fileio.c" />
<ClCompile Include="..\Modules\_io\bytesio.c" />
<ClCompile Include="..\Modules\_io\stringio.c" />
@@ -273,17 +276,6 @@
<ClCompile Include="..\Modules\_io\textio.c" />
<ClCompile Include="..\Modules\_io\winconsoleio.c" />
<ClCompile Include="..\Modules\_io\_iomodule.c" />
- <ClCompile Include="..\Modules\zlib\adler32.c" />
- <ClCompile Include="..\Modules\zlib\compress.c" />
- <ClCompile Include="..\Modules\zlib\crc32.c" />
- <ClCompile Include="..\Modules\zlib\deflate.c" />
- <ClCompile Include="..\Modules\zlib\infback.c" />
- <ClCompile Include="..\Modules\zlib\inffast.c" />
- <ClCompile Include="..\Modules\zlib\inflate.c" />
- <ClCompile Include="..\Modules\zlib\inftrees.c" />
- <ClCompile Include="..\Modules\zlib\trees.c" />
- <ClCompile Include="..\Modules\zlib\uncompr.c" />
- <ClCompile Include="..\Modules\zlib\zutil.c" />
<ClCompile Include="..\Modules\cjkcodecs\_codecs_cn.c" />
<ClCompile Include="..\Modules\cjkcodecs\_codecs_hk.c" />
<ClCompile Include="..\Modules\cjkcodecs\_codecs_iso2022.c" />
@@ -398,6 +390,20 @@
<ClCompile Include="..\Python\thread.c" />
<ClCompile Include="..\Python\traceback.c" />
</ItemGroup>
+ <ItemGroup Condition="$(IncludeExternals)">
+ <ClCompile Include="..\Modules\zlibmodule.c" />
+ <ClCompile Include="$(zlibDir)\adler32.c" />
+ <ClCompile Include="$(zlibDir)\compress.c" />
+ <ClCompile Include="$(zlibDir)\crc32.c" />
+ <ClCompile Include="$(zlibDir)\deflate.c" />
+ <ClCompile Include="$(zlibDir)\infback.c" />
+ <ClCompile Include="$(zlibDir)\inffast.c" />
+ <ClCompile Include="$(zlibDir)\inflate.c" />
+ <ClCompile Include="$(zlibDir)\inftrees.c" />
+ <ClCompile Include="$(zlibDir)\trees.c" />
+ <ClCompile Include="$(zlibDir)\uncompr.c" />
+ <ClCompile Include="$(zlibDir)\zutil.c" />
+ </ItemGroup>
<ItemGroup>
<ClCompile Include="..\PC\dl_nt.c" />
</ItemGroup>
@@ -433,4 +439,7 @@
<Target Name="_WarnAboutToolset" BeforeTargets="PrepareForBuild" Condition="$(PlatformToolset) != 'v140' and $(PlatformToolset) != 'v141'">
<Warning Text="Toolset $(PlatformToolset) is not used for official builds. Your build may have errors or incompatibilities." />
</Target>
+ <Target Name="_WarnAboutZlib" BeforeTargets="PrepareForBuild" Condition="!$(IncludeExternals)">
+ <Warning Text="Not including zlib is not a supported configuration." />
+ </Target>
</Project>