projects
/
lttng-ust.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Allow #include in template (.tp) file
[lttng-ust.git]
/
tools
/
lttng-gen-tp
diff --git
a/tools/lttng-gen-tp
b/tools/lttng-gen-tp
index 2f468cbb79abde4fbf580208cc4728df91af548a..1ff91464acc0a4441efa9a4a1a8a0ff6c5b7b8e3 100755
(executable)
--- a/
tools/lttng-gen-tp
+++ b/
tools/lttng-gen-tp
@@
-61,7
+61,9
@@
extern "C"{{
def write(self):
outputFile = open(self.outputFilename,"w")
def write(self):
outputFile = open(self.outputFilename,"w")
- includeGuard = self.outputFilename.upper().replace(".","_")
+ # Include guard macro will be created by uppercasing the filename and
+ # replacing all non alphanumeric characters with '_'
+ includeGuard = re.sub('[^0-9a-zA-Z]', '_', self.outputFilename.upper())
outputFile.write(HeaderFile.HEADER_TPL.format(providerName=self.template.domain,
includeGuard = includeGuard,
outputFile.write(HeaderFile.HEADER_TPL.format(providerName=self.template.domain,
includeGuard = includeGuard,
@@
-143,6
+145,8
@@
class ObjFile:
cflags = ""
command = cc + " -c " + cflags + " -I. -llttng-ust" + " -o " + self.outputFilename + " " + cFilename
cflags = ""
command = cc + " -c " + cflags + " -I. -llttng-ust" + " -o " + self.outputFilename + " " + cFilename
+ if verbose:
+ print("Compile command: " + command)
subprocess.call(command.split())
class TemplateFile:
subprocess.call(command.split())
class TemplateFile:
@@
-157,12
+161,16
@@
class TemplateFile:
self.text = f.read()
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)
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)
#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
#Remove all spaces and lines
cleantext = re.sub("\s*","",nolinecomment)
#Remove multine C style comments
@@
-182,6
+190,8
@@
class TemplateFile:
if self.domain != domain:
print "Warning: different domain provided (%s,%s)" % (self.domain, domain)
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
usage="""
lttng-gen-tp - Generate the LTTng-UST header and source based on a simple template
@@
-204,7
+214,7
@@
def main(argv=None):
try:
try:
try:
try:
- opts, args = getopt.gnu_getopt(argv[1:], "ho:a
", ["help
"])
+ opts, args = getopt.gnu_getopt(argv[1:], "ho:a
v", ["help","verbose
"])
except getopt.error, msg:
raise Usage(msg)
except getopt.error, msg:
raise Usage(msg)
@@
-222,6
+232,9
@@
def main(argv=None):
outputNames.append(a)
if o in ("-a",""):
all = True
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")
try:
if len(args) == 0:
raise Usage("No template file given")
This page took
0.024292 seconds
and
4
git commands to generate.