[Mesa-dev] [PATCH] glsl: Improve usage message for glsl_compiler

Chad Versace chad at chad-versace.us
Wed Nov 17 15:28:36 PST 2010


From: Chad Versace <chad.versace at intel.com>

The new usage message lists possible command line options. (Newcomers to Mesa
currently have to trawl through the source to find the command line options,
and we should save them from that trouble.)

Example Output
--------------
usage: ./glsl_compiler [options] <file.vert | file.geo | file.frag>

Possible options are:
    --glsl-es
    --dump-ast
    --dump-hir
    --dump-lir
    --link
---
 src/glsl/main.cpp |   28 +++++++++++++++++++---------
 1 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/src/glsl/main.cpp b/src/glsl/main.cpp
index 08a44c9..b1e0f8a 100644
--- a/src/glsl/main.cpp
+++ b/src/glsl/main.cpp
@@ -146,15 +146,6 @@ load_text_file(void *ctx, const char *file_name)
 	return text;
 }
 
-
-void
-usage_fail(const char *name)
-{
-      printf("%s <filename.frag|filename.vert>\n", name);
-      exit(EXIT_FAILURE);
-}
-
-
 int glsl_es = 0;
 int dump_ast = 0;
 int dump_hir = 0;
@@ -170,6 +161,25 @@ const struct option compiler_opts[] = {
    { NULL, 0, NULL, 0 }
 };
 
+/**
+ * \brief Print proper usage and exit with failure.
+ */
+void
+usage_fail(const char *name)
+{
+
+   const char *header =
+      "usage: %s [options] <file.vert | file.geo | file.frag>\n"
+      "\n"
+      "Possible options are:\n";
+   printf(header, name, name);
+   for (const struct option *o = compiler_opts; o->name != 0; ++o) {
+      printf("    --%s\n", o->name);
+   }
+   exit(EXIT_FAILURE);
+}
+
+
 void
 compile_shader(struct gl_context *ctx, struct gl_shader *shader)
 {
-- 
1.7.1



More information about the mesa-dev mailing list