diff options
author | Steve Dower <steve.dower@microsoft.com> | 2016-06-27 16:34:18 (GMT) |
---|---|---|
committer | Steve Dower <steve.dower@microsoft.com> | 2016-06-27 16:34:18 (GMT) |
commit | 33128c815e8e7e35ab913e9eb176cf14842ea962 (patch) | |
tree | d6487c3944489dfb2b6bef51db0aac74f1fb76f6 /Tools/msi | |
parent | 6803f35acce4490de75a3a234000568904ea87f8 (diff) | |
download | cpython-33128c815e8e7e35ab913e9eb176cf14842ea962.zip cpython-33128c815e8e7e35ab913e9eb176cf14842ea962.tar.gz cpython-33128c815e8e7e35ab913e9eb176cf14842ea962.tar.bz2 |
Include libs folder in nuget package and allow preinstalling packages
Diffstat (limited to 'Tools/msi')
-rw-r--r-- | Tools/msi/make_zip.py | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/Tools/msi/make_zip.py b/Tools/msi/make_zip.py index 2fb40d1..de978ba 100644 --- a/Tools/msi/make_zip.py +++ b/Tools/msi/make_zip.py @@ -12,9 +12,19 @@ from zipfile import ZipFile, ZIP_DEFLATED import subprocess 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|pdb|lib)$', re.IGNORECASE) PYTHON_DLL_RE = re.compile(r'python\d\d?\.dll$', re.IGNORECASE) +DEBUG_FILES = { + '_ctypes_test', + '_testbuffer', + '_testcapi', + '_testimportmultiple', + '_testmultiphase', + 'xxlimited', + 'python3_dstub', +} + EXCLUDE_FROM_LIBRARY = { '__pycache__', 'ensurepip', @@ -30,6 +40,12 @@ EXCLUDE_FILE_FROM_LIBRARY = { 'bdist_wininst.py', } +EXCLUDE_FILE_FROM_LIBS = { + 'ssleay', + 'libeay', + 'python3stub', +} + def is_not_debug(p): if DEBUG_RE.search(p.name): return False @@ -37,14 +53,7 @@ def is_not_debug(p): if TKTCL_RE.search(p.name): return False - return p.name.lower() not in { - '_ctypes_test.pyd', - '_testbuffer.pyd', - '_testcapi.pyd', - '_testimportmultiple.pyd', - '_testmultiphase.pyd', - 'xxlimited.pyd', - } + return p.stem.lower() not in DEBUG_FILES def is_not_debug_or_python(p): return is_not_debug(p) and not PYTHON_DLL_RE.search(p.name) @@ -68,6 +77,12 @@ def include_in_lib(p): suffix = p.suffix.lower() return suffix not in {'.pyc', '.pyo', '.exe'} +def include_in_libs(p): + if not is_not_debug(p): + return False + + return p.stem.lower() not in EXCLUDE_FILE_FROM_LIBS + def include_in_tools(p): if p.is_dir() and p.name.lower() in {'scripts', 'i18n', 'pynche', 'demo', 'parser'}: return True @@ -84,6 +99,7 @@ FULL_LAYOUT = [ ('include/', 'include', '*.h', None), ('include/', 'PC', 'pyconfig.h', None), ('Lib/', 'Lib', '**/*', include_in_lib), + ('libs/', 'PCBuild/$arch', '*.lib', include_in_libs), ('Tools/', 'Tools', '**/*', include_in_tools), ] |