Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
build_travis.py
00001 #!/usr/bin/env python2 00002 00003 """ 00004 Travis-CI build script 00005 00006 mbed SDK 00007 Copyright (c) 2011-2013 ARM Limited 00008 00009 Licensed under the Apache License, Version 2.0 (the "License"); 00010 you may not use this file except in compliance with the License. 00011 You may obtain a copy of the License at 00012 00013 http://www.apache.org/licenses/LICENSE-2.0 00014 00015 Unless required by applicable law or agreed to in writing, software 00016 distributed under the License is distributed on an "AS IS" BASIS, 00017 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00018 See the License for the specific language governing permissions and 00019 limitations under the License. 00020 """ 00021 from __future__ import print_function, division, absolute_import 00022 00023 import os 00024 import sys 00025 00026 from argparse import ArgumentParser 00027 00028 ################################################################################ 00029 # Configure builds here 00030 # "libs" can contain "dsp", "usb" 00031 00032 build_list = [ 00033 { 00034 "STM": 00035 ( 00036 { "target": "B96B_F446VE", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00037 { "target": "NUCLEO_L053R8", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00038 { "target": "NUCLEO_L152RE", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00039 { "target": "NUCLEO_F030R8", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00040 { "target": "NUCLEO_F031K6", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00041 { "target": "NUCLEO_F042K6", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00042 { "target": "NUCLEO_F070RB", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00043 { "target": "NUCLEO_F072RB", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00044 { "target": "NUCLEO_F091RC", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00045 { "target": "NUCLEO_F103RB", "toolchains": "GCC_ARM" }, 00046 { "target": "NUCLEO_F207ZG", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00047 { "target": "NUCLEO_F302R8", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00048 { "target": "NUCLEO_F303K8", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00049 { "target": "NUCLEO_F303RE", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00050 { "target": "NUCLEO_F303ZE", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00051 { "target": "NUCLEO_F334R8", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00052 { "target": "NUCLEO_F401RE", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00053 { "target": "STEVAL_3DP001V1", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00054 { "target": "NUCLEO_F410RB", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00055 { "target": "NUCLEO_F411RE", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00056 { "target": "NUCLEO_F412ZG", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00057 { "target": "NUCLEO_F413ZH", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00058 { "target": "NUCLEO_L432KC", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00059 { "target": "MTB_ADV_WISE_1510", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00060 { "target": "NUCLEO_L476RG", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00061 { "target": "NUCLEO_L011K4", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00062 { "target": "NUCLEO_L031K6", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00063 { "target": "NUCLEO_L073RZ", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00064 { "target": "NUCLEO_F429ZI", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00065 { "target": "NUCLEO_F446RE", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00066 { "target": "NUCLEO_F446ZE", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00067 { "target": "NUCLEO_F746ZG", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00068 { "target": "NUCLEO_F767ZI", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00069 { "target": "NUCLEO_L496ZG", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00070 00071 { "target": "MOTE_L152RC", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00072 00073 { "target": "ELMO_F411RE", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00074 00075 { "target": "MTS_MDOT_F405RG", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00076 { "target": "MTS_MDOT_F411RE", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00077 { "target": "MTS_DRAGONFLY_F411RE", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00078 { "target": "ARCH_MAX", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00079 00080 { "target": "DISCO_F051R8", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00081 { "target": "DISCO_F303VC", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00082 { "target": "DISCO_F334C8", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00083 { "target": "DISCO_F401VC", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00084 00085 { "target": "DISCO_F407VG", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00086 { "target": "DISCO_F413ZH", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00087 { "target": "DISCO_F429ZI", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00088 { "target": "DISCO_F469NI", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00089 { "target": "DISCO_F746NG", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00090 { "target": "DISCO_F769NI", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00091 { "target": "DISCO_L475VG_IOT01A", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00092 { "target": "DISCO_L476VG", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00093 { "target": "DISCO_L072CZ_LRWAN1", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00094 00095 # module manufacturer : muRata 00096 { "target": "MTB_MURATA_ABZ", "toolchains": "GCC_ARM", "libs": [] }, 00097 ), 00098 }, 00099 00100 { 00101 "NXP": 00102 ( 00103 { "target": "LPC1768", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00104 { "target": "LPC11U24", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00105 { "target": "OC_MBUINO", "toolchains": "GCC_ARM", "libs": [] }, 00106 00107 { "target": "LPC11U24_301", "toolchains": "GCC_ARM", "libs": [] }, 00108 { "target": "LPC1114", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00109 { "target": "LPC11U35_401", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00110 { "target": "UBLOX_C027", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00111 { "target": "LPC11U35_501", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00112 { "target": "LPC11U68", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00113 { "target": "LPC11U37H_401", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00114 { "target": "LPC1549", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00115 { "target": "KL05Z", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00116 { "target": "KL25Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00117 { "target": "KL27Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00118 { "target": "KL43Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00119 { "target": "KL46Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00120 { "target": "K20D50M", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00121 { "target": "TEENSY3_1", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00122 { "target": "K64F", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00123 { "target": "K22F", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00124 { "target": "LPC4088", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00125 { "target": "ARCH_PRO", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00126 ) 00127 }, 00128 00129 { 00130 "NORDIC": 00131 ( 00132 { "target": "NRF51822", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00133 { "target": "DELTA_DFCM_NNN40", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00134 { "target": "NRF51_DK", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00135 { "target": "NRF51_MICROBIT", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00136 ) 00137 }, 00138 00139 { 00140 "SILICON_LABS": 00141 ( 00142 { "target": "EFM32ZG_STK3200", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00143 { "target": "EFM32HG_STK3400", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00144 { "target": "EFM32LG_STK3600", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00145 { "target": "EFM32GG_STK3700", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00146 { "target": "EFM32WG_STK3800", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00147 { "target": "EFM32PG_STK3401", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00148 ) 00149 }, 00150 00151 { 00152 "MAXIM": 00153 ( 00154 { "target": "MAXWSNENV", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00155 { "target": "MAX32600MBED", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00156 { "target": "MAX32620HSP", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00157 ) 00158 }, 00159 00160 { 00161 "ATMEL": 00162 ( 00163 { "target": "SAMR21G18A", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00164 { "target": "SAMD21J18A", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00165 { "target": "SAMD21G18A", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00166 { "target": "SAML21J18A", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00167 ) 00168 }, 00169 00170 00171 { 00172 "NUVOTON": 00173 ( 00174 { "target": "NUMAKER_PFM_NUC472", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00175 { "target": "NUMAKER_PFM_M453", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00176 { "target": "NUMAKER_PFM_M487", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00177 ) 00178 }, 00179 00180 00181 { 00182 "RENESAS": 00183 ( 00184 { "target": "RZ_A1H", "toolchains": "GCC_ARM" }, 00185 { "target": "GR_LYCHEE", "toolchains": "GCC_ARM" }, 00186 ) 00187 } 00188 ] 00189 00190 ################################################################################ 00191 # Configure example test building (linking against external mbed SDK libraries) 00192 00193 linking_list = [ 00194 { 00195 "NXP": ( 00196 {"target": "LPC1768", 00197 "toolchains": "GCC_ARM", 00198 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_15", "MBED_16", "MBED_17"], 00199 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00200 } 00201 }, 00202 {"target": "K64F", 00203 "toolchains": "GCC_ARM", 00204 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00205 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00206 } 00207 }, 00208 {"target": "K22F", 00209 "toolchains": "GCC_ARM", 00210 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00211 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00212 } 00213 }, 00214 {"target": "KL43Z", 00215 "toolchains": "GCC_ARM", 00216 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00217 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00218 } 00219 }, 00220 ) 00221 }, 00222 00223 { 00224 "STM": ( 00225 {"target": "NUCLEO_F446RE", 00226 "toolchains": "GCC_ARM", 00227 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00228 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00229 } 00230 }, 00231 {"target": "NUCLEO_F446ZE", 00232 "toolchains": "GCC_ARM", 00233 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00234 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00235 } 00236 }, 00237 {"target": "NUCLEO_F401RE", 00238 "toolchains": "GCC_ARM", 00239 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00240 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00241 } 00242 }, 00243 {"target": "NUCLEO_F411RE", 00244 "toolchains": "GCC_ARM", 00245 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00246 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00247 } 00248 }, 00249 {"target": "NUCLEO_F412ZG", 00250 "toolchains": "GCC_ARM", 00251 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00252 } 00253 }, 00254 {"target": "NUCLEO_F413ZH", 00255 "toolchains": "GCC_ARM", 00256 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00257 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00258 } 00259 }, 00260 {"target": "NUCLEO_F429ZI", 00261 "toolchains": "GCC_ARM", 00262 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00263 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00264 } 00265 }, 00266 {"target": "NUCLEO_F207ZG", 00267 "toolchains": "GCC_ARM", 00268 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00269 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00270 } 00271 }, 00272 {"target": "NUCLEO_F746ZG", 00273 "toolchains": "GCC_ARM", 00274 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00275 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00276 } 00277 }, 00278 {"target": "NUCLEO_F767ZI", 00279 "toolchains": "GCC_ARM", 00280 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00281 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00282 } 00283 }, 00284 {"target": "NUCLEO_L476RG", 00285 "toolchains": "GCC_ARM", 00286 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00287 } 00288 }, 00289 {"target": "DISCO_F429ZI", 00290 "toolchains": "GCC_ARM", 00291 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00292 } 00293 }, 00294 {"target": "DISCO_F407VG", 00295 "toolchains": "GCC_ARM", 00296 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00297 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00298 } 00299 }, 00300 {"target": "DISCO_F413ZH", 00301 "toolchains": "GCC_ARM", 00302 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00303 } 00304 }, 00305 {"target": "NUCLEO_F303ZE", 00306 "toolchains": "GCC_ARM", 00307 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00308 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00309 } 00310 }, 00311 {"target": "DISCO_L475VG_IOT01A", 00312 "toolchains": "GCC_ARM", 00313 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00314 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00315 } 00316 }, 00317 {"target": "DISCO_L476VG", 00318 "toolchains": "GCC_ARM", 00319 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00320 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00321 } 00322 }, 00323 {"target": "DISCO_L072CZ_LRWAN1", 00324 "toolchains": "GCC_ARM", 00325 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00326 } 00327 }, 00328 {"target": "MTB_MURATA_ABZ", 00329 "toolchains": "GCC_ARM", 00330 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00331 } 00332 }, 00333 ) 00334 }, 00335 { 00336 "NUVOTON": ( 00337 {"target": "NUMAKER_PFM_NUC472", 00338 "toolchains": "GCC_ARM", 00339 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00340 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00341 } 00342 }, 00343 {"target": "NUMAKER_PFM_M453", 00344 "toolchains": "GCC_ARM", 00345 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00346 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00347 } 00348 }, 00349 {"target": "NUMAKER_PFM_M487", 00350 "toolchains": "GCC_ARM", 00351 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00352 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00353 } 00354 } 00355 ) 00356 }, 00357 { 00358 "RENESAS": 00359 ( 00360 { 00361 "target": "RZ_A1H", 00362 "toolchains": "GCC_ARM", 00363 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00364 } 00365 }, 00366 { 00367 "target": "GR_LYCHEE", 00368 "toolchains": "GCC_ARM", 00369 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00370 } 00371 }, 00372 ) 00373 } 00374 ] 00375 00376 ################################################################################ 00377 00378 # Driver 00379 00380 def run_builds(dry_run, vendor): 00381 for vendor_list in build_list: 00382 if vendor in vendor_list: 00383 for build in vendor_list[vendor]: 00384 toolchain_list = build["toolchains"] 00385 if type(toolchain_list) != type([]): toolchain_list = [toolchain_list] 00386 for toolchain in toolchain_list: 00387 cmdline = ("%s tools/build.py -m %s -t %s -c --silent "% 00388 (sys.executable, build["target"], toolchain)) 00389 libs = build.get("libs", []) 00390 if libs: 00391 cmdline = cmdline + " ".join(["--" + l for l in libs]) 00392 print("Executing: %s" % cmdline) 00393 if not dry_run: 00394 if os.system(cmdline) != 0: 00395 sys.exit(1) 00396 00397 00398 def run_test_linking(dry_run, vendor): 00399 """ Function run make.py commands to build and link simple mbed SDK 00400 tests against few libraries to make sure there are no simple linking errors. 00401 """ 00402 for vendor_list in linking_list: 00403 if vendor in vendor_list: 00404 for link in vendor_list[vendor]: 00405 toolchain_list = link["toolchains"] 00406 if type(toolchain_list) != type([]): 00407 toolchain_list = [toolchain_list] 00408 for toolchain in toolchain_list: 00409 tests = link["tests"] 00410 # Call make.py for each test group for particular library 00411 for test_lib in tests: 00412 test_names = tests[test_lib] 00413 test_lib_switch = "--" + test_lib if test_lib else "" 00414 cmdline = ("%s tools/make.py -m %s -t %s -c --silent %s " 00415 "-n %s" % (sys.executable, link["target"], 00416 toolchain, test_lib_switch, 00417 ",".join(test_names))) 00418 print("Executing: %s" % cmdline) 00419 if not dry_run: 00420 if os.system(cmdline) != 0: 00421 sys.exit(1) 00422 00423 if __name__ == "__main__": 00424 parser = ArgumentParser() 00425 00426 parser.add_argument("--vendor", 00427 metavar="vendor", 00428 type=str.upper, 00429 help="Select a vendor to run travis tests" 00430 ) 00431 00432 options = parser.parse_args() 00433 00434 run_builds("-s" in sys.argv, options.vendor) 00435 run_test_linking("-s" in sys.argv, options.vendor)
Generated on Tue Jul 12 2022 11:43:25 by
