Author: Matti Picus <matti.pi...@gmail.com> Branch: Changeset: r91219:e1fb7a07c627 Date: 2017-05-10 15:24 +0300 http://bitbucket.org/pypy/pypy/changeset/e1fb7a07c627/
Log: win32: use jom.exe for parallel builds if available diff --git a/rpython/translator/platform/windows.py b/rpython/translator/platform/windows.py --- a/rpython/translator/platform/windows.py +++ b/rpython/translator/platform/windows.py @@ -119,6 +119,31 @@ log.error("Could not find a Microsoft Compiler") # Assume that the compiler is already part of the environment +# copied from distutils.spawn +def _find_executable(executable, path=None): + """Tries to find 'executable' in the directories listed in 'path'. + + A string listing directories separated by 'os.pathsep'; defaults to + os.environ['PATH']. Returns the complete filename or None if not found. + """ + if path is None: + path = os.environ['PATH'] + paths = path.split(os.pathsep) + + for ext in '.exe', '': + newexe = executable + ext + + if os.path.isfile(newexe): + return newexe + else: + for p in paths: + f = os.path.join(p, newexe) + if os.path.isfile(f): + # the file exists, we have a shot at spawn working + return f + return None + + class MsvcPlatform(Platform): name = "msvc" so_ext = 'dll' @@ -128,6 +153,9 @@ cc = 'cl.exe' link = 'link.exe' + make = 'nmake' + if _find_executable('jom.exe'): + make = 'jom.exe' cflags = ('/MD', '/O2', '/Zi') link_flags = ('/debug','/LARGEADDRESSAWARE') @@ -483,11 +511,11 @@ path = path_to_makefile.makefile_dir else: path = path_to_makefile - log.execute('make %s in %s' % (" ".join(extra_opts), path)) + log.execute('%s %s in %s' % (self.make, " ".join(extra_opts), path)) oldcwd = path.chdir() try: returncode, stdout, stderr = _run_subprocess( - 'nmake', + self.make, ['/nologo', '/f', str(path.join('Makefile'))] + extra_opts, env = self.c_environ) finally: _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit