You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.8 KiB
91 lines
2.8 KiB
#!/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', |
|
'AP_Stats', |
|
'AP_EFI', |
|
'AP_CheckFirmware', |
|
] |
|
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'] |
|
)
|
|
|