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"])
+ self.infos["HW_PATH"] = os.path.join(self.infos["PROJECT_PATH"], project_data.get("HW_PATH", self.infos["PROJECT_PATH"]))
linked_sources_path = project_data["BERTOS_PATH"]
sources_abspath = os.path.abspath(os.path.join(project_dir, linked_sources_path))
# TODO: find a better way to reuse loadModuleData
preset_project_name = project_data.get("PROJECT_NAME", os.path.basename(preset))
preset_prj_src_path = os.path.join(preset, project_data.get("PROJECT_SRC_PATH", os.path.join(preset, preset_project_name)))
+ preset_hw_path = os.path.join(preset, project_data.get("PROJET_HW_DIR", preset))
old_project_name = self.infos["PROJECT_NAME"]
old_project_path = self.infos["PROJECT_PATH"]
self.infos["PRESET_NAME"] = preset_project_name
self.infos["PRESET_PATH"] = preset
self.infos["PRESET_SRC_PATH"] = preset_prj_src_path
+ self.infos["PRESET_HW_DIR"] = preset_hw_path
def loadProjectPresets(self):
"""
self._newBertosProjectFromPreset()
def _newBertosProject(self):
- for directory in (self.maindir, self.srcdir, self.prjdir, self.cfgdir):
+ for directory in (self.maindir, self.srcdir, self.prjdir, self.cfgdir, self.hwdir):
self._createDirectory(directory)
# Write the project file
self._writeProjectFile(os.path.join(self.maindir, "project.bertos"))
# Copy all the files and dirs except cfg/hw/*.mk
self._writeCustomSrcFiles()
+
+ # Copy the hw files
+ self._writeHwFiles(self.src_hwdir, self.hwdir)
# Copyt the new *_user.mk file
self._writeUserMkFileFromPreset()
# Files to be ignored (all project files, cfg dir, wizard mk file, all global ignored dirs)
project_related_stuff = (
"cfg",
+ "hw",
self.infos["PRESET_NAME"] + ".mk",
self.infos["PRESET_NAME"] + "_user.mk",
"project.bertos",
def sources_dir(self):
return self.infos.get("BERTOS_PATH", None)
+ @property
+ def src_hwdir(self):
+ if self.from_preset:
+ return os.path.join(self.infos["PRESET_PATH"], self.infos["PRESET_HW_DIR"])
+ else:
+ return self.sources_dir
+
@property
def from_preset(self):
return self.infos.get("PROJECT_FROM_PRESET", False)