summaryrefslogtreecommitdiffstats
path: root/Tools
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@microsoft.com>2015-09-22 22:03:54 (GMT)
committerSteve Dower <steve.dower@microsoft.com>2015-09-22 22:03:54 (GMT)
commit2495faf8fcbe07ff5a6f422d002a9e39d7eb9e0a (patch)
tree8080fb8d5b7776eaeef0224ed913fde42f4e9239 /Tools
parent57ab1cdb152bdb223555ca2f46de06e3e26485dd (diff)
downloadcpython-2495faf8fcbe07ff5a6f422d002a9e39d7eb9e0a.zip
cpython-2495faf8fcbe07ff5a6f422d002a9e39d7eb9e0a.tar.gz
cpython-2495faf8fcbe07ff5a6f422d002a9e39d7eb9e0a.tar.bz2
Closes #25085 and #25086: Exclude distutils and test directories from embeddable distro.
Diffstat (limited to 'Tools')
-rw-r--r--Tools/msi/make_zip.proj2
-rw-r--r--Tools/msi/make_zip.py23
2 files changed, 23 insertions, 2 deletions
diff --git a/Tools/msi/make_zip.proj b/Tools/msi/make_zip.proj
index 766fe85..d2e031f 100644
--- a/Tools/msi/make_zip.proj
+++ b/Tools/msi/make_zip.proj
@@ -14,6 +14,7 @@
<TargetName>python-$(PythonVersion)-embed-$(ArchName)</TargetName>
<TargetExt>.zip</TargetExt>
<TargetPath>$(OutputPath)\en-us\$(TargetName)$(TargetExt)</TargetPath>
+ <CleanCommand>rmdir /q/s "$(IntermediateOutputPath)\zip_$(ArchName)"</CleanCommand>
<Arguments>"$(PythonExe)" "$(MSBuildThisFileDirectory)\make_zip.py"</Arguments>
<Arguments>$(Arguments) -e -o "$(TargetPath)" -t "$(IntermediateOutputPath)\zip_$(ArchName)" -a $(ArchName)</Arguments>
<Environment>set DOC_FILENAME=python$(PythonVersion).chm
@@ -23,6 +24,7 @@ set VCREDIST_PATH=$(VS140COMNTOOLS)\..\..\VC\redist\$(Platform)\Microsoft.VC140.
<Target Name="_Build">
<Exec Command="setlocal
$(Environment)
+$(CleanCommand)
$(Arguments)" />
</Target>
diff --git a/Tools/msi/make_zip.py b/Tools/msi/make_zip.py
index c256008..96fdad2 100644
--- a/Tools/msi/make_zip.py
+++ b/Tools/msi/make_zip.py
@@ -15,6 +15,20 @@ TKTCL_RE = re.compile(r'^(_?tk|tcl).+\.(pyd|dll)', re.IGNORECASE)
DEBUG_RE = re.compile(r'_d\.(pyd|dll|exe)$', re.IGNORECASE)
PYTHON_DLL_RE = re.compile(r'python\d\d?\.dll$', re.IGNORECASE)
+EXCLUDE_FROM_LIBRARY = {
+ '__pycache__',
+ 'ensurepip',
+ 'idlelib',
+ 'pydoc_data',
+ 'site-packages',
+ 'tkinter',
+ 'turtledemo',
+}
+
+EXCLUDE_FILE_FROM_LIBRARY = {
+ 'bdist_wininst.py',
+}
+
def is_not_debug(p):
if DEBUG_RE.search(p.name):
return False
@@ -37,16 +51,21 @@ def is_not_debug_or_python(p):
def include_in_lib(p):
name = p.name.lower()
if p.is_dir():
- if name in {'__pycache__', 'ensurepip', 'idlelib', 'pydoc_data', 'tkinter', 'turtledemo'}:
+ if name in EXCLUDE_FROM_LIBRARY:
return False
if name.startswith('plat-'):
return False
if name == 'test' and p.parts[-2].lower() == 'lib':
return False
+ if name in {'test', 'tests'} and p.parts[-3].lower() == 'lib':
+ return False
return True
+ if name in EXCLUDE_FILE_FROM_LIBRARY:
+ return False
+
suffix = p.suffix.lower()
- return suffix not in {'.pyc', '.pyo'}
+ return suffix not in {'.pyc', '.pyo', '.exe'}
def include_in_tools(p):
if p.is_dir() and p.name.lower() in {'scripts', 'i18n', 'pynche', 'demo', 'parser'}: