static void buildOptionsTable() { const char* flag; const char* arg; lua_newtable(L); arg_reset(); flag = arg_getflag(); while (flag != NULL) { if (strncmp(flag, "--", 2) == 0) flag += 2; lua_pushstring(L, flag); /* If the flag has an argument, push that too */ arg = arg_getflagarg(); if (arg != NULL) lua_pushstring(L, arg); else lua_pushboolean(L, 1); lua_settable(L, -3); flag = arg_getflag(); } lua_setglobal(L, "options"); }
static int preprocess() { const char* flag = arg_getflag(); while (flag != NULL) { if (matches(flag, "--file")) { g_filename = arg_getflagarg(); if (g_filename == NULL) { puts("** Usage: --file filename"); puts(HELP_MSG); return 1; } } else if (matches(flag, "--os")) { const char* os = arg_getflagarg(); if (os == NULL || !os_set(os)) { puts("** Usage: --os osname"); puts(HELP_MSG); return 1; } } else if (matches(flag, "--version")) { printf("premake (Premake Build Script Generator) %s\n", VERSION); } flag = arg_getflag(); } return 1; }
static int postprocess() { int noScriptWarning = 0; const char* flag = arg_getflag(); while (flag != NULL) { if (g_hasScript && !script_export()) return 0; if (matches(flag, "--help")) { showUsage(); } else if (matches(flag, "--version")) { /* ignore quietly */ } else if (matches(flag, "--file")) { arg_getflagarg(); } else { if (!g_hasScript) { if (!noScriptWarning) { puts("** No Premake script found!"); noScriptWarning = 1; } } else { script_docommand(flag); } } flag = arg_getflag(); } return 1; }