diff --git a/setup.py b/setup.py index e42810d..d35513f 100644 --- a/setup.py +++ b/setup.py @@ -41,13 +41,19 @@ def has_flag(compiler, flagname): """Return a boolean indicating whether a flag name is supported on the specified compiler. """ - import tempfile - with tempfile.NamedTemporaryFile('w', suffix='.cpp') as f: + import tempfile, os + with tempfile.NamedTemporaryFile('w', suffix='.cpp', delete=False) as f: f.write('int main (int argc, char **argv) { return 0; }') + fname = f.name + try: + compiler.compile([fname], extra_postargs=[flagname]) + except setuptools.distutils.errors.CompileError: + return False + finally: try: - compiler.compile([f.name], extra_postargs=[flagname]) - except setuptools.distutils.errors.CompileError: - return False + os.remove(fname) + except OSError: + pass return True