From ab64179ffd2b9705cb4308323062436cd1ac040d Mon Sep 17 00:00:00 2001 From: Ralf Gommers Date: Wed, 18 Mar 2015 07:28:27 +0100 Subject: ENH: distutils: add compiler classes for Intel compilers + MSVC-built Python. Thanks to Intel for contributing this patch. Contact: Yolanda Chen. --- numpy/distutils/intelccompiler.py | 50 ++++++++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 6 deletions(-) (limited to 'numpy/distutils/intelccompiler.py') 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 -- cgit v1.2.1