Staging
v0.5.1
https://github.com/python/cpython
Revision 748d38bf529d71d87cc7ef6d63e9df7d7d771ac9 authored by Miss Islington (bot) on 22 November 2020, 01:45:21 UTC, committed by GitHub on 22 November 2020, 01:45:21 UTC


As [[bpo-38443]()]() says the error message from configure when specifying --enable-universalsdk with a set of architectures that is not supported by the compiler is not very helpful.   This PR explicitly checks if the compiler works and bails out if it doesn't.
(cherry picked from commit 0f20bd9042c9b7fce20c3b9511cd0820b30094c3)


Co-authored-by: Ronald Oussoren <ronaldoussoren@mac.com>
1 parent 89d74d0
Raw File
Tip revision: 748d38bf529d71d87cc7ef6d63e9df7d7d771ac9 authored by Miss Islington (bot) on 22 November 2020, 01:45:21 UTC
[3.9] bpo-38443: Check that the specified universal architectures work (GH-22910) (GH-23451)
Tip revision: 748d38b
Extras.install.py
"""Recursively copy a directory but skip undesired files and
directories (CVS, backup files, pyc files, etc)"""

import sys
import os
import shutil

verbose = 1
debug = 0

def isclean(name):
    if name == 'CVS': return 0
    if name == '.cvsignore': return 0
    if name == '.DS_store': return 0
    if name == '.svn': return 0
    if name.endswith('~'): return 0
    if name.endswith('.BAK'): return 0
    if name.endswith('.pyc'): return 0
    if name.endswith('.pyo'): return 0
    if name.endswith('.orig'): return 0
    return 1

def copycleandir(src, dst):
    for cursrc, dirs, files in os.walk(src):
        assert cursrc.startswith(src)
        curdst = dst + cursrc[len(src):]
        if verbose:
            print("mkdir", curdst)
        if not debug:
            if not os.path.exists(curdst):
                os.makedirs(curdst)
        for fn in files:
            if isclean(fn):
                if verbose:
                    print("copy", os.path.join(cursrc, fn), os.path.join(curdst, fn))
                if not debug:
                    shutil.copy2(os.path.join(cursrc, fn), os.path.join(curdst, fn))
            else:
                if verbose:
                    print("skipfile", os.path.join(cursrc, fn))
        for i in range(len(dirs)-1, -1, -1):
            if not isclean(dirs[i]):
                if verbose:
                    print("skipdir", os.path.join(cursrc, dirs[i]))
                del dirs[i]

def main():
    if len(sys.argv) != 3:
        sys.stderr.write("Usage: %s srcdir dstdir\n" % sys.argv[0])
        sys.exit(1)
    copycleandir(sys.argv[1], sys.argv[2])

if __name__ == '__main__':
    main()
back to top