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