mirror of
https://git.wuffs.org/MWCC
synced 2025-12-16 00:17:09 +00:00
add cmakelists for CLion, tons and tons of reorganisation using new info from the Pro8 compiler
This commit is contained in:
45
command_line/CmdLine/Src/Clients/CLStaticMain.c
Normal file
45
command_line/CmdLine/Src/Clients/CLStaticMain.c
Normal file
@@ -0,0 +1,45 @@
|
||||
#include "mwcc_decomp.h"
|
||||
|
||||
int main(int argc, const char **argv) {
|
||||
OSType cpu;
|
||||
OSType os;
|
||||
OSType lang;
|
||||
OSType type;
|
||||
OSType style;
|
||||
int ret;
|
||||
|
||||
if (CmdLine_Initialize(argc, argv, CMDLINE_BUILD_DATE, CMDLINE_BUILD_TIME))
|
||||
exit(1);
|
||||
|
||||
if (!RegisterStaticParserResources() || !RegisterStaticTargetResources()) {
|
||||
fprintf(stderr, "\nFATAL ERROR: Could not initialize resource strings\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (!RegisterStaticParserPlugins() || !RegisterStaticTargetPlugins()) {
|
||||
fprintf(stderr, "\nFATAL ERROR: Could not initialize built-in plugins\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (!RegisterStaticParserToolInfo()) {
|
||||
fprintf(stderr, "\nFATAL ERROR: Could not initialize options\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
GetStaticTarget(&cpu, &os);
|
||||
SetBuildTarget(cpu, os);
|
||||
GetStaticPluginType(&lang, &type);
|
||||
SetPluginType(lang, type);
|
||||
GetStaticParserPluginType(&style);
|
||||
SetParserType(style);
|
||||
|
||||
ret = CmdLine_Driver();
|
||||
if (ret) {
|
||||
if (ret == 2)
|
||||
fprintf(stderr, "\nUser break, cancelled...\n");
|
||||
else
|
||||
fprintf(stderr, "\nErrors caused tool to abort.\n");
|
||||
}
|
||||
CmdLine_Terminate(ret);
|
||||
return ret;
|
||||
}
|
||||
57
command_line/CmdLine/Src/Clients/ClientGlue.c
Normal file
57
command_line/CmdLine/Src/Clients/ClientGlue.c
Normal file
@@ -0,0 +1,57 @@
|
||||
#include "mwcc_decomp.h"
|
||||
|
||||
int RegisterResource(const char *name, SInt16 rsrcid, Handle list) {
|
||||
Handle h;
|
||||
|
||||
if (list == 0) {
|
||||
h = GetResource('STR#', rsrcid);
|
||||
if (h == 0) {
|
||||
CLFatalError("Resource ('STR#',%d) '%s' not found in executable\n", rsrcid, name);
|
||||
return 0;
|
||||
}
|
||||
ReleaseResource(h);
|
||||
return 1;
|
||||
} else {
|
||||
return Res_AddResource(name, rsrcid, list);
|
||||
}
|
||||
}
|
||||
|
||||
int RegisterStaticPlugin(const BasePluginCallbacks *callbacks) {
|
||||
return Plugins_Add(Plugin_New(callbacks, 0, 0));
|
||||
}
|
||||
|
||||
int RegisterStaticCompilerLinkerPlugin(const BasePluginCallbacks *callbacks, const CompilerLinkerPluginCallbacks *cl_callbacks) {
|
||||
return Plugins_Add(Plugin_New(callbacks, cl_callbacks, 0));
|
||||
}
|
||||
|
||||
int RegisterStaticParserPlugin(const BasePluginCallbacks *callbacks, const ParserPluginCallbacks *pr_callbacks) {
|
||||
return Plugins_Add(Plugin_New(callbacks, 0, pr_callbacks));
|
||||
}
|
||||
|
||||
void SetBuildTarget(OSType cpu, OSType os) {
|
||||
clState.cpu = cpu;
|
||||
clState.os = os;
|
||||
}
|
||||
|
||||
void SetParserType(OSType plang) {
|
||||
clState.parserstyle = plang;
|
||||
}
|
||||
|
||||
void SetPluginType(OSType lang, OSType type) {
|
||||
clState.language = lang;
|
||||
clState.plugintype = type;
|
||||
}
|
||||
|
||||
int CmdLine_Initialize(int argc, const char **argv, const char *builddate, const char *buildtime) {
|
||||
strncpy(cmdline_build_date, builddate, sizeof(cmdline_build_date));
|
||||
strncpy(cmdline_build_time, buildtime, sizeof(cmdline_build_time));
|
||||
return Main_Initialize(argc, argv);
|
||||
}
|
||||
|
||||
int CmdLine_Driver() {
|
||||
return Main_Driver();
|
||||
}
|
||||
|
||||
int CmdLine_Terminate(int exitcode) {
|
||||
return Main_Terminate(exitcode);
|
||||
}
|
||||
Reference in New Issue
Block a user