X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;ds=inline;f=wizard%2FBProject.py;h=81f2de6cd71fb60c5d93c0630ee6699d660c4ab7;hb=1b91fae6ef2c8d756d1f3a1ab812ddb92e650c01;hp=866d5be977f15650e86e7fdff941002cd6d2a394;hpb=0872dc2bd3b7c572c8dc0ae2afa75b0b3996174f;p=bertos.git diff --git a/wizard/BProject.py b/wizard/BProject.py index 866d5be9..81f2de6c 100644 --- a/wizard/BProject.py +++ b/wizard/BProject.py @@ -116,11 +116,35 @@ class BProject(object): self.loadModuleData(True) setEnabledModules(self, project_data["ENABLED_MODULES"]) - def loadProjectPresets(self, preset_directory): - # This method will save: - # "CPU_NAME" - # ... - pass + def loadProjectPresets(self): + """ + Load the default presets (into the const.PREDEFINED_BOARDS_DIR). + """ + # NOTE: this method does nothing (for now). + preset_path = os.path.join(self.infos["SOURCES_PATH"], const.PREDEFINED_BOARDS_DIR) + preset_tree = {} + if os.path.exists(preset_path): + preset_tree = self._loadProjectPresetTree(preset_path) + self.infos["PRESET_TREE"] = preset_tree + + def _loadProjectPresetTree(self, path): + _tree = {} + _tree['info'] = self._loadPresetInfo(os.path.join(path, const.PREDEFINED_BOARD_SPEC_FILE)) + _tree['info']['filename'] = os.path.basename(path) + _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)) + return _tree + + def _loadPresetInfo(self, preset_spec_file): + D = {} + execfile(preset_spec_file, {}, D) + return D def loadModuleData(self, edit=False): module_info_dict = {} @@ -163,9 +187,6 @@ class BProject(object): list_info_dict.update(list_dict) except ParseError, err: raise DefineException.EnumDefineException(path, err.line_number, err.line) - for filename, path in self.findDefinitions("*_" + self.infos["CPU_INFOS"]["TOOLCHAIN"] + ".h"): - comment_list = getCommentList(open(path + "/" + filename, "r").read()) - list_info_dict.update(loadDefineLists(comment_list)) 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()) @@ -234,4 +255,4 @@ class BProject(object): return definitions def __repr__(self): - return repr(self.infos) \ No newline at end of file + return repr(self.infos)