Cleanup any extra files produced by clang in debug mode when test compiling

This commit is contained in:
Kovid Goyal 2021-09-25 17:41:55 +05:30
parent d982a3c94e
commit fe0d1034aa
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -239,20 +239,20 @@ def test_compile(
ldflags: Iterable[str] = (),
) -> bool:
src = src or 'int main(void) { return 0; }'
with tempfile.NamedTemporaryFile(prefix='kitty-test-compile-') as f:
with tempfile.TemporaryDirectory(prefix='kitty-test-compile-') as tdir:
p = subprocess.Popen(
[cc] + list(cflags) + ([] if link_also else ['-c']) + ['-x', lang, '-o', f.name, '-'] +
[cc] + list(cflags) + ([] if link_also else ['-c']) + ['-x', lang, '-o', os.path.join(tdir, 'dummy'), '-'] +
[f'-l{x}' for x in libraries] + list(ldflags),
stdout=subprocess.DEVNULL, stdin=subprocess.PIPE, stderr=None if show_stderr else subprocess.DEVNULL
)
stdin = p.stdin
assert stdin is not None
try:
stdin.write((src + '\n').encode('utf-8'))
stdin.close()
except BrokenPipeError:
return False
return p.wait() == 0
stdin = p.stdin
assert stdin is not None
try:
stdin.write((src + '\n').encode('utf-8'))
stdin.close()
except BrokenPipeError:
return False
return p.wait() == 0
def first_successful_compile(cc: str, *cflags: str, src: Optional[str] = None, lang: str = 'c') -> str: