From 8cf49d4e3e3fac41e82f09de8fc0578c3e681958 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Wed, 1 Jun 2016 17:11:44 +1000 Subject: [PATCH] Tools: create build_examples.py, a replacement for build_examples.sh --- Tools/autotest/pysim/util.py | 32 +++++++++++++++++++++++++------ Tools/scripts/build_examples.py | 34 +++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 6 deletions(-) create mode 100755 Tools/scripts/build_examples.py diff --git a/Tools/autotest/pysim/util.py b/Tools/autotest/pysim/util.py index 0bcb083f6f..13c092e7fb 100644 --- a/Tools/autotest/pysim/util.py +++ b/Tools/autotest/pysim/util.py @@ -64,25 +64,45 @@ def deltree(path): def relwaf(): return "./modules/waf/waf-light" -def build_SIL(build_target, j=None, debug=False): - '''build desktop SIL''' - - # first configure - cmd_configure = [relwaf(), "configure", "--board", 'sitl'] +def waf_configure(board, j=None, debug=False): + cmd_configure = [relwaf(), "configure", "--board", board] if debug: cmd_configure.append('--debug') if j is not None: cmd_configure.extend(['-j', str(j)]) run_cmd(cmd_configure, dir=topdir(), checkfail=True) - # then clean +def waf_clean(): run_cmd([relwaf(), "clean"], dir=topdir(), checkfail=True) +def build_SIL(build_target, j=None, debug=False, board='sitl'): + '''build desktop SIL''' + + # first configure + waf_configure(board, j=j, debug=debug) + + # then clean + waf_clean() + # then build cmd_make = [relwaf(), "build", "--target", build_target] run_cmd(cmd_make, dir=topdir(), checkfail=True, show=True) return True +def build_examples(board, j=None, debug=False, clean=False): + # first configure + waf_configure(board, j=j, debug=debug) + + # then clean + if clean: + waf_clean() + + # then build + cmd_make = [relwaf(), "examples"] + run_cmd(cmd_make, dir=topdir(), checkfail=True, show=True) + return True + + # list of pexpect children to close on exit close_list = [] diff --git a/Tools/scripts/build_examples.py b/Tools/scripts/build_examples.py new file mode 100755 index 0000000000..95b5dca83c --- /dev/null +++ b/Tools/scripts/build_examples.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python + +# useful script to test the build of all example code +# This helps when doing large merges +# Peter Barker, June 2016 +# based on build_examples.sh, Andrew Tridgell, November 2012 + +import os +import sys +import optparse + +sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), '../autotest/pysim')) + +import util + +class BuildExamples(): + def __init__(self, targets=[], clean=False): + print("init") + self.targets = targets + self.clean = clean + + def run(self): + for target in self.targets: + util.build_examples(target, clean=self.clean) + +if __name__ == '__main__': + + parser = optparse.OptionParser("build_examples.py") + parser.add_option("--target", type='string', default=['navio','px4-v2'], help='list of targets for which to build examples', action='append') + parser.add_option("--clean", action='store_true', default=False, help='clean build') + opts, args = parser.parse_args() + + buildexamples = BuildExamples(targets=opts.target, clean=opts.clean) + buildexamples.run()