]> granicus.if.org Git - python/commitdiff
Closes #25085 and #25086: Exclude distutils and test directories from embeddable...
authorSteve Dower <steve.dower@microsoft.com>
Tue, 22 Sep 2015 22:03:54 +0000 (15:03 -0700)
committerSteve Dower <steve.dower@microsoft.com>
Tue, 22 Sep 2015 22:03:54 +0000 (15:03 -0700)
Tools/msi/make_zip.proj
Tools/msi/make_zip.py

index 766fe8597c0ba84d96fbd1f143cec93ffc3d2b72..d2e031f6b6aba14a6afd6602582a1af30c5d4153 100644 (file)
@@ -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>
 
index c256008acaa6dc514c3a9d70956c4a5baf55f13c..96fdad2197b366335574726fadc3d4e41aad8269 100644 (file)
@@ -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'}: