MWCC/command_line/C++_Parser/Src/Library/Targets.c

66 lines
1.6 KiB
C

#include "parser.h"
ParserTool *pTool;
int SetParserToolInfo(ParserTool *tool) {
pTool = tool;
OS_ASSERT(16, pTool->toolInfo && (parseopts.toolVersion || pTool->copyright));
return 1;
}
Boolean ParserToolMatchesPlugin(OSType type, OSType lang, OSType cpu, OSType os) {
if (!pTool) {
CLPFatalError("No options loaded for command line\n");
return 0;
}
if (
(type == CWDROPINANYTYPE || pTool->TYPE == CWDROPINANYTYPE || pTool->TYPE == type) &&
(lang == Lang_Any || pTool->LANG == Lang_Any || pTool->LANG == lang) &&
(cpu == targetCPUAny || pTool->CPU == targetCPUAny || pTool->CPU == cpu) &&
(os == targetOSAny || pTool->OS == targetOSAny || pTool->OS == os)
)
{
return 1;
} else {
return 0;
}
}
Boolean ParserToolHandlesPanels(int numPanels, const char **panelNames) {
int idx;
int scan;
if (!pTool)
CLPFatalError("No options loaded for command line\n");
for (idx = 0; idx < numPanels; idx++) {
for (scan = 0; scan < pTool->numPrefPanels; scan++) {
if (!ustrcmp(pTool->prefPanels[scan], panelNames[idx]))
break;
}
if (scan >= pTool->numPrefPanels)
break;
}
if (idx >= numPanels)
return 1;
else
return 0;
}
Boolean SetupParserToolOptions(void) {
int idx;
Options_Init();
for (idx = 0; idx < pTool->numOptionLists; idx++) {
Options_AddList(pTool->optionLists[idx]);
}
Options_SortOptions();
return 1;
}