37 transform(result.begin(), result.end(), result.begin(), tolower);
42 int wmain(
int argc,
const wchar_t **argv_wide)
44 int main(
int argc,
const char **argv)
51 if(argv==
nullptr || argc<1)
53 std::cerr <<
"failed to determine base name\n";
59 std::string base_name=
65 if(base_name==
"goto-link" || base_name==
"link" ||
66 base_name==
"goto-cl" || base_name==
"cl")
72 return ms_cl_mode.
main(argc, argv);
74 else if(base_name==
"goto-cw" ||
75 base_name==
"goto-cw-link")
80 cw_modet cw_mode(cmdline, base_name);
81 return cw_mode.
main(argc, argv);
83 else if(base_name==
"goto-armcc" ||
84 base_name==
"goto-armlink")
89 return armcc_mode.
main(argc, argv);
93 else if(base_name==
"goto-clang" ||
94 base_name.find(
"goto-gcc")!=std::string::npos)
100 gcc_modet gcc_mode(cmdline, base_name,
true);
101 return gcc_mode.
main(argc, argv);
103 else if(base_name.find(
"goto-ld")!=std::string::npos)
107 gcc_modet gcc_mode(cmdline, base_name,
true);
108 return gcc_mode.
main(argc, argv);
110 else if(base_name.find(
"goto-bcc")!=std::string::npos)
116 gcc_modet gcc_mode(cmdline, base_name,
true);
117 return gcc_mode.
main(argc, argv);
119 else if(base_name.find(
"goto-as86")!=std::string::npos)
124 as_modet as_mode(cmdline, base_name,
false);
125 return as_mode.
main(argc, argv);
127 else if(base_name.find(
"goto-as")!=std::string::npos)
131 as_modet as_mode(cmdline, base_name,
true);
132 return as_mode.
main(argc, argv);
138 gcc_modet gcc_mode(cmdline, base_name,
false);
139 return gcc_mode.
main(argc, argv);
A special command line object for Bruce's C Compiler Author: Michael Tautschnig Date: July 2016...
A special command line object for the gcc-like options.
const char ** narrow_argv(int argc, const wchar_t **argv_wide)
virtual int main(int argc, const char **argv)
starts the compiler
std::string to_lower_string(const std::string &s)
int main(int argc, const char **argv)
Base class for command line interpretation.
A special command line object for the ld-like options.
std::string get_base_name(const std::string &in, bool strip_suffix)
cleans a filename from path and extension
A special command line object for GNU Assembler Author: Michael Tautschnig Date: July 2016...
Base class for command line interpretation for CL.
A special command line object for the gcc-like options.
Base class for command line interpretation.
A special command line object for as86 (of Bruce's C Compiler) Author: Michael Tautschnig Date: July ...
A special command line object to mimic ARM's armcc.