summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVijay Kumar Banerjee <vijaykumar9597@gmail.com>2019-08-29 20:45:44 +0530
committerVijay Kumar Banerjee <vijaykumar9597@gmail.com>2019-08-29 20:45:44 +0530
commitcef795056692291f6ae582ec7af5cabe5203f85b (patch)
treea96e478cbf89f36bc0777f41c9c4ee03b0132e20
parentAdd lvgl.py (diff)
downloadrtems-littlevgl-cef795056692291f6ae582ec7af5cabe5203f85b.tar.bz2
lvgl.py: Add waf builder for lvgl
-rw-r--r--lvgl.py48
-rw-r--r--wscript16
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)