|
85 | 85 | from distutils.command.build import build |
86 | 86 | from distutils.command.install_data import install_data |
87 | 87 | from distutils.core import Command |
| 88 | +from distutils.version import LooseVersion |
88 | 89 |
|
89 | 90 | bdist_msi = None # Do not build any MSI scripts |
90 | 91 |
|
91 | 92 | from distutils import log |
92 | | -from distutils._msvccompiler import _find_exe |
93 | 93 |
|
94 | 94 | # some modules need a static CRT to avoid problems caused by them having a |
95 | 95 | # manifest. |
@@ -442,6 +442,10 @@ def initialize_options(self): |
442 | 442 | self.debug = False |
443 | 443 | self.build_temp = None |
444 | 444 |
|
| 445 | + sdk_path = 'C:\\Program Files\\Microsoft SDKs\\Windows' |
| 446 | + windows_sdk = next(reversed(sorted(os.listdir(sdk_path), key=LooseVersion))) |
| 447 | + self.sdk_dir = os.path.join(sdk_path, windows_sdk) |
| 448 | + |
445 | 449 | def finalize_options(self): |
446 | 450 | self.set_undefined_options('build', ('build_temp', 'build_temp')) |
447 | 451 |
|
@@ -478,9 +482,10 @@ def _build_scintilla(self): |
478 | 482 |
|
479 | 483 | cwd = os.getcwd() |
480 | 484 | os.chdir(path) |
481 | | - nmake = _find_exe("nmake.exe") |
482 | 485 | try: |
483 | | - cmd = [nmake, "/nologo", "/f", makefile] + makeargs |
| 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))] |
484 | 489 | self.spawn(cmd) |
485 | 490 | finally: |
486 | 491 | os.chdir(cwd) |
|
0 commit comments