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": "NUCLEO_F410RB", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00054 { "target": "NUCLEO_F411RE", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00055 { "target": "NUCLEO_F412ZG", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00056 { "target": "NUCLEO_F413ZH", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00057 { "target": "NUCLEO_L432KC", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00058 { "target": "MTB_ADV_WISE_1510", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00059 { "target": "NUCLEO_L476RG", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00060 { "target": "NUCLEO_L011K4", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00061 { "target": "NUCLEO_L031K6", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00062 { "target": "NUCLEO_L073RZ", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00063 { "target": "NUCLEO_F429ZI", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00064 { "target": "NUCLEO_F446RE", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00065 { "target": "NUCLEO_F446ZE", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00066 { "target": "NUCLEO_F746ZG", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00067 { "target": "NUCLEO_F767ZI", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00068 { "target": "NUCLEO_L496ZG", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00069 00070 { "target": "MOTE_L152RC", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00071 00072 { "target": "ELMO_F411RE", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00073 00074 { "target": "MTS_MDOT_F405RG", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00075 { "target": "MTS_MDOT_F411RE", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00076 { "target": "MTS_DRAGONFLY_F411RE", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00077 { "target": "ARCH_MAX", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00078 00079 { "target": "DISCO_F051R8", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00080 { "target": "DISCO_F303VC", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00081 { "target": "DISCO_F334C8", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00082 { "target": "DISCO_F401VC", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00083 00084 { "target": "DISCO_F407VG", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00085 { "target": "DISCO_F413ZH", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00086 { "target": "DISCO_F429ZI", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00087 { "target": "DISCO_F469NI", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00088 { "target": "DISCO_F746NG", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00089 { "target": "DISCO_F769NI", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00090 { "target": "DISCO_L475VG_IOT01A", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00091 { "target": "DISCO_L476VG", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00092 { "target": "DISCO_L072CZ_LRWAN1", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00093 00094 # module manufacturer : muRata 00095 { "target": "MTB_MURATA_ABZ", "toolchains": "GCC_ARM", "libs": [] }, 00096 ), 00097 }, 00098 00099 { 00100 "NXP": 00101 ( 00102 { "target": "LPC1768", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00103 { "target": "LPC11U24", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00104 { "target": "OC_MBUINO", "toolchains": "GCC_ARM", "libs": [] }, 00105 00106 { "target": "LPC11U24_301", "toolchains": "GCC_ARM", "libs": [] }, 00107 { "target": "LPC1114", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00108 { "target": "LPC11U35_401", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00109 { "target": "UBLOX_C027", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00110 { "target": "LPC11U35_501", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00111 { "target": "LPC11U68", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00112 { "target": "LPC11U37H_401", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00113 { "target": "LPC1549", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00114 { "target": "KL05Z", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00115 { "target": "KL25Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00116 { "target": "KL27Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00117 { "target": "KL43Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00118 { "target": "KL46Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00119 { "target": "K20D50M", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00120 { "target": "TEENSY3_1", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00121 { "target": "K64F", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00122 { "target": "K22F", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00123 { "target": "LPC4088", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00124 { "target": "ARCH_PRO", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00125 ) 00126 }, 00127 00128 { 00129 "NORDIC": 00130 ( 00131 { "target": "NRF51822", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00132 { "target": "DELTA_DFCM_NNN40", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00133 { "target": "NRF51_DK", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00134 { "target": "NRF51_MICROBIT", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00135 ) 00136 }, 00137 00138 { 00139 "SILICON_LABS": 00140 ( 00141 { "target": "EFM32ZG_STK3200", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00142 { "target": "EFM32HG_STK3400", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00143 { "target": "EFM32LG_STK3600", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00144 { "target": "EFM32GG_STK3700", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00145 { "target": "EFM32WG_STK3800", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00146 { "target": "EFM32PG_STK3401", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00147 ) 00148 }, 00149 00150 { 00151 "MAXIM": 00152 ( 00153 { "target": "MAXWSNENV", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00154 { "target": "MAX32600MBED", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00155 { "target": "MAX32620HSP", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00156 ) 00157 }, 00158 00159 { 00160 "ATMEL": 00161 ( 00162 { "target": "SAMR21G18A", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00163 { "target": "SAMD21J18A", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00164 { "target": "SAMD21G18A", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00165 { "target": "SAML21J18A", "toolchains": "GCC_ARM", "libs": ["dsp"] }, 00166 ) 00167 }, 00168 00169 00170 { 00171 "NUVOTON": 00172 ( 00173 { "target": "NUMAKER_PFM_NUC472", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00174 { "target": "NUMAKER_PFM_M453", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00175 { "target": "NUMAKER_PFM_M487", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] }, 00176 ) 00177 }, 00178 00179 00180 { 00181 "RENESAS": 00182 ( 00183 { "target": "RZ_A1H", "toolchains": "GCC_ARM" }, 00184 { "target": "GR_LYCHEE", "toolchains": "GCC_ARM" }, 00185 ) 00186 } 00187 ] 00188 00189 ################################################################################ 00190 # Configure example test building (linking against external mbed SDK libraries) 00191 00192 linking_list = [ 00193 { 00194 "NXP": ( 00195 {"target": "LPC1768", 00196 "toolchains": "GCC_ARM", 00197 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_15", "MBED_16", "MBED_17"], 00198 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00199 } 00200 }, 00201 {"target": "K64F", 00202 "toolchains": "GCC_ARM", 00203 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00204 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00205 } 00206 }, 00207 {"target": "K22F", 00208 "toolchains": "GCC_ARM", 00209 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00210 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00211 } 00212 }, 00213 {"target": "KL43Z", 00214 "toolchains": "GCC_ARM", 00215 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00216 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00217 } 00218 }, 00219 ) 00220 }, 00221 00222 { 00223 "STM": ( 00224 {"target": "NUCLEO_F446RE", 00225 "toolchains": "GCC_ARM", 00226 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00227 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00228 } 00229 }, 00230 {"target": "NUCLEO_F446ZE", 00231 "toolchains": "GCC_ARM", 00232 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00233 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00234 } 00235 }, 00236 {"target": "NUCLEO_F401RE", 00237 "toolchains": "GCC_ARM", 00238 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00239 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00240 } 00241 }, 00242 {"target": "NUCLEO_F411RE", 00243 "toolchains": "GCC_ARM", 00244 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00245 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00246 } 00247 }, 00248 {"target": "NUCLEO_F412ZG", 00249 "toolchains": "GCC_ARM", 00250 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00251 } 00252 }, 00253 {"target": "NUCLEO_F413ZH", 00254 "toolchains": "GCC_ARM", 00255 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00256 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00257 } 00258 }, 00259 {"target": "NUCLEO_F429ZI", 00260 "toolchains": "GCC_ARM", 00261 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00262 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00263 } 00264 }, 00265 {"target": "NUCLEO_F207ZG", 00266 "toolchains": "GCC_ARM", 00267 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00268 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00269 } 00270 }, 00271 {"target": "NUCLEO_F746ZG", 00272 "toolchains": "GCC_ARM", 00273 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00274 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00275 } 00276 }, 00277 {"target": "NUCLEO_F767ZI", 00278 "toolchains": "GCC_ARM", 00279 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00280 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00281 } 00282 }, 00283 {"target": "NUCLEO_L476RG", 00284 "toolchains": "GCC_ARM", 00285 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00286 } 00287 }, 00288 {"target": "DISCO_F429ZI", 00289 "toolchains": "GCC_ARM", 00290 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00291 } 00292 }, 00293 {"target": "DISCO_F407VG", 00294 "toolchains": "GCC_ARM", 00295 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00296 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00297 } 00298 }, 00299 {"target": "DISCO_F413ZH", 00300 "toolchains": "GCC_ARM", 00301 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00302 } 00303 }, 00304 {"target": "NUCLEO_F303ZE", 00305 "toolchains": "GCC_ARM", 00306 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00307 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00308 } 00309 }, 00310 {"target": "DISCO_L475VG_IOT01A", 00311 "toolchains": "GCC_ARM", 00312 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00313 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00314 } 00315 }, 00316 {"target": "DISCO_L476VG", 00317 "toolchains": "GCC_ARM", 00318 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00319 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00320 } 00321 }, 00322 {"target": "DISCO_L072CZ_LRWAN1", 00323 "toolchains": "GCC_ARM", 00324 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00325 } 00326 }, 00327 {"target": "MTB_MURATA_ABZ", 00328 "toolchains": "GCC_ARM", 00329 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00330 } 00331 }, 00332 ) 00333 }, 00334 { 00335 "NUVOTON": ( 00336 {"target": "NUMAKER_PFM_NUC472", 00337 "toolchains": "GCC_ARM", 00338 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00339 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00340 } 00341 }, 00342 {"target": "NUMAKER_PFM_M453", 00343 "toolchains": "GCC_ARM", 00344 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00345 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00346 } 00347 }, 00348 {"target": "NUMAKER_PFM_M487", 00349 "toolchains": "GCC_ARM", 00350 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00351 "usb" : ["USB_1", "USB_2" ,"USB_3"], 00352 } 00353 } 00354 ) 00355 }, 00356 { 00357 "RENESAS": 00358 ( 00359 { 00360 "target": "RZ_A1H", 00361 "toolchains": "GCC_ARM", 00362 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00363 } 00364 }, 00365 { 00366 "target": "GR_LYCHEE", 00367 "toolchains": "GCC_ARM", 00368 "tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"], 00369 } 00370 }, 00371 ) 00372 } 00373 ] 00374 00375 ################################################################################ 00376 00377 # Driver 00378 00379 def run_builds(dry_run, vendor): 00380 for vendor_list in build_list: 00381 if vendor in vendor_list: 00382 for build in vendor_list[vendor]: 00383 toolchain_list = build["toolchains"] 00384 if type(toolchain_list) != type([]): toolchain_list = [toolchain_list] 00385 for toolchain in toolchain_list: 00386 cmdline = ("%s tools/build.py -m %s -t %s -c --silent "% 00387 (sys.executable, build["target"], toolchain)) 00388 libs = build.get("libs", []) 00389 if libs: 00390 cmdline = cmdline + " ".join(["--" + l for l in libs]) 00391 print("Executing: %s" % cmdline) 00392 if not dry_run: 00393 if os.system(cmdline) != 0: 00394 sys.exit(1) 00395 00396 00397 def run_test_linking(dry_run, vendor): 00398 """ Function run make.py commands to build and link simple mbed SDK 00399 tests against few libraries to make sure there are no simple linking errors. 00400 """ 00401 for vendor_list in linking_list: 00402 if vendor in vendor_list: 00403 for link in vendor_list[vendor]: 00404 toolchain_list = link["toolchains"] 00405 if type(toolchain_list) != type([]): 00406 toolchain_list = [toolchain_list] 00407 for toolchain in toolchain_list: 00408 tests = link["tests"] 00409 # Call make.py for each test group for particular library 00410 for test_lib in tests: 00411 test_names = tests[test_lib] 00412 test_lib_switch = "--" + test_lib if test_lib else "" 00413 cmdline = ("%s tools/make.py -m %s -t %s -c --silent %s " 00414 "-n %s" % (sys.executable, link["target"], 00415 toolchain, test_lib_switch, 00416 ",".join(test_names))) 00417 print("Executing: %s" % cmdline) 00418 if not dry_run: 00419 if os.system(cmdline) != 0: 00420 sys.exit(1) 00421 00422 if __name__ == "__main__": 00423 parser = ArgumentParser() 00424 00425 parser.add_argument("--vendor", 00426 metavar="vendor", 00427 type=str.upper, 00428 help="Select a vendor to run travis tests" 00429 ) 00430 00431 options = parser.parse_args() 00432 00433 run_builds("-s" in sys.argv, options.vendor) 00434 run_test_linking("-s" in sys.argv, options.vendor)
Generated on Tue Jul 12 2022 13:24:33 by
 1.7.2
 1.7.2