diff options
author | Ralf Gommers <ralf.gommers@googlemail.com> | 2015-03-18 07:28:27 +0100 |
---|---|---|
committer | Ralf Gommers <ralf.gommers@googlemail.com> | 2015-03-19 21:45:44 +0100 |
commit | ab64179ffd2b9705cb4308323062436cd1ac040d (patch) | |
tree | 00bf4d2819f2ce72bfd89a796d36728b2b55ed16 /numpy/distutils/intelccompiler.py | |
parent | 2e0db1c90e7a98322a1222a32da44635474fc4a6 (diff) | |
download | numpy-ab64179ffd2b9705cb4308323062436cd1ac040d.tar.gz |
ENH: distutils: add compiler classes for Intel compilers + MSVC-built Python.
Thanks to Intel for contributing this patch. Contact: Yolanda Chen.
Diffstat (limited to 'numpy/distutils/intelccompiler.py')
-rw-r--r-- | numpy/distutils/intelccompiler.py | 50 |
1 files changed, 44 insertions, 6 deletions
diff --git a/numpy/distutils/intelccompiler.py b/numpy/distutils/intelccompiler.py index 1d8dcd9fd..aed652ee6 100644 --- a/numpy/distutils/intelccompiler.py +++ b/numpy/distutils/intelccompiler.py @@ -2,15 +2,18 @@ from __future__ import division, absolute_import, print_function from distutils.unixccompiler import UnixCCompiler from numpy.distutils.exec_command import find_executable +from numpy.distutils.msvc9compiler import MSVCCompiler +from numpy.distutils.ccompiler import simple_version_match + class IntelCCompiler(UnixCCompiler): - """ A modified Intel compiler compatible with an gcc built Python.""" + """A modified Intel compiler compatible with a GCC-built Python.""" compiler_type = 'intel' cc_exe = 'icc' cc_args = 'fPIC' - def __init__ (self, verbose=0, dry_run=0, force=0): - UnixCCompiler.__init__ (self, verbose, dry_run, force) + def __init__(self, verbose=0, dry_run=0, force=0): + UnixCCompiler.__init__(self, verbose, dry_run, force) self.cc_exe = 'icc -fPIC' compiler = self.cc_exe self.set_executables(compiler=compiler, @@ -19,6 +22,7 @@ class IntelCCompiler(UnixCCompiler): linker_exe=compiler, linker_so=compiler + ' -shared') + class IntelItaniumCCompiler(IntelCCompiler): compiler_type = 'intele' @@ -28,14 +32,16 @@ class IntelItaniumCCompiler(IntelCCompiler): if cc_exe: break + class IntelEM64TCCompiler(UnixCCompiler): - """ A modified Intel x86_64 compiler compatible with a 64bit gcc built Python. + """ + A modified Intel x86_64 compiler compatible with a 64bit GCC-built Python. """ compiler_type = 'intelem' cc_exe = 'icc -m64 -fPIC' cc_args = "-fPIC" - def __init__ (self, verbose=0, dry_run=0, force=0): - UnixCCompiler.__init__ (self, verbose, dry_run, force) + def __init__(self, verbose=0, dry_run=0, force=0): + UnixCCompiler.__init__(self, verbose, dry_run, force) self.cc_exe = 'icc -m64 -fPIC' compiler = self.cc_exe self.set_executables(compiler=compiler, @@ -43,3 +49,35 @@ class IntelEM64TCCompiler(UnixCCompiler): compiler_cxx=compiler, linker_exe=compiler, linker_so=compiler + ' -shared') + + +class IntelCCompilerW(MSVCCompiler): + """ + A modified Intel compiler on Windows compatible with an MSVC-built Python. + """ + compiler_type = 'intelw' + + def __init__(self, verbose=0, dry_run=0, force=0): + MSVCCompiler.__init__(self, verbose, dry_run, force) + version_match = simple_version_match(start='Intel\(R\).*?32,') + self.__version = version_match + + def initialize(self, plat_name=None): + MSVCCompiler.initialize(self, plat_name) + self.cc = self.find_exe("icl.exe") + self.linker = self.find_exe("xilink") + self.compile_options = ['/nologo', '/O3', '/MD', '/W3'] + self.compile_options_debug = ['/nologo', '/Od', '/MDd', '/W3', '/Z7', + '/D_DEBUG'] + + +class IntelEM64TCCompilerW(IntelCCompilerW): + """ + A modified Intel x86_64 compiler compatible with a 64bit MSVC-built Python. + """ + compiler_type = 'intelemw' + + def __init__(self, verbose=0, dry_run=0, force=0): + MSVCCompiler.__init__(self, verbose, dry_run, force) + version_match = simple_version_match(start='Intel\(R\).*?64,') + self.__version = version_match |