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