From: Yannick Brosseau Date: Sat, 22 Jun 2013 17:48:27 +0000 (-0400) Subject: Allow #include in template (.tp) file X-Git-Tag: v2.2.0~4 X-Git-Url: http://git.liburcu.org/?p=lttng-ust.git;a=commitdiff_plain;h=47eba1fd0b22821100f18893d1b7e88b12d9c99f Allow #include in template (.tp) file The #include directive won't be parsed, but will be copied to the generated .h files. Also add a verbose (-v) mode to display some debugging output Signed-off-by: Yannick Brosseau Signed-off-by: Mathieu Desnoyers --- diff --git a/tools/lttng-gen-tp b/tools/lttng-gen-tp index 5937dfdf..1ff91464 100755 --- a/tools/lttng-gen-tp +++ b/tools/lttng-gen-tp @@ -145,6 +145,8 @@ class ObjFile: cflags = "" command = cc + " -c " + cflags + " -I. -llttng-ust" + " -o " + self.outputFilename + " " + cFilename + if verbose: + print("Compile command: " + command) subprocess.call(command.split()) class TemplateFile: @@ -159,12 +161,16 @@ class TemplateFile: self.text = f.read() - #Remove # comments (from input and output file - removeComments = re.compile("#.*$",flags=re.MULTILINE) + #Remove # comments (from input and output file) but keep + # #include in the output file + removeComments = re.compile("#[^include].*$",flags=re.MULTILINE) self.text = removeComments.sub("",self.text) + # Remove #include directive from the parsed text + removePreprocess = re.compile("#.*$",flags=re.MULTILINE) + noPreprocess = removePreprocess.sub("", self.text) #Remove // comments removeLineComment = re.compile("\/\/.*$",flags=re.MULTILINE) - nolinecomment = removeLineComment.sub("",self.text) + nolinecomment = removeLineComment.sub("", noPreprocess) #Remove all spaces and lines cleantext = re.sub("\s*","",nolinecomment) #Remove multine C style comments @@ -184,6 +190,8 @@ class TemplateFile: if self.domain != domain: print "Warning: different domain provided (%s,%s)" % (self.domain, domain) +verbose=False + usage=""" lttng-gen-tp - Generate the LTTng-UST header and source based on a simple template @@ -206,7 +214,7 @@ def main(argv=None): try: try: - opts, args = getopt.gnu_getopt(argv[1:], "ho:a", ["help"]) + opts, args = getopt.gnu_getopt(argv[1:], "ho:av", ["help","verbose"]) except getopt.error, msg: raise Usage(msg) @@ -224,6 +232,9 @@ def main(argv=None): outputNames.append(a) if o in ("-a",""): all = True + if o in ("-v", "--verbose"): + global verbose + verbose = True try: if len(args) == 0: raise Usage("No template file given")