History

[py] fix missing pre-processor output on win-amd64

Paul Brossier committed 7 years ago

Commit 0a8f63f1 parent 7ed058c1 file · +12 −0Browse files

Showing the changes to python/lib (1 of 1 file). Show all

Unified · Split

python/lib/gen_external.py+12−0
@@ -74,6 +74,18 @@ def get_preprocessor(): · 73 unmodified lines
7474 cpp_cmd = compiler.cc.split()
7575 cpp_cmd += ['-E']
7676
77+ # On win-amd64 (py3.x), the default compiler is cross-compiling, from x86
78+ # to amd64 with %WIN_SDK_ROOT%\x86_amd64\cl.exe, but using this binary as a
79+ # pre-processor generates no output, so we use %WIN_SDK_ROOT%\cl.exe
80+ # instead.
81+ if len(cpp_cmd) > 1 and 'cl.exe' in cpp_cmd[-2]:
82+ plat = os.path.basename(os.path.dirname(cpp_cmd[-2]))
83+ if plat == 'x86_amd64':
84+ print('workaround on win64 to avoid empty pre-processor output')
85+ cpp_cmd[-2] = cpp_cmd[-2].replace('x86_amd64', '')
86+ elif True in ['amd64' in f for f in cpp_cmd]:
87+ print('warning: not using workaround for', cpp_cmd[0], plat)
88+
7789 if not cpp_cmd:
7890 print("Warning: could not guess preprocessor, using env's CC")
7991 cpp_cmd = os.environ.get('CC', 'cc').split()

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t