示例#1
0
    def configure(self, config):
        # type: (Dict[Any, Any]) -> None
        "Updates configuration from a dictionary"

        _logger.debug("Updating with base config:\n%s", pformat(config))

        builder_name = config.pop("builder", None)
        if builder_name is not None:
            builder_cls = getBuilderByName(builder_name)
        else:
            builder_cls = getPreferredBuilder()

        _logger.debug("Builder class: %s", builder_cls)

        self._builder = builder_cls(self.work_dir, self._database)

        sources_added = self._database.configure(config, str(self.root_dir))
        # Add VUnit
        if not isinstance(self._builder, Fallback):
            for path, library, flags in getVunitSources(self._builder):
                self._database.addSource(path, library, flags, flags)

        # Add the flags from the root config file last, it should overwrite
        # values set by the included files
        if config:
            _logger.warning("Some configuration elements weren't used:\n%s",
                            pformat(config))

        if sources_added:
            self._handleUiInfo("Added {} sources".format(sources_added))
        else:
            self._handleUiInfo("No sources were added")
示例#2
0
 def test_getBuilderByName(self):
     self.assertEqual(getBuilderByName("msim"), MSim)
     self.assertEqual(getBuilderByName("xvhdl"), XVHDL)
     self.assertEqual(getBuilderByName("ghdl"), GHDL)
     self.assertEqual(getBuilderByName("other"), Fallback)
示例#3
0
 def test_getBuilderByName(self):
     self.assertEqual(getBuilderByName(BuilderName.msim.value), MSim)
     self.assertEqual(getBuilderByName(BuilderName.ghdl.value), GHDL)
     self.assertEqual(getBuilderByName(BuilderName.xvhdl.value), XVHDL)
     self.assertEqual(getBuilderByName("foo"), Fallback)