From cef795056692291f6ae582ec7af5cabe5203f85b Mon Sep 17 00:00:00 2001 From: Vijay Kumar Banerjee Date: Thu, 29 Aug 2019 20:45:44 +0530 Subject: lvgl.py: Add waf builder for lvgl --- lvgl.py | 48 +++++++++++++++++++++++++++++++++++++++++++----- wscript | 16 +++++----------- 2 files changed, 48 insertions(+), 16 deletions(-) diff --git a/lvgl.py b/lvgl.py index 172e42f..2024eaa 100644 --- a/lvgl.py +++ b/lvgl.py @@ -27,7 +27,8 @@ import shlex import os - +import re +import rtems_waf.rtems as rtems def source_list(): mk_files = ['lvgl/src/lv_core/lv_core.mk', @@ -36,7 +37,8 @@ def source_list(): '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',] + 'lvgl/src/lv_draw/lv_draw.mk', + 'lv_drivers/display/display.mk'] sources = [] cflags = [] @@ -49,9 +51,45 @@ def source_list(): 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)) + sources.append(source_path) if token == 'CFLAGS': - cflag = next(lexer).replace('$(LVGL_DIR)', str(os.getcwd())) - cflags.append(cflag) + cflag = next(lexer) + if(cflag[14] == '/'): + cflags.append(cflag[15:-1]) + else: + cflags.append(cflag[14:-1]) + return (sources, cflags) + +def build(bld): + + sources, includes = source_list() + includes.append('.') + objects = [] + + for source in sources: + objects.append(source[:-1] + 'o') + + bld.objects(target = objects, + features = 'c', + cflags = '-O2', + includes = includes, + source = source) + + bld.stlib(target = 'lvgl', + features = 'c', + includes = includes, + source = sources, + use = objects) + + arch_lib_path = rtems.arch_bsp_lib_path(bld.env.RTEMS_VERSION, + bld.env.RTEMS_ARCH_BSP) + arch_inc_path = rtems.arch_bsp_include_path(bld.env.RTEMS_VERSION, + bld.env.RTEMS_ARCH_BSP) + + driver_path = 'lv_drivers/display' + all_files = os.listdir(driver_path) + include_headers = [os.path.join(driver_path, x) for x in all_files if (x[-2:] == '.h')] + bld.install_files('${PREFIX}/' + arch_lib_path, ["liblvgl.a"]) + bld.install_files("${PREFIX}/" + arch_inc_path, include_headers) diff --git a/wscript b/wscript index 23ae421..fb5d932 100644 --- a/wscript +++ b/wscript @@ -25,27 +25,20 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# TODO: This file is a work in progress and isn't supposed to run yet. -# - from __future__ import print_function +import lvgl +import runpy +import sys + rtems_version = "5" try: import rtems_waf.rtems as rtems except: print("error: no rtems_waf git submodule; see README.waf") - import sys sys.exit(1) -import os.path -import runpy -import sys - -import waflib.Options - def init(ctx): rtems.init(ctx, version = rtems_version, long_commands = True) @@ -57,3 +50,4 @@ def configure(conf): def build(bld): rtems.build(bld) + lvgl.build(bld) -- cgit v1.2.3