-
-
Notifications
You must be signed in to change notification settings - Fork 30.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gh-85454: Remove distutils.ccompiler from Tools/c-analyzer #95171
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,9 @@ | ||
import contextlib | ||
import distutils.ccompiler | ||
import logging | ||
import os | ||
import os.path | ||
import re | ||
import sys | ||
|
||
from c_common.fsutil import match_glob as _match_glob | ||
from c_common.tables import parse_table as _parse_table | ||
|
@@ -168,9 +170,17 @@ def handling_errors(ignore_exc=None, *, log_err=None): | |
} | ||
|
||
|
||
def _get_default_compiler(): | ||
if re.match('cygwin.*', sys.platform) is not None: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You can just remove cygwin as it is unsupported. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Are you sure? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We have a bunch of Cygwin-related codes ( There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Cygwin is certainly still alive to some extent, so I'd say let's not worry about that in the PR. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If you remove cygwin branch, it will fallback to There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
It's care about Windows/Cygwin case, see: https://docs.python.org/3/library/sys.html. |
||
return 'unix' | ||
if os.name == 'nt': | ||
return 'msvc' | ||
return 'unix' | ||
|
||
|
||
def _get_preprocessor(tool): | ||
if tool is True: | ||
tool = distutils.ccompiler.get_default_compiler() | ||
tool = _get_default_compiler() | ||
preprocess = _COMPILERS.get(tool) | ||
if preprocess is None: | ||
raise ValueError(f'unsupported tool {tool}') | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minimalized ported version from
cpython/Lib/distutils/ccompiler.py
Lines 937 to 956 in f4c0348
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It may be worth having a short comment indicating this was derived from the distutils code.