Module: wine Branch: master Commit: b253bd65658fe7dde8e50d7f7e6930cd215282df URL: https://source.winehq.org/git/wine.git/?a=commit;h=b253bd65658fe7dde8e50d7f7...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Feb 21 13:52:31 2020 +0100
winegcc: Clean up output file on error.
Based on winebuild.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
tools/winegcc/winegcc.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c index d735941a53..c3eafdfc21 100644 --- a/tools/winegcc/winegcc.c +++ b/tools/winegcc/winegcc.c @@ -139,6 +139,7 @@ static const char* app_loader_template = "exec "$WINELOADER" "$apppath" "$@"\n" ;
+static const char *output_file_name; static int keep_generated = 0; static strarray* tmp_files; #ifdef HAVE_SIGSET_T @@ -262,6 +263,11 @@ static enum target_platform build_platform = PLATFORM_WINDOWS; static enum target_platform build_platform = PLATFORM_UNSPECIFIED; #endif
+static void cleanup_output_files(void) +{ + if (output_file_name) unlink( output_file_name ); +} + static void clean_temp_files(void) { unsigned int i; @@ -1305,6 +1311,9 @@ static void build(struct options* opts)
if (libgcc) strarray_add(link_args, libgcc);
+ output_file_name = output_path; + atexit( cleanup_output_files ); + spawn(opts->prefix, link_args, 0); strarray_free (link_args);
@@ -1836,5 +1845,6 @@ int main(int argc, char **argv) else if (linking) build(&opts); else compile(&opts, lang);
+ output_file_name = NULL; return 0; }