import os import sh from waflib import Logs def build(bld): pdc2png_env = bld.all_envs['32bit'].derive() output = bld.path.get_bld().parent.parent.make_node('pdc2png') sources = ["../../src/fw/applib/vendor/uPNG/upng.c", "../../src/fw/applib/vendor/tinflate/tinflate.c", "../../src/fw/applib/graphics/8_bit/bitblt_private.c", "../../src/fw/applib/graphics/gpath.c", "../../src/fw/applib/graphics/gbitmap.c", "../../src/fw/applib/graphics/gbitmap_png.c", "../../src/fw/applib/graphics/gcolor_definitions.c", "../../src/fw/applib/graphics/gtypes.c", "../../src/fw/applib/graphics/graphics.c", "../../src/fw/applib/graphics/graphics_line.c", "../../src/fw/applib/graphics/graphics_circle.c", "../../src/fw/applib/graphics/graphics_private.c", "../../src/fw/applib/graphics/graphics_private_raw.c", "../../src/fw/applib/graphics/bitblt.c", "../../src/fw/applib/graphics/8_bit/framebuffer.c", "../../src/fw/applib/graphics/framebuffer.c", "../../src/fw/applib/graphics/gdraw_command.c", "../../src/fw/applib/graphics/gdraw_command_list.c", "../../src/fw/applib/graphics/gdraw_command_image.c", "../../src/fw/applib/graphics/gdraw_command_frame.c", "../../src/fw/applib/graphics/gdraw_command_sequence.c"] sources = [bld.path.find_node(s) for s in sources] sources.extend(bld.path.ant_glob('src/*.c')) includes = ["../../tests/stubs", "../../tests/fw/graphics", "../../src/fw/applib/vendor/uPNG", "../../src/fw/applib/vendor/tinflate", "../../tests/overrides/default/", "../../src/include", "../../src/fw", "../../src/libutil/includes", "../../src/fw/util/time", "../../src/fw/vendor/FreeRTOS/Source/include", "../../src/fw/vendor/FreeRTOS/Source/portable/GCC/ARM_CM3_PEBBLE"] includes = [bld.path.find_node(i).abspath() for i in includes] # We are overriding the gcc toolchain include/time.h with our own pdc2png_env.CFLAGS.append('-D_TIME_H_') # just to check/force our version of pdc2png_env.CFLAGS.append('-I' + bld.path.abspath() + '/../src/fw/util/time') pdc2png_env.CFLAGS.append('-I' + bld.path.abspath() + '/src/include') # time_t is defined in sys/types in newlib, and time.h on recent Linux # so just force the defined type for testing time pdc2png_env.CFLAGS.append('-Dtime_t=__SYSCALL_SLONG_TYPE') pbi2png_script = bld.path.find_node('../pbi2png.py') pbi2png_copy = bld.path.get_bld().parent.parent.make_node('pbi2png.py') bld(rule="cp ${SRC} ${TGT}", source=pbi2png_script, target=pbi2png_copy) bld.program(source=sources, target=output, includes=includes, defines=['UNITTEST', 'SCREEN_COLOR_DEPTH_BITS=8', # TODO: PBL-21014 Support arbitrary display sizes 'DISP_COLS=144', 'DISP_ROWS=168', 'DISPLAY_FRAMEBUFFER_BYTES=%d' % (144 * 168), 'PBL_COLOR', 'PBL_RECT', 'PLATFORM_SNOWY=1', 'PBI2PNG_EXE="pbi2png.py"'], use=['libutil-32bit', 'libos_includes'], env=pdc2png_env) # vim:filetype=python