Various updates for Python 3.9 and more MacOS support, inherited from 0.26.

This commit is contained in:
Matthias Koefferlein
2020-11-28 22:15:44 +01:00
parent 3dff2c638e
commit 07d2eeaa3b
3 changed files with 151 additions and 13 deletions
+19 -10
View File
@@ -59,6 +59,7 @@ from setuptools.extension import Extension, Library
import glob
import os
import re
import sys
import platform
from distutils.errors import CompileError
import distutils.command.build_ext
@@ -102,12 +103,20 @@ def parallelCCompile(self, sources, output_dir=None, macros=None, include_dirs=N
# only if python version > 2.6, somehow the travis compiler hangs in 2.6
import sys
if sys.version_info[0] * 10 + sys.version_info[1] > 26:
if sys.version_info[0] * 100 + sys.version_info[1] > 206:
import distutils.ccompiler
distutils.ccompiler.CCompiler.compile = parallelCCompile
# put a path in quotes if required
def quote_path(path):
# looks like disutils don't need path quoting in version >= 3.9:
if " " in path and sys.version_info[0] * 100 + sys.version_info[1] < 309:
return "\"" + path + "\""
else:
return path
# TODO: delete (Obsolete)
# patch get_ext_filename
from distutils.command.build_ext import build_ext
@@ -252,10 +261,10 @@ class Config(object):
if platform.system() == "Windows":
bits = os.getenv("KLAYOUT_BITS")
if bits:
return ["\"-I" + os.path.join(bits, "zlib", "include") + "\"",
"\"-I" + os.path.join(bits, "ptw", "include") + "\"",
"\"-I" + os.path.join(bits, "expat", "include") + "\"",
"\"-I" + os.path.join(bits, "curl", "include") + "\""]
return [quote_path("-I" + os.path.join(bits, "zlib", "include")),
quote_path("-I" + os.path.join(bits, "ptw", "include")),
quote_path("-I" + os.path.join(bits, "expat", "include")),
quote_path("-I" + os.path.join(bits, "curl", "include"))]
else:
return []
elif platform.system() == "Darwin":
@@ -285,10 +294,10 @@ class Config(object):
args = ["/DLL"]
bits = os.getenv("KLAYOUT_BITS")
if bits:
args += ["\"/LIBPATH:" + os.path.join(bits, "zlib", "libraries") + "\"",
"\"/LIBPATH:" + os.path.join(bits, "ptw", "libraries") + "\"",
"\"/LIBPATH:" + os.path.join(bits, "expat", "libraries") + "\"",
"\"/LIBPATH:" + os.path.join(bits, "curl", "libraries") + "\""]
args += [quote_path("/LIBPATH:" + os.path.join(bits, "zlib", "libraries")),
quote_path("/LIBPATH:" + os.path.join(bits, "ptw", "libraries")),
quote_path("/LIBPATH:" + os.path.join(bits, "expat", "libraries")),
quote_path("/LIBPATH:" + os.path.join(bits, "curl", "libraries"))]
return args
elif platform.system() == "Darwin":
# For the dependency modules, make sure we produce a dylib.