[Mesa-dev] [PATCH 3/5] glsl: add just-log option for the standalone compiler.

Ian Romanick idr at freedesktop.org
Thu May 12 21:14:26 UTC 2016


On 05/10/2016 12:13 AM, Alejandro PiƱeiro wrote:
> Add an option in order to ask to just print the InfoLog, without any
> header or separator. Useful if we want to use the standalone compiler
> to track only the warning/error messages.
> ---
>  src/compiler/glsl/main.cpp | 20 ++++++++++++++++----
>  1 file changed, 16 insertions(+), 4 deletions(-)
> 
> diff --git a/src/compiler/glsl/main.cpp b/src/compiler/glsl/main.cpp
> index d253575..727f67c 100644
> --- a/src/compiler/glsl/main.cpp
> +++ b/src/compiler/glsl/main.cpp
> @@ -274,12 +274,14 @@ int dump_ast = 0;
>  int dump_hir = 0;
>  int dump_lir = 0;
>  int do_link = 0;
> +int just_log = 0;
>  
>  const struct option compiler_opts[] = {
>     { "dump-ast", no_argument, &dump_ast, 1 },
>     { "dump-hir", no_argument, &dump_hir, 1 },
>     { "dump-lir", no_argument, &dump_lir, 1 },
>     { "link",     no_argument, &do_link,  1 },
> +   { "just-log", no_argument, &just_log,  1 },
>     { "version",  required_argument, NULL, 'v' },
>     { NULL, 0, NULL, 0 }
>  };
> @@ -414,8 +416,13 @@ main(int argc, char **argv)
>  
>        compile_shader(ctx, shader);
>  
> -      if (strlen(shader->InfoLog) > 0)
> -	 printf("Info log for %s:\n%s\n", argv[optind], shader->InfoLog);
> +      if (strlen(shader->InfoLog) > 0) {
> +         if (!just_log)
> +            printf("Info log for %s:\n", argv[optind]);
> +
> +         printf("%s", shader->InfoLog);
> +         if (!just_log) printf("\n");

The printf goes on its own line.  With that fixed here and below, this
patch is

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

> +      }
>  
>        if (!shader->CompileStatus) {
>  	 status = EXIT_FAILURE;
> @@ -429,8 +436,13 @@ main(int argc, char **argv)
>        link_shaders(ctx, whole_program);
>        status = (whole_program->LinkStatus) ? EXIT_SUCCESS : EXIT_FAILURE;
>  
> -      if (strlen(whole_program->InfoLog) > 0)
> -	 printf("Info log for linking:\n%s\n", whole_program->InfoLog);
> +      if (strlen(whole_program->InfoLog) > 0) {
> +         printf("\n");
> +         if (!just_log)
> +            printf("Info log for linking:\n");
> +         printf("%s", whole_program->InfoLog);
> +         if (!just_log) printf("\n");
> +      }
>     }
>  
>     for (unsigned i = 0; i < MESA_SHADER_STAGES; i++)
> 



More information about the mesa-dev mailing list