mbed-os/workspace_tools/libraries.py

87 lines
2.2 KiB
Python
Raw Normal View History

from workspace_tools.paths import *
from workspace_tools.data.support import *
LIBRARIES = [
# RTOS libraries
{
"id": "rtx",
"source_dir": MBED_RTX,
"build_dir": RTOS_LIBRARIES,
"dependencies": [MBED_LIBRARIES],
},
{
"id": "rtos",
"source_dir": RTOS_ABSTRACTION,
"build_dir": RTOS_LIBRARIES,
"dependencies": [MBED_LIBRARIES, MBED_RTX],
},
# USB Device libraries
{
"id": "usb",
"source_dir": USB,
"build_dir": USB_LIBRARIES,
"dependencies": [MBED_LIBRARIES],
},
# USB Host libraries
{
"id": "usb_host",
"source_dir": USB_HOST,
"build_dir": USB_HOST_LIBRARIES,
"dependencies": [MBED_LIBRARIES, FAT_FS, MBED_RTX, RTOS_ABSTRACTION],
},
# DSP libraries
{
"id": "cmsis_dsp",
"source_dir": DSP_CMSIS,
"build_dir": DSP_LIBRARIES,
"dependencies": [MBED_LIBRARIES],
"supported": CORTEX_ARM_SUPPORT
},
{
"id": "dsp",
"source_dir": DSP_ABSTRACTION,
"build_dir": DSP_LIBRARIES,
"dependencies": [MBED_LIBRARIES, DSP_CMSIS],
"supported": CORTEX_ARM_SUPPORT
},
# Network libraries
{
"id": "eth",
"source_dir": [ETH_SOURCES, LWIP_SOURCES],
"build_dir": ETH_LIBRARY,
"dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, ETH_SOURCES, LWIP_SOURCES],
"supported": CORTEX_ARM_SUPPORT
},
{
"id": "vodafone",
"source_dir": [VODAFONE_SOURCES, LWIP_SOURCES],
"build_dir": VODAFONE_LIBRARY,
"dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, VODAFONE_SOURCES, LWIP_SOURCES],
"supported": CORTEX_ARM_SUPPORT
},
]
LIBRARY_MAP = dict([(library['id'], library) for library in LIBRARIES])
class Library:
DEFAULTS = {
"supported": DEFAULT_SUPPORT,
'dependencies': None,
}
def __init__(self, lib_id):
self.__dict__.update(Library.DEFAULTS)
self.__dict__.update(LIBRARY_MAP[lib_id])
def is_supported(self, target, toolchain):
if not hasattr(self, 'supported'):
return True
return (target.name in self.supported) and (toolchain in self.supported[target.name])