#!/usr/bin/env python # encoding: utf-8 import fnmatch import sys try: import em except ImportError: print("you need to install empy with 'python -m pip install empy'") sys.exit(1) try: import pexpect except ImportError: print("you need to install pexpect with 'python -m pip install pexpect'") sys.exit(1) 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 if bld.env.AP_PERIPH_HEAVY: libraries = bld.ap_get_all_libraries() bld.env.DEFINES += ['HAL_BOARD_AP_PERIPH_HEAVY'] else: libraries = ['AP_Common', 'AP_HAL', 'AP_HAL_Empty', 'AP_Math', 'AP_BoardConfig', 'AP_BattMonitor', 'AP_CANManager', '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_Filesystem', 'AP_InertialSensor', 'AP_AccelCal', 'AP_Logger', 'AC_PID', 'AP_BLHeli', 'AP_ESC_Telem', ] bld.ap_stlib( name= 'AP_Periph_libs', ap_vehicle='AP_Periph', ap_libraries= libraries, exclude_src=[ 'libraries/AP_HAL_ChibiOS/Storage.cpp' ] ) # build external libcanard library bld.stlib(source=['../../modules/DroneCAN/libcanard/canard.c'] + bld.bldnode.ant_glob('modules/DroneCAN/libcanard/dsdlc_generated/src/**.c'), includes=[bld.env.SRCROOT + '/modules/DroneCAN/libcanard', bld.env.BUILDROOT + '/modules/DroneCAN/libcanard/dsdlc_generated/include'], target='libcanard') bld.ap_program( program_name='AP_Periph', use=['AP_Periph_libs', 'libcanard'], program_groups=['bin','AP_Periph'], includes=[bld.env.SRCROOT + '/modules/DroneCAN/libcanard', bld.env.BUILDROOT + '/modules/DroneCAN/libcanard/dsdlc_generated/include'] )