#!/usr/bin/env python # encoding: utf-8 import fnmatch def build(bld): targets = bld.ap_periph_boards() valid_target = False for t in targets: if fnmatch.fnmatch(bld.env.BOARD, t): valid_target = True if not valid_target: return bld.ap_stlib( name= 'AP_Periph_libs', ap_vehicle='AP_Periph', ap_libraries= [ 'AP_Common', 'AP_HAL', 'AP_HAL_Empty', 'AP_Math', 'AP_BoardConfig', 'AP_BattMonitor', 'AP_Param', 'StorageManager', 'AP_FlashStorage', 'AP_RAMTRON', 'AP_GPS', 'AP_SerialManager', 'AP_RTC', 'AP_Compass', 'AP_Baro', 'Filter', 'AP_InternalError', 'AP_Airspeed', 'AP_RangeFinder', 'AP_ROMFS', 'AP_MSP', 'SRV_Channel', 'AP_Notify', 'AP_SerialLED', 'AP_Logger', 'AP_Filesystem', ], exclude_src=[ 'libraries/AP_HAL_ChibiOS/Storage.cpp' ] ) # build external libcanard library bld.stlib(source='../../modules/libcanard/canard.c', target='libcanard') bld.ap_program( program_name='AP_Periph', use=['AP_Periph_libs', 'libcanard'], program_groups=['bin','AP_Periph'], includes=[bld.env.SRCROOT + '/modules/libcanard', bld.env.BUILDROOT + '/modules/libcanard/dsdlc_generated'] ) bld( # build libcanard headers rule="python3 ${SRCROOT}/modules/libcanard/dsdl_compiler/libcanard_dsdlc --header_only --outdir ${BUILDROOT}/modules/libcanard/dsdlc_generated ${SRCROOT}/modules/uavcan/dsdl/uavcan ${SRCROOT}/libraries/AP_UAVCAN/dsdl/ardupilot ${SRCROOT}/libraries/AP_UAVCAN/dsdl/com", group='dynamic_sources', )