From 989b5ee8aee98b44377a3c82c5d65f54c0c6eb2f Mon Sep 17 00:00:00 2001 From: seyko Date: Wed, 13 Apr 2016 07:05:38 +0300 Subject: Allow tcc arguments to be read from @listfiles From: Vlad Vissoultchev Date: Tue, 12 Apr 2016 20:43:15 +0300 Subject: Allow tcc arguments to be read from @listfiles This allows all @ prefixed arguments to be treated as listfiles containing list of source files or tcc options where each one is on a separate line. Can be used to benchmark compilation speed with non-trivial amount of source files. The impl of `tcc_parse_args` had to be moved to a new function that is able to be called recursively w/ the original one remaining as a driver of the new one. Listfiles parsing happens in a new `args_parser_add_listfile` function that uses `tcc_open`/`tcc_close/inp` for buffered file input. --- tcc.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'tcc.h') diff --git a/tcc.h b/tcc.h index fbd320f..831c145 100644 --- a/tcc.h +++ b/tcc.h @@ -627,6 +627,14 @@ struct sym_attr { #endif }; +typedef struct ParseArgsState +{ + int run; + int pthread; + int filetype; + CString linker_arg; /* collect -Wl options for input such as "-Wl,-rpath -Wl," */ +} ParseArgsState; + struct TCCState { int verbose; /* if true, display some information during compilation */ @@ -806,6 +814,7 @@ struct TCCState { int do_bench; /* option -bench */ int gen_deps; /* option -MD */ char *deps_outfile; /* option -MF */ + ParseArgsState *parse_args_state; }; /* The current value can be: */ -- cgit v1.3.1