[PATCH rtems-littlevgl] Allow to pass custom lv_conf.h and lv_drv_conf.h.

Christian Mauderer christian.mauderer at embedded-brains.de
Thu Jul 9 15:43:01 UTC 2020


---
 lv_conf.h => default_lv_conf.h         |  0
 lv_drv_conf.h => default_lv_drv_conf.h |  0
 lvgl.py                                | 19 ++++++++++++++++---
 wscript                                | 13 +++++++++++++
 4 files changed, 29 insertions(+), 3 deletions(-)
 rename lv_conf.h => default_lv_conf.h (100%)
 rename lv_drv_conf.h => default_lv_drv_conf.h (100%)

diff --git a/lv_conf.h b/default_lv_conf.h
similarity index 100%
rename from lv_conf.h
rename to default_lv_conf.h
diff --git a/lv_drv_conf.h b/default_lv_drv_conf.h
similarity index 100%
rename from lv_drv_conf.h
rename to default_lv_drv_conf.h
diff --git a/lvgl.py b/lvgl.py
index c154a5e..6d55db7 100644
--- a/lvgl.py
+++ b/lvgl.py
@@ -73,6 +73,17 @@ def build(bld):
     includes.append('.')
     include_paths = []
 
+    def write_stuff(stuff):
+        def stuff_writer(task):
+            task.outputs[0].write(stuff)
+        return stuff_writer
+
+    lv_conf_h='lv_conf.h'
+    lv_drv_conf_h='lv_drv_conf.h'
+
+    bld(rule=write_stuff(bld.env.LV_CONF), target=lv_conf_h)
+    bld(rule=write_stuff(bld.env.LV_DRV_CONF), target=lv_drv_conf_h)
+
     for source in sources:
         source_dir = os.path.dirname(source)
         if source_dir not in include_paths:
@@ -80,7 +91,7 @@ def build(bld):
 
     bld.stlib(target = 'lvgl',
               features = 'c',
-              cflags = ['-O2', '-g'],
+              cflags = ['-O2', '-g', '-DLV_CONF_INCLUDE_SIMPLE'],
               includes = includes,
               source = sources)
 
@@ -96,6 +107,8 @@ def build(bld):
     for include_path in include_paths:
         files = os.listdir(include_path)
         include_headers = [os.path.join(include_path, x) for x in files if (x[-2:] == '.h')]
-        bld.install_files(os.path.join("${PREFIX}/" , arch_inc_path, include_path),
+        bld.install_files(os.path.join("${PREFIX}", arch_inc_path, include_path),
                           include_headers)
-    bld.install_files('${PREFIX}/' + arch_lib_path, ["liblvgl.a"])
+    bld.install_files(os.path.join('${PREFIX}', arch_lib_path), ["liblvgl.a"])
+    bld.install_files(os.path.join('${PREFIX}', arch_inc_path, include_path),
+        [lv_conf_h])
diff --git a/wscript b/wscript
index ae91daa..0e1a51d 100644
--- a/wscript
+++ b/wscript
@@ -49,9 +49,22 @@ def options(opt):
                    dest = "drivers",
                    help = "Build without lv_drivers." +
                           "Useful for building without libbsd.")
+    opt.add_option("--lv-conf",
+                   default = "default_lv_conf.h",
+                   dest = "lv_conf",
+                   help = "Use a custom lv_conf.h instead of the default one.")
+    opt.add_option("--lv-drv-conf",
+                   default = "default_lv_drv_conf.h",
+                   dest = "lv_drv_conf",
+                   help = "Use a custom lv_drv_conf.h instead of the default one.")
 
 def configure(conf):
     conf.env.DRIVERS = conf.options.drivers
+    with open(conf.options.lv_conf, "rb") as lv_conf:
+        conf.env.LV_CONF = lv_conf.read()
+    with open(conf.options.lv_drv_conf, "rb") as lv_drv_conf:
+        conf.env.LV_DRV_CONF = lv_drv_conf.read()
+    conf.env.BUILDINCLUDE = 'build-include'
     rtems.configure(conf)
 
 def build(bld):
-- 
2.26.2



More information about the devel mailing list