Eric Pouech : winegcc: Try harder to find out whether the compiler is from gcc family.

Alexandre Julliard julliard at winehq.org
Fri May 11 11:09:15 CDT 2012


Module: wine
Branch: master
Commit: b21da1d7018be09cd33c87bea06890447784666b
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b21da1d7018be09cd33c87bea06890447784666b

Author: Eric Pouech <eric.pouech at orange.fr>
Date:   Thu May 10 22:43:26 2012 +0200

winegcc: Try harder to find out whether the compiler is from gcc family.

---

 tools/winegcc/winegcc.c |   19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c
index 7d03119..318c86a 100644
--- a/tools/winegcc/winegcc.c
+++ b/tools/winegcc/winegcc.c
@@ -395,10 +395,10 @@ static char *get_lib_dir( struct options *opts )
 static void compile(struct options* opts, const char* lang)
 {
     strarray* comp_args = strarray_alloc();
-    unsigned int j;
+    unsigned int i, j;
     int gcc_defs = 0;
-    char* gcc;
-    char* gpp;
+    strarray* gcc;
+    strarray* gpp;
 
     strarray_addall(comp_args, get_translator(opts));
     switch(opts->processor)
@@ -409,16 +409,19 @@ static void compile(struct options* opts, const char* lang)
 	/* mixing different C and C++ compilers isn't supported in configure anyway */
 	case proc_cc:
 	case proc_cxx:
-            gcc = build_tool_name(opts, "gcc", CC);
-            gpp = build_tool_name(opts, "g++", CXX);
+            gcc = strarray_fromstring(build_tool_name(opts, "gcc", CC), " ");
+            gpp = strarray_fromstring(build_tool_name(opts, "g++", CXX), " ");
             for ( j = 0; !gcc_defs && j < comp_args->size; j++ )
             {
                 const char *cc = comp_args->base[j];
 
-                gcc_defs = strendswith(cc, gcc) || strendswith(cc, gpp);
+                for (i = 0; !gcc_defs && i < gcc->size; i++)
+                    gcc_defs = gcc->base[i][0] != '-' && strendswith(cc, gcc->base[i]);
+                for (i = 0; !gcc_defs && i < gpp->size; i++)
+                    gcc_defs = gpp->base[i][0] != '-' && strendswith(cc, gpp->base[i]);
             }
-            free(gcc);
-            free(gpp);
+            strarray_free(gcc);
+            strarray_free(gpp);
             break;
     }
 




More information about the wine-cvs mailing list