2 # scripted by ryuan.choi
9 macro = "TIZEN_PROFILE"
10 CONFIG_HEADER = "include \"config.h\""
12 #include "WebCore/platform/efl/tizen/TizenProfiler.h"
16 def resetFunctions(srcStr):
17 srcStr = srcStr.replace(HEADER, "")
18 srcStr = srcStr.replace(macro, "")
21 def injectHeader(srcStr):
22 return srcStr.replace(CONFIG_HEADER, CONFIG_HEADER + HEADER)
24 def injectFunctions(srcStr, functions):
26 return re.sub(r"(\w*\([\s\w,<>&\*]*\)[\s\w]*\n{)", r"\1" + macro, srcStr)
28 functions = "|".join(str(i).strip() for i in functions)
29 return re.sub(r"((" + functions + ")\([\s\w,<>&\*]*\)[\s\w]*\n{)", r"\1" + macro, srcStr)
32 fin = open("TizenScripts/injecter/default.txt", "r")
33 lines = fin.readlines()
36 if line.startswith("#") or len(line.strip()) == 0:
39 items = line.strip().split(":")
41 functionNames = set('*')
43 functionNames = set(items[1].split(','))
46 if fileName in fileMap:
47 fileMap[fileName] = fileMap[fileName] | functionNames
49 fileMap[fileName] = functionNames
51 for fileName, functions in fileMap.iteritems():
52 fileName = fileName.split("Source/")[-1] #if Source path is given, remove it.
54 src = open("Source/" + fileName, "r")
58 buffer = resetFunctions(srcStr)
59 if "reset" not in sys.argv:
60 buffer = injectHeader(buffer)
61 buffer = injectFunctions(buffer, functions)
63 dest = open("Source/" + fileName, "w")