ON Semiconductor / mbed-os

Dependents:   mbed-TFT-example-NCS36510 mbed-Accelerometer-example-NCS36510 mbed-Accelerometer-example-NCS36510

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers build_travis.py Source File

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 
00022 import os
00023 import sys
00024 
00025 ################################################################################
00026 # Configure builds here
00027 # "libs" can contain "dsp", "rtos", "eth", "usb_host", "usb", "ublox", "fat"
00028 
00029 build_list = (
00030     { "target": "LPC1768",           "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "eth", "usb_host", "usb", "ublox", "fat"] },
00031     { "target": "LPC2368",           "toolchains": "GCC_ARM", "libs": ["fat"]  },
00032     { "target": "LPC2460",           "toolchains": "GCC_ARM", "libs": ["rtos", "usb_host", "usb", "fat"]  },
00033     { "target": "LPC11U24",          "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00034     { "target": "OC_MBUINO",         "toolchains": "GCC_ARM", "libs": ["fat"]  },
00035 
00036     { "target": "LPC11U24_301",      "toolchains": "GCC_ARM", "libs": ["fat"] },
00037 
00038     { "target": "B96B_F446VE",     "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00039     { "target": "NUCLEO_L053R8",     "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00040     { "target": "NUCLEO_L152RE",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00041     { "target": "NUCLEO_F030R8",     "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00042     { "target": "NUCLEO_F031K6",     "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00043     { "target": "NUCLEO_F042K6",     "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00044     { "target": "NUCLEO_F070RB",     "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00045     { "target": "NUCLEO_F072RB",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00046     { "target": "NUCLEO_F091RC",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00047     { "target": "NUCLEO_F103RB",     "toolchains": "GCC_ARM", "libs": ["rtos", "fat"] },
00048     { "target": "NUCLEO_F207ZG",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat", "usb_host"] },
00049     { "target": "NUCLEO_F302R8",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00050     { "target": "NUCLEO_F303K8",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00051     { "target": "NUCLEO_F303RE",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00052     { "target": "NUCLEO_F303ZE",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat"] },
00053     { "target": "NUCLEO_F334R8",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00054     { "target": "NUCLEO_F401RE",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat", "usb_host"] },
00055     { "target": "NUCLEO_F410RB",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00056     { "target": "NUCLEO_F411RE",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat", "usb_host"] },
00057     { "target": "NUCLEO_F412ZG",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00058     { "target": "NUCLEO_L432KC",     "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00059     { "target": "NUCLEO_L476RG",     "toolchains": "GCC_ARM", "libs": ["dsp", "fat", "rtos", "usb_host"] },
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", "fat"] },
00063     { "target": "NUCLEO_F429ZI",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat", "usb_host"] },
00064     { "target": "NUCLEO_F446RE",     "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00065     { "target": "NUCLEO_F446ZE",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat", "usb_host"] },
00066     { "target": "NUCLEO_F746ZG",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat", "usb_host" ] },
00067     { "target": "NUCLEO_F767ZI",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat", "usb_host"] },
00068 
00069     { "target": "MOTE_L152RC",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00070 
00071     { "target": "ELMO_F411RE", "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00072 
00073     { "target": "MTS_MDOT_F405RG",   "toolchains": "GCC_ARM", "libs": ["dsp", "rtos"] },
00074     { "target": "MTS_MDOT_F411RE",   "toolchains": "GCC_ARM", "libs": ["dsp", "rtos"] },
00075     { "target": "MTS_DRAGONFLY_F411RE", "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00076     { "target": "ARCH_MAX",          "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00077 
00078     { "target": "DISCO_F051R8",      "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00079     { "target": "DISCO_F303VC",      "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00080     { "target": "DISCO_F334C8",      "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00081     { "target": "DISCO_F401VC",      "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00082     { "target": "DISCO_F407VG",      "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat"] },
00083     { "target": "DISCO_F429ZI",      "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat", "usb_host"] },
00084     { "target": "DISCO_F469NI",      "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00085     { "target": "DISCO_F746NG",      "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00086     { "target": "DISCO_F769NI",      "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00087 
00088     { "target": "LPC1114",           "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00089     { "target": "LPC11U35_401",      "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00090     { "target": "UBLOX_C027",        "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00091     { "target": "LPC11U35_501",      "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00092     { "target": "LPC11U68",          "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00093     { "target": "LPC11U37H_401",     "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00094 
00095     { "target": "KL05Z",             "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00096     { "target": "KL25Z",             "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat"] },
00097     { "target": "KL27Z",             "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat"] },
00098     { "target": "KL43Z",             "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat"] },
00099     { "target": "KL46Z",             "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat"] },
00100     { "target": "K20D50M",           "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00101     { "target": "TEENSY3_1",         "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00102     { "target": "K64F",              "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat"] },
00103     { "target": "K22F",              "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat"] },
00104     { "target": "LPC4088",           "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat"] },
00105     { "target": "ARCH_PRO",          "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00106     { "target": "LPC1549",           "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00107     { "target": "NRF51822",          "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00108     { "target": "DELTA_DFCM_NNN40",  "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00109     { "target": "NRF51_DK",          "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00110     { "target": "NRF51_MICROBIT",    "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
00111 
00112     { "target": "EFM32ZG_STK3200",   "toolchains": "GCC_ARM", "libs": ["dsp"] },
00113     { "target": "EFM32HG_STK3400",   "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb"] },
00114     { "target": "EFM32LG_STK3600",   "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb"] },
00115     { "target": "EFM32GG_STK3700",   "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb"] },
00116     { "target": "EFM32WG_STK3800",   "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb"] },
00117     { "target": "EFM32PG_STK3401",   "toolchains": "GCC_ARM", "libs": ["dsp", "rtos"] },
00118 
00119     { "target": "MAXWSNENV",    "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00120     { "target": "MAX32600MBED", "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00121     { "target": "MAX32620HSP",  "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00122 
00123     { "target": "RZ_A1H", "toolchains": "GCC_ARM", "libs": ["fat"] },
00124 
00125     { "target": "SAMR21G18A",  "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00126     { "target": "SAMD21J18A",  "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00127     { "target": "SAMD21G18A",  "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00128     { "target": "SAML21J18A",  "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
00129     { "target": "DISCO_L476VG",     "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat", "usb_host"] },
00130     
00131     { "target": "NUMAKER_PFM_NUC472",   "toolchains": "GCC_ARM",    "libs": ["dsp", "rtos", "usb", "fat"] },
00132     { "target": "NUMAKER_PFM_M453",     "toolchains": "GCC_ARM",    "libs": ["dsp", "rtos", "usb", "fat"] },
00133  )
00134 
00135 ################################################################################
00136 # Configure example test building (linking against external mbed SDK libraries liek fat or rtos)
00137 
00138 linking_list = [
00139     {"target": "LPC1768",
00140      "toolchains": "GCC_ARM",
00141      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_15", "MBED_16", "MBED_17"],
00142                "eth"  : ["NET_1", "NET_2", "NET_3", "NET_4"],
00143                "fat"  : ["MBED_A12", "MBED_19", "PERF_1", "PERF_2", "PERF_3"],
00144                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00145                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00146                }
00147      },
00148     {"target": "K64F",
00149      "toolchains": "GCC_ARM",
00150      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00151                "fat"  : ["MBED_A12", "PERF_1", "PERF_2", "PERF_3"],
00152                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00153                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00154                }
00155      },
00156     {"target": "K22F",
00157      "toolchains": "GCC_ARM",
00158      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00159                "fat"  : ["MBED_A12", "PERF_1", "PERF_2", "PERF_3"],
00160                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00161                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00162                }
00163      },
00164     {"target": "KL43Z",
00165      "toolchains": "GCC_ARM",
00166      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00167                "fat"  : ["MBED_A12", "PERF_1", "PERF_2", "PERF_3"],
00168                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00169                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00170                }
00171      },
00172     {"target": "NUCLEO_F446ZE",
00173      "toolchains": "GCC_ARM",
00174      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00175                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00176                "usb"  : ["USB_1", "USB_2" ,"USB_3", "USB_10", "USB_11"],
00177              }
00178     },
00179     {"target": "NUCLEO_F401RE",
00180      "toolchains": "GCC_ARM",
00181      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00182                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00183                "usb"  : ["USB_1", "USB_2" ,"USB_3", "USB_10", "USB_11"], 
00184              }
00185     },
00186     {"target": "NUCLEO_F411RE",
00187      "toolchains": "GCC_ARM",
00188      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00189                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00190                "usb"  : ["USB_1", "USB_2" ,"USB_3", "USB_10", "USB_11"],
00191              }
00192     },
00193     {"target": "NUCLEO_F412ZG",
00194      "toolchains": "GCC_ARM",
00195      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00196                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00197              }
00198     },
00199     {"target": "NUCLEO_F429ZI",
00200      "toolchains": "GCC_ARM",
00201      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00202                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00203                "usb"  : ["USB_1", "USB_2" ,"USB_3", "USB_10", "USB_11"],
00204              }
00205     },
00206     {"target": "NUCLEO_F207ZG",
00207      "toolchains": "GCC_ARM",
00208      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00209                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00210                "usb"  : ["USB_1", "USB_2" ,"USB_3", "USB_10", "USB_11"],
00211              }
00212     },
00213     {"target": "NUCLEO_F746ZG",
00214      "toolchains": "GCC_ARM",
00215      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00216                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00217                "usb"  : ["USB_1", "USB_2" ,"USB_3", "USB_10", "USB_11"],
00218              }
00219     },
00220     {"target": "NUCLEO_F767ZI",
00221      "toolchains": "GCC_ARM",
00222      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00223                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00224                "usb"  : ["USB_1", "USB_2" ,"USB_3", "USB_10", "USB_11"],
00225              }
00226     },
00227     {"target": "NUCLEO_L476RG",
00228      "toolchains": "GCC_ARM",
00229      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00230                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00231                "usb"  : [ "USB_10", "USB_11"],
00232              }
00233     },
00234     {"target": "DISCO_F429ZI",
00235      "toolchains": "GCC_ARM",
00236      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00237                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00238                "usb"  : [ "USB_10", "USB_11"],
00239              }
00240     },
00241     {"target": "DISCO_F407VG",
00242      "toolchains": "GCC_ARM",
00243      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00244                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00245                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00246              }
00247     },
00248     {"target": "NUCLEO_F303ZE",
00249      "toolchains": "GCC_ARM",
00250      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00251                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00252                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00253              }
00254     },
00255     {"target": "DISCO_L476VG",
00256      "toolchains": "GCC_ARM",
00257      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00258                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00259                "usb"  : ["USB_1", "USB_2" ,"USB_3", "USB_10", "USB_11"],
00260              }
00261     },
00262     {"target": "NUMAKER_PFM_NUC472",
00263      "toolchains": "GCC_ARM",
00264      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00265                "fat"  : ["MBED_A12", "MBED_19", "PERF_1", "PERF_2", "PERF_3"],
00266                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00267                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00268                }
00269      },
00270      {"target": "NUMAKER_PFM_M453",
00271      "toolchains": "GCC_ARM",
00272      "tests": {""     : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
00273                "fat"  : ["MBED_A12", "MBED_19", "PERF_1", "PERF_2", "PERF_3"],
00274                "rtos" : ["RTOS_1", "RTOS_2", "RTOS_3"],
00275                "usb"  : ["USB_1", "USB_2" ,"USB_3"],
00276                }
00277      }
00278 
00279     ]
00280 
00281 ################################################################################
00282 
00283 # Driver
00284 
00285 def run_builds(dry_run):
00286     for build in build_list:
00287         toolchain_list = build["toolchains"]
00288         if type(toolchain_list) != type([]): toolchain_list = [toolchain_list]
00289         for toolchain in toolchain_list:
00290             cmdline = "python tools/build.py -m %s -t %s -j 4 -c --silent "% (build["target"], toolchain)
00291             libs = build.get("libs", [])
00292             if libs:
00293                 cmdline = cmdline + " ".join(["--" + l for l in libs])
00294             print "Executing: " + cmdline
00295             if not dry_run:
00296                 if os.system(cmdline) != 0:
00297                     sys.exit(1)
00298 
00299 
00300 def run_test_linking(dry_run):
00301     """ Function run make.py commands to build and link simple mbed SDK
00302         tests against few libraries to make sure there are no simple linking errors.
00303     """
00304     for link in linking_list:
00305         toolchain_list = link["toolchains"]
00306         if type(toolchain_list) != type([]):
00307             toolchain_list = [toolchain_list]
00308         for toolchain in toolchain_list:
00309             tests = link["tests"]
00310             # Call make.py for each test group for particular library
00311             for test_lib in tests:
00312                 test_names = tests[test_lib]
00313                 test_lib_switch = "--" + test_lib if test_lib else ""
00314                 cmdline = "python tools/make.py -m %s -t %s -c --silent %s -n %s " % (link["target"], toolchain, test_lib_switch, ",".join(test_names))
00315                 print "Executing: " + cmdline
00316                 if not dry_run:
00317                     if os.system(cmdline) != 0:
00318                         sys.exit(1)
00319 
00320 def run_test_testsuite(dry_run):
00321     cmdline = "python tools/singletest.py --version"
00322     print "Executing: " + cmdline
00323     if not dry_run:
00324         if os.system(cmdline) != 0:
00325             sys.exit(1)
00326 
00327 if __name__ == "__main__":
00328     run_builds("-s" in sys.argv)
00329     run_test_linking("-s" in sys.argv)
00330     run_test_testsuite("-s" in sys.argv)