mbed-os for GR-LYCHEE

Dependents:   mbed-os-example-blinky-gr-lychee GR-Boads_Camera_sample GR-Boards_Audio_Recoder GR-Boads_Camera_DisplayApp ... more

Committer:
dkato
Date:
Fri Feb 02 05:42:23 2018 +0000
Revision:
0:f782d9c66c49
mbed-os for GR-LYCHEE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dkato 0:f782d9c66c49 1 """
dkato 0:f782d9c66c49 2 mbed SDK
dkato 0:f782d9c66c49 3 Copyright (c) 2011-2013 ARM Limited
dkato 0:f782d9c66c49 4
dkato 0:f782d9c66c49 5 Licensed under the Apache License, Version 2.0 (the "License");
dkato 0:f782d9c66c49 6 you may not use this file except in compliance with the License.
dkato 0:f782d9c66c49 7 You may obtain a copy of the License at
dkato 0:f782d9c66c49 8
dkato 0:f782d9c66c49 9 http://www.apache.org/licenses/LICENSE-2.0
dkato 0:f782d9c66c49 10
dkato 0:f782d9c66c49 11 Unless required by applicable law or agreed to in writing, software
dkato 0:f782d9c66c49 12 distributed under the License is distributed on an "AS IS" BASIS,
dkato 0:f782d9c66c49 13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
dkato 0:f782d9c66c49 14 See the License for the specific language governing permissions and
dkato 0:f782d9c66c49 15 limitations under the License.
dkato 0:f782d9c66c49 16 """
dkato 0:f782d9c66c49 17 from tools.paths import MBED_RTX, RTOS, RTOS_LIBRARIES, MBED_LIBRARIES,\
dkato 0:f782d9c66c49 18 MBED_RPC, RPC_LIBRARY, USB, USB_LIBRARIES, USB_HOST,\
dkato 0:f782d9c66c49 19 USB_HOST_LIBRARIES, DSP_ABSTRACTION, DSP_CMSIS, DSP_LIBRARIES,\
dkato 0:f782d9c66c49 20 ETH_SOURCES, LWIP_SOURCES, ETH_LIBRARY, UBLOX_SOURCES,\
dkato 0:f782d9c66c49 21 UBLOX_LIBRARY, CELLULAR_SOURCES, CELLULAR_USB_SOURCES, CPPUTEST_SRC,\
dkato 0:f782d9c66c49 22 CPPUTEST_PLATFORM_SRC, CPPUTEST_TESTRUNNER_SCR, CPPUTEST_LIBRARY,\
dkato 0:f782d9c66c49 23 CPPUTEST_INC, CPPUTEST_PLATFORM_INC, CPPUTEST_TESTRUNNER_INC,\
dkato 0:f782d9c66c49 24 CPPUTEST_INC_EXT
dkato 0:f782d9c66c49 25 from tools.data.support import DEFAULT_SUPPORT
dkato 0:f782d9c66c49 26 from tools.tests import TEST_MBED_LIB
dkato 0:f782d9c66c49 27
dkato 0:f782d9c66c49 28
dkato 0:f782d9c66c49 29 LIBRARIES = [
dkato 0:f782d9c66c49 30 # RTOS libraries
dkato 0:f782d9c66c49 31 {
dkato 0:f782d9c66c49 32 "id": "rtx",
dkato 0:f782d9c66c49 33 "source_dir": MBED_RTX,
dkato 0:f782d9c66c49 34 "build_dir": RTOS_LIBRARIES,
dkato 0:f782d9c66c49 35 "dependencies": [MBED_LIBRARIES],
dkato 0:f782d9c66c49 36 },
dkato 0:f782d9c66c49 37 {
dkato 0:f782d9c66c49 38 "id": "rtos",
dkato 0:f782d9c66c49 39 "source_dir": RTOS,
dkato 0:f782d9c66c49 40 "build_dir": RTOS_LIBRARIES,
dkato 0:f782d9c66c49 41 "dependencies": [MBED_LIBRARIES, MBED_RTX],
dkato 0:f782d9c66c49 42 },
dkato 0:f782d9c66c49 43
dkato 0:f782d9c66c49 44 # RPC
dkato 0:f782d9c66c49 45 {
dkato 0:f782d9c66c49 46 "id": "rpc",
dkato 0:f782d9c66c49 47 "source_dir": MBED_RPC,
dkato 0:f782d9c66c49 48 "build_dir": RPC_LIBRARY,
dkato 0:f782d9c66c49 49 "dependencies": [MBED_LIBRARIES],
dkato 0:f782d9c66c49 50 },
dkato 0:f782d9c66c49 51
dkato 0:f782d9c66c49 52 # USB Device libraries
dkato 0:f782d9c66c49 53 {
dkato 0:f782d9c66c49 54 "id": "usb",
dkato 0:f782d9c66c49 55 "source_dir": USB,
dkato 0:f782d9c66c49 56 "build_dir": USB_LIBRARIES,
dkato 0:f782d9c66c49 57 "dependencies": [MBED_LIBRARIES],
dkato 0:f782d9c66c49 58 },
dkato 0:f782d9c66c49 59
dkato 0:f782d9c66c49 60 # USB Host libraries
dkato 0:f782d9c66c49 61 {
dkato 0:f782d9c66c49 62 "id": "usb_host",
dkato 0:f782d9c66c49 63 "source_dir": USB_HOST,
dkato 0:f782d9c66c49 64 "build_dir": USB_HOST_LIBRARIES,
dkato 0:f782d9c66c49 65 "dependencies": [MBED_LIBRARIES, MBED_RTX, RTOS_LIBRARIES],
dkato 0:f782d9c66c49 66 },
dkato 0:f782d9c66c49 67
dkato 0:f782d9c66c49 68 # DSP libraries
dkato 0:f782d9c66c49 69 {
dkato 0:f782d9c66c49 70 "id": "dsp",
dkato 0:f782d9c66c49 71 "source_dir": [DSP_ABSTRACTION, DSP_CMSIS],
dkato 0:f782d9c66c49 72 "build_dir": DSP_LIBRARIES,
dkato 0:f782d9c66c49 73 "dependencies": [MBED_LIBRARIES]
dkato 0:f782d9c66c49 74 },
dkato 0:f782d9c66c49 75
dkato 0:f782d9c66c49 76 # Network libraries
dkato 0:f782d9c66c49 77 {
dkato 0:f782d9c66c49 78 "id": "eth",
dkato 0:f782d9c66c49 79 "source_dir": [ETH_SOURCES, LWIP_SOURCES],
dkato 0:f782d9c66c49 80 "build_dir": ETH_LIBRARY,
dkato 0:f782d9c66c49 81 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES]
dkato 0:f782d9c66c49 82 },
dkato 0:f782d9c66c49 83
dkato 0:f782d9c66c49 84 {
dkato 0:f782d9c66c49 85 "id": "ublox",
dkato 0:f782d9c66c49 86 "source_dir": [UBLOX_SOURCES, CELLULAR_SOURCES, CELLULAR_USB_SOURCES,
dkato 0:f782d9c66c49 87 LWIP_SOURCES],
dkato 0:f782d9c66c49 88 "build_dir": UBLOX_LIBRARY,
dkato 0:f782d9c66c49 89 "dependencies": [MBED_LIBRARIES, RTOS_LIBRARIES, USB_HOST_LIBRARIES],
dkato 0:f782d9c66c49 90 },
dkato 0:f782d9c66c49 91
dkato 0:f782d9c66c49 92 # Unit Testing library
dkato 0:f782d9c66c49 93 {
dkato 0:f782d9c66c49 94 "id": "cpputest",
dkato 0:f782d9c66c49 95 "source_dir": [CPPUTEST_SRC, CPPUTEST_PLATFORM_SRC,
dkato 0:f782d9c66c49 96 CPPUTEST_TESTRUNNER_SCR],
dkato 0:f782d9c66c49 97 "build_dir": CPPUTEST_LIBRARY,
dkato 0:f782d9c66c49 98 "dependencies": [MBED_LIBRARIES],
dkato 0:f782d9c66c49 99 'inc_dirs': [CPPUTEST_INC, CPPUTEST_PLATFORM_INC,
dkato 0:f782d9c66c49 100 CPPUTEST_TESTRUNNER_INC, TEST_MBED_LIB],
dkato 0:f782d9c66c49 101 'inc_dirs_ext': [CPPUTEST_INC_EXT],
dkato 0:f782d9c66c49 102 'macros': ["CPPUTEST_USE_MEM_LEAK_DETECTION=0",
dkato 0:f782d9c66c49 103 "CPPUTEST_USE_STD_CPP_LIB=0", "CPPUTEST=1"],
dkato 0:f782d9c66c49 104 },
dkato 0:f782d9c66c49 105 ]
dkato 0:f782d9c66c49 106
dkato 0:f782d9c66c49 107
dkato 0:f782d9c66c49 108 LIBRARY_MAP = dict([(library['id'], library) for library in LIBRARIES])
dkato 0:f782d9c66c49 109
dkato 0:f782d9c66c49 110
dkato 0:f782d9c66c49 111 class Library(object):
dkato 0:f782d9c66c49 112 """A library representation that allows for querying of support"""
dkato 0:f782d9c66c49 113 def __init__(self, lib_id):
dkato 0:f782d9c66c49 114 lib = LIBRARY_MAP[lib_id]
dkato 0:f782d9c66c49 115 self.supported = lib.get("supported", DEFAULT_SUPPORT)
dkato 0:f782d9c66c49 116 self.dependencies = lib.get("dependencies", None)
dkato 0:f782d9c66c49 117 # Include dirs required by library build
dkato 0:f782d9c66c49 118 self.inc_dirs = lib.get("inc_dirs", None)
dkato 0:f782d9c66c49 119 # Include dirs required by others to use with this library
dkato 0:f782d9c66c49 120 self.inc_dirs_ext = lib.get("inc_dirs_ext", None)
dkato 0:f782d9c66c49 121 # Additional macros you want to define when building library
dkato 0:f782d9c66c49 122 self.macros = lib.get("macros", None)
dkato 0:f782d9c66c49 123
dkato 0:f782d9c66c49 124 self.source_dir = lib["source_dir"]
dkato 0:f782d9c66c49 125 self.build_dir = lib["build_dir"]
dkato 0:f782d9c66c49 126
dkato 0:f782d9c66c49 127 def is_supported(self, target, toolchain):
dkato 0:f782d9c66c49 128 """Check if a target toolchain combination is supported
dkato 0:f782d9c66c49 129
dkato 0:f782d9c66c49 130 Positional arguments:
dkato 0:f782d9c66c49 131 target - the MCU or board
dkato 0:f782d9c66c49 132 toolchain - the compiler
dkato 0:f782d9c66c49 133 """
dkato 0:f782d9c66c49 134 if not hasattr(self, 'supported'):
dkato 0:f782d9c66c49 135 return True
dkato 0:f782d9c66c49 136 return (target.name in self.supported) and \
dkato 0:f782d9c66c49 137 (toolchain in self.supported[target.name])