summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2012-05-18 12:24:09 (GMT)
committerMartin v. Löwis <martin@v.loewis.de>2012-05-18 12:24:09 (GMT)
commit0d635aef92758ae7502a5dccf449b8597ce36ba6 (patch)
treef12fd6192670b9fa3ad2438ffdaa9b7e8c9e7985
parentf7a661571945b02e4c3aa77f30a86a3244cb5d2b (diff)
parente9dfb0f8229e6477f2d22753252dfb78fd3e25d3 (diff)
downloadcpython-0d635aef92758ae7502a5dccf449b8597ce36ba6.zip
cpython-0d635aef92758ae7502a5dccf449b8597ce36ba6.tar.gz
cpython-0d635aef92758ae7502a5dccf449b8597ce36ba6.tar.bz2
merge heads
-rw-r--r--PCbuild/build_ssl.py42
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)