winegcc: Return build_tool_name result as strarray.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
feature/deterministic
Jacek Caban 2020-03-03 14:02:08 +01:00 committed by Alexandre Julliard
parent 945c61c32d
commit 4cfe747772
1 changed files with 12 additions and 12 deletions

View File

@ -314,7 +314,7 @@ static char* get_temp_file(const char* prefix, const char* suffix)
return tmp; return tmp;
} }
static const char* build_tool_name(struct options *opts, const char* base, const char* deflt) static strarray* build_tool_name(struct options *opts, const char* base, const char* deflt)
{ {
const char *path; const char *path;
char* str; char* str;
@ -334,31 +334,31 @@ static const char* build_tool_name(struct options *opts, const char* base, const
else else
str = xstrdup(deflt); str = xstrdup(deflt);
if ((path = find_binary( opts->prefix, str ))) return path; if ((path = find_binary( opts->prefix, str ))) return strarray_fromstring( path, " " );
error( "Could not find %s\n", base ); error( "Could not find %s\n", base );
return NULL; return NULL;
} }
static strarray* get_translator(struct options *opts) static strarray* get_translator(struct options *opts)
{ {
const char *str = NULL; strarray *tool;
switch(opts->processor) switch(opts->processor)
{ {
case proc_cpp: case proc_cpp:
str = build_tool_name(opts, "cpp", CPP); tool = build_tool_name(opts, "cpp", CPP);
break; break;
case proc_cc: case proc_cc:
case proc_as: case proc_as:
str = build_tool_name(opts, "gcc", CC); tool = build_tool_name(opts, "gcc", CC);
break; break;
case proc_cxx: case proc_cxx:
str = build_tool_name(opts, "g++", CXX); tool = build_tool_name(opts, "g++", CXX);
break; break;
default: default:
assert(0); assert(0);
} }
return strarray_fromstring( str, " " ); return tool;
} }
static int try_link( const strarray *prefix, const strarray *link_tool, const char *cflags ) static int try_link( const strarray *prefix, const strarray *link_tool, const char *cflags )
@ -680,8 +680,8 @@ static void compile(struct options* opts, const char* lang)
/* mixing different C and C++ compilers isn't supported in configure anyway */ /* mixing different C and C++ compilers isn't supported in configure anyway */
case proc_cc: case proc_cc:
case proc_cxx: case proc_cxx:
gcc = strarray_fromstring(build_tool_name(opts, "gcc", CC), " "); gcc = build_tool_name(opts, "gcc", CC);
gpp = strarray_fromstring(build_tool_name(opts, "g++", CXX), " "); gpp = build_tool_name(opts, "g++", CXX);
for ( j = 0; !gcc_defs && j < comp_args->size; j++ ) for ( j = 0; !gcc_defs && j < comp_args->size; j++ )
{ {
const char *cc = comp_args->base[j]; const char *cc = comp_args->base[j];
@ -993,7 +993,7 @@ static void add_library( struct options *opts, strarray *lib_dirs, strarray *fil
static void build(struct options* opts) static void build(struct options* opts)
{ {
strarray *lib_dirs, *files; strarray *lib_dirs, *files;
strarray *spec_args, *link_args; strarray *spec_args, *link_args, *tool;
char *output_file, *output_path; char *output_file, *output_path;
const char *spec_o_name, *libgcc = NULL; const char *spec_o_name, *libgcc = NULL;
const char *output_name, *spec_file, *lang; const char *output_name, *spec_file, *lang;
@ -1161,8 +1161,8 @@ static void build(struct options* opts)
/* run winebuild to generate the .spec.o file */ /* run winebuild to generate the .spec.o file */
spec_args = get_winebuild_args( opts ); spec_args = get_winebuild_args( opts );
strarray_add( spec_args, strmake( "--cc-cmd=%s", build_tool_name( opts, "gcc", CC ))); if ((tool = build_tool_name( opts, "gcc", CC ))) strarray_add( spec_args, strmake( "--cc-cmd=%s", strarray_tostring( tool, " " )));
if (!is_pe) strarray_add( spec_args, strmake( "--ld-cmd=%s", build_tool_name( opts, "ld", LD ))); if (!is_pe && (tool = build_tool_name( opts, "ld", LD ))) strarray_add( spec_args, strmake( "--ld-cmd=%s", strarray_tostring( tool, " " )));
spec_o_name = get_temp_file(output_name, ".spec.o"); spec_o_name = get_temp_file(output_name, ".spec.o");
if (opts->force_pointer_size) if (opts->force_pointer_size)