mirror of
https://github.com/google/pebble.git
synced 2025-05-04 17:01:40 -04:00
102 lines
3.6 KiB
Python
102 lines
3.6 KiB
Python
from tools.pebble_sdk_platform import pebble_platforms, maybe_import_internal
|
|
|
|
def configure(conf):
|
|
maybe_import_internal(conf.env)
|
|
|
|
platform = pebble_platforms[conf.env.PLATFORM_NAME]
|
|
define = 'MAX_FONT_GLYPH_SIZE={}'.format(platform['MAX_FONT_GLYPH_SIZE'])
|
|
conf.env.append_value('DEFINES', [define])
|
|
|
|
|
|
def _autogen_applib_sources(bld):
|
|
def applib_autogen(task):
|
|
import applib_malloc
|
|
# disable size checks for cutts
|
|
if bld.is_cutts():
|
|
disable_size_checks = True
|
|
else:
|
|
disable_size_checks = False
|
|
applib_malloc.generate_files(task.inputs[0].abspath(), task.outputs[0].abspath(),
|
|
task.outputs[1].abspath(), bld.env.MIN_SDK_VERSION,
|
|
disable_size_checks)
|
|
|
|
sources = ['applib_malloc.json']
|
|
sources.extend(bld.path.parent.parent.parent.ant_glob('tools/applib_malloc*'))
|
|
applib_malloc_h = bld.path.get_bld().make_node('applib_malloc.auto.h')
|
|
applib_malloc_c = bld.path.get_bld().make_node('applib_malloc.auto.c')
|
|
bld(rule=applib_autogen, source=sources, target=[applib_malloc_h, applib_malloc_c])
|
|
|
|
return [applib_malloc_c]
|
|
|
|
|
|
def _get_bit_depth_excludes(bld):
|
|
bit_depths = [1, 8]
|
|
if bld.is_snowy_compatible() or bld.is_cutts() or bld.is_robert():
|
|
depth = 8
|
|
else:
|
|
depth = 1
|
|
return ['**/{}_bit/**'.format(x) for x in bit_depths if x != depth]
|
|
|
|
|
|
def build(bld):
|
|
excludes = _get_bit_depth_excludes(bld)
|
|
excludes += ['vendor']
|
|
|
|
bld.recurse('vendor/tinflate')
|
|
bld.recurse('vendor/uPNG')
|
|
|
|
if bld.variant == 'prf':
|
|
excludes += ['ui/dialogs/actionable_dialog.c',
|
|
'ui/dialogs/bt_conn_dialog.c',
|
|
'ui/dialogs/confirmation_dialog.c',
|
|
'ui/dialogs/expandable_dialog.c',
|
|
'ui/option_menu_window.c',
|
|
'ui/progress_window.c',
|
|
'ui/selection_layer.c',
|
|
'ui/time_selection_window.c',
|
|
'ui/time_range_selection_window.c',
|
|
'voice/*']
|
|
|
|
if not bld.capability('HAS_JAVASCRIPT') or bld.variant == 'prf':
|
|
excludes += ['rockyjs/*']
|
|
|
|
if not bld.is_spalding():
|
|
excludes.append('ui/window_stack_animation_round*')
|
|
|
|
if not bld.capability('HAS_MICROPHONE'):
|
|
excludes.append('voice/voice_window.c')
|
|
|
|
if bld.capability('HAS_MAGNETOMETER'):
|
|
excludes.append('compass_service_stub.c')
|
|
else:
|
|
excludes.append('compass_service.c')
|
|
|
|
if bld.variant in ('applib', 'test_rocky_emx'):
|
|
sources = bld.path.ant_glob('graphics/**/*.c', excl=excludes)
|
|
sources.extend(bld.path.ant_glob('fonts/*.c', excl=excludes))
|
|
sources.extend(bld.path.ant_glob('rockyjs/**/*.c', excl=excludes))
|
|
sources.append('ui/layer.c')
|
|
sources.append('ui/window.c')
|
|
else:
|
|
sources = bld.path.ant_glob('**/*.c', excl=excludes)
|
|
sources.extend(_autogen_applib_sources(bld))
|
|
# extract strings for i18n
|
|
bld.gettext(source=sources, target='applib.pot')
|
|
|
|
bld(export_includes=['.'], name='applib_includes')
|
|
|
|
# Build the stlib
|
|
bld.stlib(source=sources,
|
|
target='applib',
|
|
use=['target_includes',
|
|
'libbtutil_includes',
|
|
'fw_includes',
|
|
'upng',
|
|
'jerry_port_includes',
|
|
'jerry_runtime_config',
|
|
'jerry_common_config',
|
|
'jerry_core',
|
|
'freertos_includes',
|
|
'root_includes'])
|
|
|
|
# vim:filetype=python
|