waf: boards: allow defining abstract boards

That avoids instantiation of wrong board classes and also listing invalid board
names in the help message.
This commit is contained in:
Gustavo Jose de Sousa 2016-03-11 09:54:30 -03:00 committed by Lucas De Marchi
parent b53f38bb02
commit 93156e4325

View File

@ -13,6 +13,12 @@ class BoardMeta(type):
super(BoardMeta, cls).__init__(name, bases, dct)
if name == 'Board':
return
if 'abstract' not in cls.__dict__:
cls.abstract = False
if cls.abstract:
return
board_name = getattr(cls, 'name', name)
if board_name in _board_classes:
raise Exception('board named %s already exists' % board_name)