mirror of https://github.com/ArduPilot/ardupilot
91 lines
2.8 KiB
Python
91 lines
2.8 KiB
Python
#!/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',
|
|
]
|
|
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']
|
|
)
|