ardupilot/Tools/AP_Periph/wscript

92 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',
'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']
)