mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 17:30:12 +01:00
glcpp: Add --disable-line-continuations argument to standalone glcpp
This will allow testing of disabled line-continuation on a case-by-case basis, (with the option communicated to the preprocessor via the GL context). Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
409dee5eac
commit
63d156900f
1 changed files with 44 additions and 2 deletions
|
|
@ -24,6 +24,8 @@
|
|||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <getopt.h>
|
||||
|
||||
#include "glcpp.h"
|
||||
#include "main/mtypes.h"
|
||||
#include "main/shaderobj.h"
|
||||
|
|
@ -100,8 +102,31 @@ static void
|
|||
init_fake_gl_context (struct gl_context *gl_ctx)
|
||||
{
|
||||
gl_ctx->API = API_OPENGL_COMPAT;
|
||||
gl_ctx->Const.DisableGLSLLineContinuations = false;
|
||||
}
|
||||
|
||||
static void
|
||||
usage (void)
|
||||
{
|
||||
fprintf (stderr,
|
||||
"Usage: glcpp [OPTIONS] [--] [<filename>]\n"
|
||||
"\n"
|
||||
"Pre-process the given filename (stdin if no filename given).\n"
|
||||
"The following options are supported:\n"
|
||||
" --disable-line-continuations Do not interpret lines ending with a\n"
|
||||
" backslash ('\\') as a line continuation.\n");
|
||||
}
|
||||
|
||||
enum {
|
||||
DISABLE_LINE_CONTINUATIONS_OPT = CHAR_MAX + 1
|
||||
};
|
||||
|
||||
const static struct option
|
||||
long_options[] = {
|
||||
{"disable-line-continuations", no_argument, 0, DISABLE_LINE_CONTINUATIONS_OPT },
|
||||
{0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
|
|
@ -111,11 +136,28 @@ main (int argc, char *argv[])
|
|||
const char *shader;
|
||||
int ret;
|
||||
struct gl_context gl_ctx;
|
||||
int c;
|
||||
|
||||
init_fake_gl_context (&gl_ctx);
|
||||
|
||||
if (argc) {
|
||||
filename = argv[1];
|
||||
while ((c = getopt_long(argc, argv, "", long_options, NULL)) != -1) {
|
||||
switch (c) {
|
||||
case DISABLE_LINE_CONTINUATIONS_OPT:
|
||||
gl_ctx.Const.DisableGLSLLineContinuations = true;
|
||||
break;
|
||||
default:
|
||||
usage ();
|
||||
exit (1);
|
||||
}
|
||||
}
|
||||
|
||||
if (optind + 1 < argc) {
|
||||
printf ("Unexpected argument: %s\n", argv[optind+1]);
|
||||
usage ();
|
||||
exit (1);
|
||||
}
|
||||
if (optind < argc) {
|
||||
filename = argv[optind];
|
||||
}
|
||||
|
||||
shader = load_text_file (ctx, filename);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue