From 399b4fa48f57f760376854c4c1b36cd07accb92a Mon Sep 17 00:00:00 2001 From: Vijay Kumar Banerjee Date: Thu, 29 Aug 2019 02:46:03 +0530 Subject: Add lvgl.py +Added support to parse source and cflags from .mk file --- .gitignore | 1 + lvgl.py | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ wscript | 39 +++++---------------------------------- 3 files changed, 63 insertions(+), 34 deletions(-) create mode 100644 lvgl.py diff --git a/.gitignore b/.gitignore index 5f0edfd..2d8a88e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .waf* .lock-waf* build +*.pyc diff --git a/lvgl.py b/lvgl.py new file mode 100644 index 0000000..172e42f --- /dev/null +++ b/lvgl.py @@ -0,0 +1,57 @@ +# +# RTEMS Project (https://www.rtems.org/) +# +# Copyright (c) 2019 Vijay Kumar Banerjee . +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import shlex +import os + + +def source_list(): + mk_files = ['lvgl/src/lv_core/lv_core.mk', + 'lvgl/src/lv_hal/lv_hal.mk', + 'lvgl/src/lv_objx/lv_objx.mk', + 'lvgl/src/lv_font/lv_font.mk', + 'lvgl/src/lv_misc/lv_misc.mk', + 'lvgl/src/lv_themes/lv_themes.mk', + 'lvgl/src/lv_draw/lv_draw.mk',] + sources = [] + cflags = [] + + for filename in mk_files: + lexer = shlex.shlex(file(filename, 'rt').read()) + lexer.whitespace += '+=' + lexer.whitespace_split = True + + for token in lexer: + if token == 'CSRCS': + source_path = os.path.dirname(filename) + source_path = os.path.join(source_path, next(lexer)) + sources.append(os.path.abspath(source_path)) + + if token == 'CFLAGS': + cflag = next(lexer).replace('$(LVGL_DIR)', str(os.getcwd())) + cflags.append(cflag) + return (sources, cflags) diff --git a/wscript b/wscript index 0f9ce45..23ae421 100644 --- a/wscript +++ b/wscript @@ -1,7 +1,8 @@ # # RTEMS Project (https://www.rtems.org/) # -# Copyright (c) 2019 Vijay Kumar Banerjee. All rights reserved. +# Copyright (c) 2019 Vijay Kumar Banerjee . +# All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions @@ -42,47 +43,17 @@ except: import os.path import runpy import sys -try: - import configparser -except ImportError: - import ConfigParser as configparser -import waflib.Options - -builders = {} - -def bsp_init(ctx, env, contexts): - # This function generates the builders and adds build-xxx, clean-xxx and - # install-xxx targets for them. - # Transform the commands to per build variant commands - commands = [] - for cmd in waflib.Options.commands: - if cmd.startswith(('build', 'clean', 'install')): - for builder in builders: - commands += [cmd + '-' + builder] - else: - commands += [cmd] - waflib.Options.commands = commands +import waflib.Options def init(ctx): - rtems.init(ctx, version = rtems_version, long_commands = True, - bsp_init = bsp_init) + rtems.init(ctx, version = rtems_version, long_commands = True) def options(opt): rtems.options(opt) - opt.add_option("--enable-warnings", - action = "store_true", - default = False, - dest = "warnings", - help = "Enable all warnings. The default is quiet builds.") - -def bsp_configure(conf, arch_bsp): - env = conf.env.derive() def configure(conf): - conf.env.WARNINGS = conf.options.warnings - - rtems.configure(conf, bsp_configure) + rtems.configure(conf) def build(bld): rtems.build(bld) -- cgit v1.2.3