# encoding: utf-8 # flake8: noqa def build(bld): if not bld.env.BOOTLOADER: return if bld.env.EXT_FLASH_SIZE_MB: flashiface_lib = ['AP_HAL', 'AP_FlashIface', 'AP_HAL_Empty'] else: flashiface_lib = [] _build_dynamic_sources(bld) bld.ap_stlib( name= 'AP_Bootloader_libs', use=['dronecan'], dynamic_source='modules/DroneCAN/libcanard/dsdlc_generated/src/**.c', ap_vehicle='AP_Bootloader', ap_libraries= flashiface_lib + [ 'AP_Math', 'AP_CheckFirmware', 'AP_HAL', 'AP_Networking', 'AP_ROMFS', 'AP_Common', ]) # build external libcanard library bld.stlib(source='../../modules/DroneCAN/libcanard/canard.c', name='libcanard', use=['dronecan'], target='libcanard') bld.ap_program( use=['AP_Bootloader_libs', 'libcanard', 'dronecan'], program_groups='bootloader' ) def _build_dynamic_sources(bld): def write_version_header(tsk): bld = tsk.generator.bld return bld.write_version_header(tsk.outputs[0].abspath()) bld( name='ap_version', target='ap_version.h', vars=['AP_VERSION_ITEMS'], rule=write_version_header, ) bld.env.prepend_value('INCLUDES', [ bld.bldnode.abspath(), ])