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["PROJECT_HW_PATH"] = os.path.join(self.infos["PROJECT_PATH"], project_data.get("PROJECT_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_prj_hw_path = os.path.join(preset, project_data.get("PROJECT_HW_PATH", preset))
old_project_name = self.infos["PROJECT_NAME"]
old_project_path = self.infos["PROJECT_PATH"]
old_project_src_path = self.infos["PROJECT_SRC_PATH"]
+ old_project_hw_path = self.infos["PROJECT_HW_PATH"]
self.infos["PROJECT_NAME"] = preset_project_name
self.infos["PROJECT_PATH"] = preset
self.infos["PROJECT_SRC_PATH"] = preset_prj_src_path
+ self.infos["PROJECT_HW_PATH"] = preset_prj_hw_path
self.loadModuleData(True)
self.setEnabledModules(project_data["ENABLED_MODULES"])
self.infos["PROJECT_NAME"] = old_project_name
self.infos["PROJECT_PATH"] = old_project_path
self.infos["PROJECT_SRC_PATH"] = old_project_src_path
+ self.infos["PROJECT_HW_PATH"] = old_project_hw_path
# End of the ugly HACK!
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_PATH"] = preset_prj_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"))
# Create/write/copy the common things
self._newBertosProject()
- # Copy all the files and dirs except cfg/hw/*_wiz.mk
+ # 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()
if self.infos["EMPTY_MAIN"]:
# Create and empty main.c file only if the user check the box
def _writeUserMkFile(self):
bertos_utils.userMkGenerator(self)
+ def _writeUserMkFileFromPreset(self):
+ bertos_utils.userMkGeneratorFromPreset(self)
+
def _writeWizardMkFile(self):
bertos_utils.mkGenerator(self)
# Files to be ignored (all project files, cfg dir, wizard mk file, all global ignored dirs)
project_related_stuff = (
"cfg",
- self.infos["PRESET_NAME"] + "_wiz.mk",
+ "hw",
+ self.infos["PRESET_NAME"] + ".mk",
+ self.infos["PRESET_NAME"] + "_user.mk",
"project.bertos",
self.infos["PRESET_NAME"] + ".project",
self.infos["PRESET_NAME"] + ".workspace",
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_PATH"])
+ else:
+ return self.sources_dir
+
@property
def from_preset(self):
return self.infos.get("PROJECT_FROM_PRESET", False)