X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;ds=sidebyside;f=wizard%2Fbertos_utils.py;h=3ba5cfcc15d3a021e9ac405822af35d995bba0cb;hb=b8a137380f022b894587295607cc4dc3f0e7fb00;hp=4be3d536c1e4677e723c0218ce2e2043b9204550;hpb=8a96caad55694637b035b59b055b88546d234e3d;p=bertos.git diff --git a/wizard/bertos_utils.py b/wizard/bertos_utils.py index 4be3d536..3ba5cfcc 100644 --- a/wizard/bertos_utils.py +++ b/wizard/bertos_utils.py @@ -236,7 +236,8 @@ def createBertosProject(project_info, edit=False): if not edit: # Destination user mk file (only on project creation) makefile = open(os.path.join(const.DATA_DIR, "mktemplates/template.mk"), "r").read() - makefile = mkGenerator(project_info, makefile) + # Deadly performances loss was here :( + makefile = userMkGenerator(project_info, makefile) open(prjdir + "/" + os.path.basename(prjdir) + ".mk", "w").write(makefile) # Destination wizard mk file makefile = open(os.path.join(const.DATA_DIR, "mktemplates/template_wiz.mk"), "r").read() @@ -263,6 +264,14 @@ def versionFileGenerator(project_info, version_file): version = bertosVersion(project_info.info("SOURCES_PATH")) return version_file.replace('$version', version) +def userMkGenerator(project_info, makefile): + mk_data = {} + mk_data["$pname"] = os.path.basename(project_info.info("PROJECT_PATH")) + for key in mk_data: + while makefile.find(key) != -1: + makefile = makefile.replace(key, mk_data[key]) + return makefile + def mkGenerator(project_info, makefile): """ Generates the mk file for the current project. @@ -458,13 +467,19 @@ def loadSourceTree(project): fileList = [] project.setInfo("FILE_LIST", fileList) +_cached_queries = {} + def findDefinitions(ftype, project): + definitions = _cached_queries.get(ftype, None) + if definitions is not None: + return definitions L = project.info("FILE_LIST") definitions = [] for element in L: for filename in element[2]: if fnmatch.fnmatch(filename, ftype): definitions.append((filename, element[0])) + _cached_queries[ftype] = definitions return definitions def loadCpuInfos(project):