diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2012-05-18 12:18:26 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2012-05-18 12:18:26 (GMT) |
commit | 207c4b686c517bd40049d5959d82b1fab6b27743 (patch) | |
tree | 6c4db3889a6b9d66a7b245f2f373da98f1377761 | |
parent | d7be30478683251fb4491c0b3de00436b761fb8b (diff) | |
parent | e9dfb0f8229e6477f2d22753252dfb78fd3e25d3 (diff) | |
download | cpython-207c4b686c517bd40049d5959d82b1fab6b27743.zip cpython-207c4b686c517bd40049d5959d82b1fab6b27743.tar.gz cpython-207c4b686c517bd40049d5959d82b1fab6b27743.tar.bz2 |
Merge 3.2 build_ssl changes.
-rw-r--r-- | PCbuild/build_ssl.py | 42 |
1 files changed, 9 insertions, 33 deletions
diff --git a/PCbuild/build_ssl.py b/PCbuild/build_ssl.py index 2cf7fc6..04ad77b 100644 --- a/PCbuild/build_ssl.py +++ b/PCbuild/build_ssl.py @@ -46,7 +46,7 @@ def find_all_on_path(filename, extras = None): # is available. def find_working_perl(perls): for perl in perls: - fh = os.popen('"%s" -e "use Win32;"' % perl) + fh = os.popen('""%s" -e "use Win32;""' % perl) fh.read() rc = fh.close() if rc: @@ -63,37 +63,13 @@ def find_working_perl(perls): print(" Please install ActivePerl and ensure it appears on your path") return None -# Locate the best SSL directory given a few roots to look into. -def find_best_ssl_dir(sources): - candidates = [] - for s in sources: - try: - # note: do not abspath s; the build will fail if any - # higher up directory name has spaces in it. - fnames = os.listdir(s) - except os.error: - fnames = [] - for fname in fnames: - fqn = os.path.join(s, fname) - if os.path.isdir(fqn) and fname.startswith("openssl-"): - candidates.append(fqn) - # Now we have all the candidates, locate the best. - best_parts = [] - best_name = None - for c in candidates: - parts = re.split("[.-]", os.path.basename(c))[1:] - # eg - openssl-0.9.7-beta1 - ignore all "beta" or any other qualifiers - if len(parts) >= 4: - continue - if parts > best_parts: - best_parts = parts - best_name = c - if best_name is not None: - print("Found an SSL directory at '%s'" % (best_name,)) - else: - print("Could not find an SSL directory in '%s'" % (sources,)) - sys.stdout.flush() - return best_name +# Fetch SSL directory from VC properties +def get_ssl_dir(): + propfile = (os.path.join(os.path.dirname(__file__), 'pyproject.vsprops')) + with open(propfile) as f: + m = re.search('openssl-([^"]+)"', f.read()) + return "..\..\openssl-"+m.group(1) + def create_makefile64(makefile, m32): """Create and fix makefile for 64bit @@ -202,7 +178,7 @@ def main(): print("No Perl installation was found. Existing Makefiles are used.") sys.stdout.flush() # Look for SSL 2 levels up from pcbuild - ie, same place zlib etc all live. - ssl_dir = find_best_ssl_dir(("..\\..",)) + ssl_dir = get_ssl_dir() if ssl_dir is None: sys.exit(1) |