driconf: Fix gen_xmlpool.py script to allow running from any directory
authorChad Versace <chad.versace@linux.intel.com>
Thu, 6 Dec 2012 04:47:52 +0000 (20:47 -0800)
committerCarl Worth <cworth@cworth.org>
Fri, 11 Jan 2013 21:54:54 +0000 (13:54 -0800)
The gen_xmlpool.py script would work correctly only when executed from the
directory that contained the script. This shortcoming was due to some
hard-coded paths in the script.

In order to easily invoke the script from the Android build system, we
must be able to execute the script from an arbitrary directory. To enable
that, this patch replaces the two hard-coded paths with new command line
arguments.

Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
Reviewed-by: Carl Worth <cworth@cworth.org>
src/mesa/drivers/dri/common/xmlpool/Makefile
src/mesa/drivers/dri/common/xmlpool/gen_xmlpool.py

index b71629e9f166a8cc97f2575cf5ec94d870e0bd3a..3b5e7db064e96a91278ccfed6ca5d8ffac5be62d 100644 (file)
@@ -61,8 +61,9 @@ clean:
        -rm -rf $(LANGS)
 
 # Default target options.h
+options.h: LOCALEDIR := .
 options.h: t_options.h mo
-       $(PYTHON2) $(PYTHON_FLAGS) gen_xmlpool.py $(LANGS) > options.h
+       $(PYTHON2) $(PYTHON_FLAGS) gen_xmlpool.py t_options.h $(LOCALEDIR) $(LANGS) > options.h
 
 # Update .mo files from the corresponding .po files.
 mo:
index 7398c4cd0b2e0770b071e2c807aaed2c725d59a1..acfdcf48a194a30cf93b3b451a5d5258ed0f42e0 100644 (file)
@@ -1,11 +1,24 @@
 #!/usr/bin/python
 
+#
+# Usage:
+#     gen_xmlpool.py /path/to/t_option.h localedir lang lang lang ...
+#
+# For each given language, this script expects to find a .mo file at
+# `{localedir}/{language}/LC_MESSAGES/options.mo`.
+#
+
 import sys
 import gettext
 import re
 
+# Path to t_options.h
+template_header_path = sys.argv[1]
+
+localedir = sys.argv[2]
+
 # List of supported languages
-languages = sys.argv[1:]
+languages = sys.argv[3:]
 
 # Escape special characters in C strings
 def escapeCString (s):
@@ -134,7 +147,7 @@ def expandMatches (matches, translations, end=None):
 translations = [("en", gettext.NullTranslations())]
 for lang in languages:
     try:
-        trans = gettext.translation ("options", ".", [lang])
+        trans = gettext.translation ("options", localedir, [lang])
     except IOError:
         sys.stderr.write ("Warning: language '%s' not found.\n" % lang)
         continue
@@ -155,7 +168,7 @@ print \
 
 # Process the options template and generate options.h with all
 # translations.
-template = file ("t_options.h", "r")
+template = file (template_header_path, "r")
 descMatches = []
 for line in template:
     if len(descMatches) > 0: