Beispiel #1
0
    def __init__(self, cc=None):
        Platform.__init__(self, 'cl.exe')
        if msvc_compiler_environ:
            self.c_environ = os.environ.copy()
            self.c_environ.update(msvc_compiler_environ)
            # XXX passing an environment to subprocess is not enough. Why?
            os.environ.update(msvc_compiler_environ)

        # detect version of current compiler
        returncode, stdout, stderr = _run_subprocess(self.cc,
                                                     '',
                                                     env=self.c_environ)
        r = re.search('[Vv]ersion\W([0-9]+)\.([0-9]+)', stderr)
        if r is not None:
            self.version = int(''.join(r.groups())) / 10 - 60
        else:
            # Probably not a msvc compiler...
            self.version = 0

        # Install debug options only when interpreter is in debug mode
        if sys.executable.lower().endswith('_d.exe'):
            self.cflags = ['/MDd', '/Z7', '/Od']
            self.link_flags = ['/debug']

            # Increase stack size, for the linker and the stack check code.
            stack_size = 8 << 20  # 8 Mb
            self.link_flags.append('/STACK:%d' % stack_size)
            # The following symbol is used in c/src/stack.h
            self.cflags.append('/DMAX_STACK_SIZE=%d' % (stack_size - 1024))

        if hasattr(sys, 'exec_prefix'):
            self.add_cpython_dirs = True
        else:
            # We are certainly running pypy-c
            self.add_cpython_dirs = False
Beispiel #2
0
    def __init__(self, cc=None):
        Platform.__init__(self, 'cl.exe')
        if msvc_compiler_environ:
            self.c_environ = os.environ.copy()
            self.c_environ.update(msvc_compiler_environ)
            # XXX passing an environment to subprocess is not enough. Why?
            os.environ.update(msvc_compiler_environ)

        # detect version of current compiler
        returncode, stdout, stderr = _run_subprocess(self.cc, '',
                                                     env=self.c_environ)
        r = re.search('[Vv]ersion\W([0-9]+)\.([0-9]+)', stderr)
        if r is not None:
            self.version = int(''.join(r.groups())) / 10 - 60
        else:
            # Probably not a msvc compiler...
            self.version = 0

        # Install debug options only when interpreter is in debug mode
        if sys.executable.lower().endswith('_d.exe'):
            self.cflags = ['/MDd', '/Z7', '/Od']
            self.link_flags = ['/debug']

            # Increase stack size, for the linker and the stack check code.
            stack_size = 8 << 20  # 8 Mb
            self.link_flags.append('/STACK:%d' % stack_size)
            # The following symbol is used in c/src/stack.h
            self.cflags.append('/DMAX_STACK_SIZE=%d' % (stack_size - 1024))

        if hasattr(sys, 'exec_prefix'):
            self.add_cpython_dirs = True
        else:
            # We are certainly running pypy-c
            self.add_cpython_dirs = False
Beispiel #3
0
    def __init__(self, cc=None):
        Platform.__init__(self, "cl.exe")
        if msvc_compiler_environ:
            self.c_environ = os.environ.copy()
            self.c_environ.update(msvc_compiler_environ)
            # XXX passing an environment to subprocess is not enough. Why?
            os.environ.update(msvc_compiler_environ)

        # detect version of current compiler
        returncode, stdout, stderr = _run_subprocess(self.cc, "", env=self.c_environ)
        r = re.match(r"Microsoft.+C/C\+\+.+\s([0-9]+)\.([0-9]+).*", stderr)
        if r is not None:
            self.version = int("".join(r.groups())) / 10 - 60
        else:
            # Probably not a msvc compiler...
            self.version = 0

        # Try to find a masm assembler
        returncode, stdout, stderr = _run_subprocess("ml.exe", "", env=self.c_environ)
        r = re.search("Macro Assembler", stderr)
        if r is None and os.path.exists("c:/masm32/bin/ml.exe"):
            self.masm = "c:/masm32/bin/ml.exe"
        else:
            self.masm = "ml.exe"

        # Install debug options only when interpreter is in debug mode
        if sys.executable.lower().endswith("_d.exe"):
            self.cflags = ["/MDd", "/Z7", "/Od"]
            self.link_flags = ["/debug"]

            # Increase stack size, for the linker and the stack check code.
            stack_size = 8 << 20  # 8 Mb
            self.link_flags.append("/STACK:%d" % stack_size)
            # The following symbol is used in c/src/stack.h
            self.cflags.append("/DMAX_STACK_SIZE=%d" % (stack_size - 1024))
Beispiel #4
0
    def __init__(self, cc=None, x64=False):
        self.x64 = x64
        if x64:
            msvc_compiler_environ = msvc_compiler_environ64
        else:
            msvc_compiler_environ = msvc_compiler_environ32
        Platform.__init__(self, 'cl.exe')
        if msvc_compiler_environ:
            self.c_environ = os.environ.copy()
            self.c_environ.update(msvc_compiler_environ)
            # XXX passing an environment to subprocess is not enough. Why?
            os.environ.update(msvc_compiler_environ)

        # detect version of current compiler
        returncode, stdout, stderr = _run_subprocess(self.cc, '',
                                                     env=self.c_environ)
        r = re.match(r'Microsoft.+C/C\+\+.+\s([0-9]+)\.([0-9]+).*', stderr)
        if r is not None:
            self.version = int(''.join(r.groups())) / 10 - 60
        else:
            # Probably not a msvc compiler...
            self.version = 0

        # Try to find a masm assembler
        returncode, stdout, stderr = _run_subprocess('ml.exe', '',
                                                     env=self.c_environ)
        r = re.search('Macro Assembler', stderr)
        if r is None and os.path.exists('c:/masm32/bin/ml.exe'):
            masm32 = 'c:/masm32/bin/ml.exe'
            masm64 = 'c:/masm64/bin/ml64.exe'
        else:
            masm32 = 'ml.exe'
            masm64 = 'ml64.exe'
        
        if x64:
            self.masm = masm64
        else:
            self.masm = masm32

        # Install debug options only when interpreter is in debug mode
        if sys.executable.lower().endswith('_d.exe'):
            self.cflags = ['/MDd', '/Z7', '/Od']
            self.link_flags = ['/debug']

            # Increase stack size, for the linker and the stack check code.
            stack_size = 8 << 20  # 8 Mb
            self.link_flags.append('/STACK:%d' % stack_size)
            # The following symbol is used in c/src/stack.h
            self.cflags.append('/DMAX_STACK_SIZE=%d' % (stack_size - 1024))
Beispiel #5
0
    def __init__(self, cc=None, x64=False):
        self.x64 = x64
        msvc_compiler_environ = find_msvc_env(x64)
        Platform.__init__(self, 'cl.exe')
        if msvc_compiler_environ:
            self.c_environ = os.environ.copy()
            self.c_environ.update(msvc_compiler_environ)
            # XXX passing an environment to subprocess is not enough. Why?
            os.environ.update(msvc_compiler_environ)

        # detect version of current compiler
        returncode, stdout, stderr = _run_subprocess(self.cc,
                                                     '',
                                                     env=self.c_environ)
        r = re.match(r'Microsoft.+C/C\+\+.+\s([0-9]+)\.([0-9]+).*', stderr)
        if r is not None:
            self.version = int(''.join(r.groups())) / 10 - 60
        else:
            # Probably not a msvc compiler...
            self.version = 0

        # Try to find a masm assembler
        returncode, stdout, stderr = _run_subprocess('ml.exe',
                                                     '',
                                                     env=self.c_environ)
        r = re.search('Macro Assembler', stderr)
        if r is None and os.path.exists('c:/masm32/bin/ml.exe'):
            masm32 = 'c:/masm32/bin/ml.exe'
            masm64 = 'c:/masm64/bin/ml64.exe'
        else:
            masm32 = 'ml.exe'
            masm64 = 'ml64.exe'

        if x64:
            self.masm = masm64
        else:
            self.masm = masm32

        # Install debug options only when interpreter is in debug mode
        if sys.executable.lower().endswith('_d.exe'):
            self.cflags = ['/MDd', '/Z7', '/Od']
            self.link_flags = ['/debug']

            # Increase stack size, for the linker and the stack check code.
            stack_size = 8 << 20  # 8 Mb
            self.link_flags.append('/STACK:%d' % stack_size)
            # The following symbol is used in c/src/stack.h
            self.cflags.append('/DMAX_STACK_SIZE=%d' % (stack_size - 1024))
Beispiel #6
0
 def __init__(self, cc=None):
     if not cc:
         cc = 'gcc'
     Platform.__init__(self, cc)
Beispiel #7
0
 def __init__(self, cc=None):
     if not cc:
         cc = 'gcc'
     Platform.__init__(self, cc)
Beispiel #8
0
 def _link_args_from_eci(self, eci, standalone):
     return Platform._link_args_from_eci(self, eci, standalone)
Beispiel #9
0
 def __init__(self, cc=None):
     Platform.__init__(self, 'gcc')
Beispiel #10
0
 def _link_args_from_eci(self, eci, standalone):
     return Platform._link_args_from_eci(self, eci, standalone)
Beispiel #11
0
 def __init__(self, cc=None):
     Platform.__init__(self, 'gcc')
Beispiel #12
0
 def __init__(self, cc=None):
     Platform.__init__(self, "gcc")