Commit 74094f1e authored by Steve Dower's avatar Steve Dower

Closes #25085 and #25086: Exclude distutils and test directories from embeddable distro.

parent 7a3960d6
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
<TargetName>python-$(PythonVersion)-embed-$(ArchName)</TargetName> <TargetName>python-$(PythonVersion)-embed-$(ArchName)</TargetName>
<TargetExt>.zip</TargetExt> <TargetExt>.zip</TargetExt>
<TargetPath>$(OutputPath)\en-us\$(TargetName)$(TargetExt)</TargetPath> <TargetPath>$(OutputPath)\en-us\$(TargetName)$(TargetExt)</TargetPath>
<CleanCommand>rmdir /q/s "$(IntermediateOutputPath)\zip_$(ArchName)"</CleanCommand>
<Arguments>"$(PythonExe)" "$(MSBuildThisFileDirectory)\make_zip.py"</Arguments> <Arguments>"$(PythonExe)" "$(MSBuildThisFileDirectory)\make_zip.py"</Arguments>
<Arguments>$(Arguments) -e -o "$(TargetPath)" -t "$(IntermediateOutputPath)\zip_$(ArchName)" -a $(ArchName)</Arguments> <Arguments>$(Arguments) -e -o "$(TargetPath)" -t "$(IntermediateOutputPath)\zip_$(ArchName)" -a $(ArchName)</Arguments>
<Environment>set DOC_FILENAME=python$(PythonVersion).chm <Environment>set DOC_FILENAME=python$(PythonVersion).chm
...@@ -23,6 +24,7 @@ set VCREDIST_PATH=$(VS140COMNTOOLS)\..\..\VC\redist\$(Platform)\Microsoft.VC140. ...@@ -23,6 +24,7 @@ set VCREDIST_PATH=$(VS140COMNTOOLS)\..\..\VC\redist\$(Platform)\Microsoft.VC140.
<Target Name="_Build"> <Target Name="_Build">
<Exec Command="setlocal <Exec Command="setlocal
$(Environment) $(Environment)
$(CleanCommand)
$(Arguments)" /> $(Arguments)" />
</Target> </Target>
......
...@@ -15,6 +15,20 @@ TKTCL_RE = re.compile(r'^(_?tk|tcl).+\.(pyd|dll)', re.IGNORECASE) ...@@ -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) DEBUG_RE = re.compile(r'_d\.(pyd|dll|exe)$', re.IGNORECASE)
PYTHON_DLL_RE = re.compile(r'python\d\d?\.dll$', 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): def is_not_debug(p):
if DEBUG_RE.search(p.name): if DEBUG_RE.search(p.name):
return False return False
...@@ -37,16 +51,21 @@ def is_not_debug_or_python(p): ...@@ -37,16 +51,21 @@ def is_not_debug_or_python(p):
def include_in_lib(p): def include_in_lib(p):
name = p.name.lower() name = p.name.lower()
if p.is_dir(): if p.is_dir():
if name in {'__pycache__', 'ensurepip', 'idlelib', 'pydoc_data', 'tkinter', 'turtledemo'}: if name in EXCLUDE_FROM_LIBRARY:
return False return False
if name.startswith('plat-'): if name.startswith('plat-'):
return False return False
if name == 'test' and p.parts[-2].lower() == 'lib': if name == 'test' and p.parts[-2].lower() == 'lib':
return False return False
if name in {'test', 'tests'} and p.parts[-3].lower() == 'lib':
return False
return True return True
if name in EXCLUDE_FILE_FROM_LIBRARY:
return False
suffix = p.suffix.lower() suffix = p.suffix.lower()
return suffix not in {'.pyc', '.pyo'} return suffix not in {'.pyc', '.pyo', '.exe'}
def include_in_tools(p): def include_in_tools(p):
if p.is_dir() and p.name.lower() in {'scripts', 'i18n', 'pynche', 'demo', 'parser'}: if p.is_dir() and p.name.lower() in {'scripts', 'i18n', 'pynche', 'demo', 'parser'}:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment