pebble/src/fw/services/wscript

94 lines
3.3 KiB
Python

def configure(conf):
pass
def build(bld):
# Generate Pebble Protocol endpoints table:
bld.recurse('common/comm_session')
def _build_services(bld, sources):
bld.gettext(source=sources, target='services.pot')
bld.stlib(source=sources,
target='fw_services',
use=['fw_includes',
'freertos_includes',
'bt_driver',
'root_includes'])
def _build_normal_recovery_services(bld):
def _get_excludes(bld):
excludes = []
# Platform based excludes
if bld.is_tintin():
excludes.append('normal/activity/**')
excludes.append('normal/weather/**')
excludes.append('normal/voice/**')
excludes.append('normal/accessory/**')
excludes.append('prf/accessory/**')
excludes.append('common/compositor/default/**')
excludes.append('normal/vibes/vibe_client.c')
excludes.append('normal/vibes/vibe_score.c')
excludes.append('normal/vibes/vibe_score_info.c')
else:
excludes.append('common/legacy/*registry*.c')
if bld.is_silk():
excludes.append('common/compositor/default/compositor_modal_transitions.*')
else:
excludes.append('common/compositor/legacy/compositor_modal_slide_transitions.*')
# Capability based excludes
if bld.capability('HAS_SPRF_V3'):
excludes.append('common/shared_prf_storage/v2_sprf/**')
else:
excludes.append('common/shared_prf_storage/v3_sprf/**')
if not bld.capability('HAS_BUILTIN_HRM'):
excludes.append('common/hrm/**')
excludes.append('normal/bluetooth/ble_hrm.c')
if not bld.capability('HAS_MAGNETOMETER'):
excludes.append('common/ecompass.c')
return excludes
excludes = _get_excludes(bld)
# get common services
sources = []
sources.extend(bld.path.ant_glob('common/**/*.c', excl=excludes))
if bld.variant == 'prf':
# get recovery services
sources.extend(bld.path.ant_glob('prf/**/*.c', excl=excludes))
else:
# get normal services
sources.extend(bld.path.ant_glob('normal/**/*.c', excl=excludes))
if bld.env.QEMU:
# get qemu services
sources.extend(bld.path.ant_glob('qemu/**/*.c', excl=excludes))
sources.extend(bld.path.ant_glob('*.c', excl=excludes))
# This could really be based on what accel driver is in use
if bld.is_tintin():
accel_manager_to_remove = 'common/accel_manager.c'
else:
accel_manager_to_remove = 'legacy/accel_manager.c'
sources = [x for x in sources if not x.abspath().endswith(accel_manager_to_remove)]
_build_services(bld, sources)
if bld.env.VOICE_CODEC_TESTS:
voice_sample_target = bld.path.get_bld().make_node('normal/voice/voice_test_sample.auto.h')
bld(features='binary_header',
source='normal/voice/sample.pcm',
target=voice_sample_target,
array_name='s_voice_test_sample')
_build_normal_recovery_services(bld)
# vim:filetype=python