X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2FBProject.py;h=1a7fb258d2e4289f97a8d0b68307edd30d152e80;hb=3d3ba83839f2a8faed6c373e5153d61672ce7fb6;hp=b31c3f114fcc6e280d729e789094b918d91c4b6c;hpb=be3d03b4cf5718476516f7564855a17cfe6e4d78;p=bertos.git diff --git a/wizard/BProject.py b/wizard/BProject.py index b31c3f11..1a7fb258 100644 --- a/wizard/BProject.py +++ b/wizard/BProject.py @@ -28,7 +28,6 @@ # # Copyright 2008 Develer S.r.l. (http://www.develer.com/) # -# $Id$ # # Author: Lorenzo Berni # @@ -209,14 +208,14 @@ class BProject(object): _tree["info"] = self._loadPresetInfo(os.path.join(path, const.PREDEFINED_BOARD_SPEC_FILE)) _tree["info"]["filename"] = os.path.basename(path) _tree["info"]["path"] = path - _tree["children"] = [] + _tree["children"] = {} entries = set(os.listdir(path)) for entry in entries: _path = os.path.join(path, entry) if os.path.isdir(_path): sub_entries = set(os.listdir(_path)) if const.PREDEFINED_BOARD_SPEC_FILE in sub_entries: - _tree["children"].append(self._loadProjectPresetTree(_path)) + _tree["children"][_path] = self._loadProjectPresetTree(_path) # Add into the info dict the dir type (dir/project) if _tree["children"]: _tree["info"]["type"] = "dir" @@ -226,7 +225,10 @@ class BProject(object): def _loadPresetInfo(self, preset_spec_file): D = {} - execfile(preset_spec_file, {}, D) + try: + execfile(preset_spec_file, {}, D) + except IOError, e: + pass return D def loadModuleData(self, edit=False): @@ -242,7 +244,7 @@ class BProject(object): try: to_be_parsed, module_dict = loadModuleDefinition(comment_list[0]) except ParseError, err: - raise DefineException.ModuleDefineException(path, err.line_number, err.line) + raise DefineException.ModuleDefineException(os.path.join(path, filename), err.line_number, err.line) for module, information in module_dict.items(): if "depends" not in information: information["depends"] = () @@ -280,7 +282,7 @@ class BProject(object): list_dict = loadDefineLists(comment_list[1:]) list_info_dict.update(list_dict) except ParseError, err: - raise DefineException.EnumDefineException(path, err.line_number, err.line) + raise DefineException.EnumDefineException(os.path.join(path, filename), err.line_number, err.line) for tag in self.infos["CPU_INFOS"]["CPU_TAGS"]: for filename, path in self.findDefinitions("*_" + tag + ".h"): comment_list = getCommentList(open(path + "/" + filename, "r").read()) @@ -365,10 +367,6 @@ class BProject(object): # Copyt the new *_user.mk file self._writeUserMkFileFromPreset() - if self.infos["EMPTY_MAIN"]: - # Create and empty main.c file only if the user check the box - self._writeMainFile(self.prjdir + "/main.c") - # Create project files for selected plugins self._createProjectFiles() @@ -385,8 +383,11 @@ class BProject(object): self._mergeSources(self.bertos_maindir, self.srcdir, self.old_srcdir) # Copy all the hw files self._writeHwFiles(self.bertos_srcdir, self.hwdir) - # Destination wizard mk file - self._writeWizardMkFile() + + # Destination wizard mk file (it seems that this file need to be + # rewritten also if the project is a preset)... + self._writeWizardMkFile() + # Set properly the autoenabled parameters self._setupAutoenabledParameters() # Copy all the configuration files