예제 #1
0
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");
}
예제 #2
0
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;
}
예제 #3
0
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;
}