mirror of https://github.com/ArduPilot/ardupilot
waf: reorganize recursion
That makes the code cleaner and better readable. Futhermore, it's easier to add a pattern for recursion. Additionally, this commit remove Tools from the exclusion list as that is not necessary.
This commit is contained in:
parent
9157f634eb
commit
1d92a54429
64
wscript
64
wscript
|
@ -151,38 +151,48 @@ def build(bld):
|
||||||
libraries=bld.ap_get_all_libraries(),
|
libraries=bld.ap_get_all_libraries(),
|
||||||
use='mavlink',
|
use='mavlink',
|
||||||
)
|
)
|
||||||
# TODO: Currently each vehicle also generate its own copy of the
|
|
||||||
# libraries. Fix this, or at least reduce the amount of
|
common_dirs_patterns = [
|
||||||
# vehicle-dependent libraries.
|
# TODO: Currently each vehicle also generate its own copy of the
|
||||||
vehicles = collect_dirs_to_recurse(bld, '*')
|
# libraries. Fix this, or at least reduce the amount of
|
||||||
|
# vehicle-dependent libraries.
|
||||||
|
'*',
|
||||||
|
'Tools/*',
|
||||||
|
'libraries/*/examples/*',
|
||||||
|
'**/tests',
|
||||||
|
'**/benchmarks',
|
||||||
|
]
|
||||||
|
|
||||||
|
common_dirs_excl = [
|
||||||
|
'modules',
|
||||||
|
'libraries/AP_HAL_*',
|
||||||
|
'libraries/SITL',
|
||||||
|
]
|
||||||
|
|
||||||
|
hal_dirs_patterns = [
|
||||||
|
'libraries/%s/**/tests',
|
||||||
|
'libraries/%s/**/benchmarks',
|
||||||
|
'libraries/%s/examples/*',
|
||||||
|
]
|
||||||
|
|
||||||
|
dirs_to_recurse = collect_dirs_to_recurse(
|
||||||
|
bld,
|
||||||
|
common_dirs_patterns,
|
||||||
|
excl=common_dirs_excl,
|
||||||
|
)
|
||||||
|
|
||||||
|
for p in hal_dirs_patterns:
|
||||||
|
dirs_to_recurse += collect_dirs_to_recurse(
|
||||||
|
bld,
|
||||||
|
[p % l for l in bld.env.AP_LIBRARIES],
|
||||||
|
)
|
||||||
|
|
||||||
# NOTE: we need to sort to ensure the repeated sources get the
|
# NOTE: we need to sort to ensure the repeated sources get the
|
||||||
# same index, and random ordering of the filesystem doesn't cause
|
# same index, and random ordering of the filesystem doesn't cause
|
||||||
# recompilation.
|
# recompilation.
|
||||||
vehicles.sort()
|
dirs_to_recurse.sort()
|
||||||
|
|
||||||
tools = collect_dirs_to_recurse(bld, 'Tools/*')
|
for d in dirs_to_recurse:
|
||||||
examples = collect_dirs_to_recurse(bld,
|
|
||||||
'libraries/*/examples/*',
|
|
||||||
excl='libraries/AP_HAL_* libraries/SITL')
|
|
||||||
|
|
||||||
tests = collect_dirs_to_recurse(bld,
|
|
||||||
'**/tests',
|
|
||||||
excl='modules Tools libraries/AP_HAL_* libraries/SITL')
|
|
||||||
board_tests = ['libraries/%s/**/tests' % l for l in bld.env.AP_LIBRARIES]
|
|
||||||
tests.extend(collect_dirs_to_recurse(bld, board_tests))
|
|
||||||
|
|
||||||
benchmarks = collect_dirs_to_recurse(bld,
|
|
||||||
'**/benchmarks',
|
|
||||||
excl='modules Tools libraries/AP_HAL_* libraries/SITL')
|
|
||||||
board_benchmarks = ['libraries/%s/**/benchmarks' % l for l in bld.env.AP_LIBRARIES]
|
|
||||||
benchmarks.extend(collect_dirs_to_recurse(bld, board_benchmarks))
|
|
||||||
|
|
||||||
hal_examples = []
|
|
||||||
for l in bld.env.AP_LIBRARIES:
|
|
||||||
hal_examples.extend(collect_dirs_to_recurse(bld, 'libraries/' + l + '/examples/*'))
|
|
||||||
|
|
||||||
for d in vehicles + tools + examples + hal_examples + tests + benchmarks:
|
|
||||||
bld.recurse(d)
|
bld.recurse(d)
|
||||||
|
|
||||||
if bld.cmd == 'check':
|
if bld.cmd == 'check':
|
||||||
|
|
Loading…
Reference in New Issue