X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2FBProject.py;h=59ffd492ebc9a3e41b6cd775503e48f47dafc7f7;hb=a60c44ba0b4e02ac93b9bf7e31fe92574cccaaca;hp=0fc1b7f7f366d2f1da3186ead4e291c96dbd7a66;hpb=44987672fae5ddd002f48595a29ccdf2702a33d8;p=bertos.git diff --git a/wizard/BProject.py b/wizard/BProject.py index 0fc1b7f7..59ffd492 100644 --- a/wizard/BProject.py +++ b/wizard/BProject.py @@ -53,7 +53,7 @@ from bertos_utils import ( getCommentList, sub, # Project creation functions - projectFileGenerator, versionFileGenerator, loadPlugin, + projectFileGenerator, versionFileGenerator, loadPlugin, mergeSources, # Custom exceptions @@ -89,7 +89,7 @@ class BProject(object): project_src_path = os.path.join(project_dir, project_data.get("PROJECT_SRC_PATH", project_data["PROJECT_NAME"])) if project_src_path: self.infos["PROJECT_SRC_PATH"] = project_src_path - + else: # In projects created with older versions of the Wizard this metadata doesn't exist self.infos["PROJECT_SRC_PATH"] = os.path.join(self.infos["PROJECT_PATH"], self.infos["PROJECT_NAME"]) @@ -98,9 +98,9 @@ class BProject(object): linked_sources_path = project_data["BERTOS_PATH"] sources_abspath = os.path.abspath(os.path.join(project_dir, linked_sources_path)) project_data["BERTOS_PATH"] = sources_abspath - + self._loadBertosSourceStuff(project_data["BERTOS_PATH"], info_dict.get("BERTOS_PATH", None)) - + self.infos["PRESET"] = project_data.get("PRESET", False) # For those projects that don't have a VERSION file create a dummy one. @@ -162,7 +162,6 @@ class BProject(object): project_data = pickle.loads(open(project_file, "r").read()) self.loadSourceTree() self._loadCpuStuff(project_data["CPU_NAME"], project_data["SELECTED_FREQ"]) - self._loadToolchainStuff(project_data["TOOLCHAIN"]) # NOTE: this is a HACK!!! # TODO: find a better way to reuse loadModuleData @@ -249,7 +248,7 @@ class BProject(object): information["depends"] = () information["depends"] += (filename.split(".")[0],) information["category"] = os.path.basename(path) - + # Hack to remove 'bertos/' from the configuration file path. # # The new module information format substitute paths like 'bertos/cfg/config_file.h' @@ -263,14 +262,14 @@ class BProject(object): cfg_file_path = os.path.join(self.bertos_srcdir, configuration) configuration_info[configuration] = loadConfigurationInfos(cfg_file_path) except ParseError, err: - raise DefineException.ConfigurationDefineException(self.infos["BERTOS_PATH"] + "/" + configuration, err.line_number, err.line) + raise DefineException.ConfigurationDefineException(cfg_file_path, err.line_number, err.line) if edit: try: path = self.infos["PROJECT_SRC_PATH"] cfg_file_path = os.path.join(path, configuration) - configuration_info[configuration] = updateConfigurationValues(configuration_info[configuration], cfg_file_path) + configuration_info[configuration] = updateConfigurationValues(configuration_info[configuration], loadConfigurationInfos(cfg_file_path)) except ParseError, err: - raise DefineException.ConfigurationDefineException(configuration.replace("bertos", path)) + raise DefineException.ConfigurationDefineException(cfg_file_path, err.line_number, err.line) module_info_dict.update(module_dict) configuration_info_dict.update(configuration_info) if to_be_parsed: @@ -356,7 +355,7 @@ class BProject(object): # Copy all the files and dirs except cfg/hw/*.mk self._writeCustomSrcFiles() - + # Copy the hw files self._writeHwFiles(self.src_hwdir, self.hwdir) @@ -402,8 +401,9 @@ class BProject(object): self.infos["RELEVANT_FILES"] = relevants_files def _writeVersionFile(self, filename): - version_file = open(os.path.join(const.DATA_DIR, "vtemplates/VERSION"), "r").read() - open(filename, "w").write(versionFileGenerator(self, version_file)) + if not self.edit or self.old_srcdir: + version_file = open(os.path.join(const.DATA_DIR, "vtemplates/VERSION"), "r").read() + open(filename, "w").write(versionFileGenerator(self, version_file)) def _writeProjectFile(self, filename): f = open(filename, "w") @@ -429,6 +429,8 @@ class BProject(object): def _writeHwFiles(self, source_dir, destination_dir): for module, information in self.infos["MODULES"].items(): for hwfile in information["hw"]: + if hwfile == "": + continue string = open(source_dir + "/" + hwfile, "r").read() hwfile_path = destination_dir + "/" + os.path.basename(hwfile) if not self.edit or not os.path.exists(hwfile_path):