|
77 | 77 | # We have special handling for _winreg so our setup3.py script can avoid |
78 | 78 | # using the 'imports' fixer and therefore start much faster... |
79 | 79 | import winreg |
| 80 | +import shutil |
80 | 81 |
|
81 | 82 | # The rest of our imports. |
82 | 83 | from setuptools import setup |
|
100 | 101 | from distutils.filelist import FileList |
101 | 102 | import distutils.util |
102 | 103 | import distutils.file_util |
| 104 | +import subprocess |
103 | 105 |
|
104 | 106 | # prevent the new in 3.5 suffix of "cpXX-win32" from being added. |
105 | 107 | # (adjusting both .cp35-win_amd64.pyd and .cp35-win32.pyd to .pyd) |
@@ -441,13 +443,16 @@ class build_scintilla(Command): |
441 | 443 | def initialize_options(self): |
442 | 444 | self.debug = False |
443 | 445 | self.build_temp = None |
| 446 | + self.build_lib = None |
444 | 447 |
|
445 | 448 | sdk_path = 'C:\\Program Files\\Microsoft SDKs\\Windows' |
446 | 449 | windows_sdk = next(reversed(sorted(os.listdir(sdk_path), key=LooseVersion))) |
447 | 450 | self.sdk_dir = os.path.join(sdk_path, windows_sdk) |
448 | 451 |
|
449 | 452 | def finalize_options(self): |
450 | | - self.set_undefined_options('build', ('build_temp', 'build_temp')) |
| 453 | + self.set_undefined_options('build', |
| 454 | + ('build_temp', 'build_temp'), |
| 455 | + ('build_lib', 'build_lib')) |
451 | 456 |
|
452 | 457 | def _build_scintilla(self): |
453 | 458 | path = 'pythonwin\\Scintilla' |
@@ -483,10 +488,12 @@ def _build_scintilla(self): |
483 | 488 | cwd = os.getcwd() |
484 | 489 | os.chdir(path) |
485 | 490 | try: |
486 | | - setenv_cmd = [os.path.join(self.sdk_dir, "Bin", "SetEnv.cmd")] |
487 | | - nmake_cmd = ["nmake.exe", "/nologo", "/f", makefile] + makeargs |
488 | | - cmd = ["cmd.exe", "/c", '"{}" && "{}"'.format(' '.join(setenv_cmd), ' '.join(nmake_cmd))] |
489 | | - self.spawn(cmd) |
| 491 | + import cmdvars |
| 492 | + env = cmdvars.get_vars(os.path.join(self.sdk_dir, "Bin", "SetEnv.cmd")) |
| 493 | + nmake = shutil.which('nmake.exe', path=env['path']) |
| 494 | + proc = subprocess.Popen([nmake, "/nologo", "/f", makefile] + makeargs, env=env) |
| 495 | + outs, errs = proc.communicate() |
| 496 | + print(outs, errs) |
490 | 497 | finally: |
491 | 498 | os.chdir(cwd) |
492 | 499 |
|
@@ -1794,7 +1801,7 @@ def convert_optional_data_files(files): |
1794 | 1801 | package_dir=package_dir, |
1795 | 1802 | packages=packages, |
1796 | 1803 | py_modules=py_modules, |
1797 | | - setup_requires=['setuptools>=24.0'], |
| 1804 | + setup_requires=['setuptools>=24.0', 'cmdvars'], |
1798 | 1805 |
|
1799 | 1806 | data_files=[('', (os.path.join(gettempdir(), 'pywin32.version.txt'),))] + |
1800 | 1807 | convert_optional_data_files([ |
|
0 commit comments