summaryrefslogtreecommitdiff
path: root/src/libs/lvgl/scripts/lv_conf_checker.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/lvgl/scripts/lv_conf_checker.py')
-rwxr-xr-xsrc/libs/lvgl/scripts/lv_conf_checker.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/libs/lvgl/scripts/lv_conf_checker.py b/src/libs/lvgl/scripts/lv_conf_checker.py
new file mode 100755
index 00000000..c2171ff8
--- /dev/null
+++ b/src/libs/lvgl/scripts/lv_conf_checker.py
@@ -0,0 +1,60 @@
+#!/usr/bin/env python3.6
+
+'''
+Generates a checker file for lv_conf.h from lv_conf_templ.h define all the not defined values
+'''
+
+
+import re
+
+fin = open("../lv_conf_template.h", "r")
+fout = open("../src/lv_conf_checker.h", "w")
+
+
+fout.write(
+'''/**
+ * GENERATED FILE, DO NOT EDIT IT!
+ * @file lv_conf_checker.h
+ * Make sure all the defines of lv_conf.h have a default value
+**/
+
+#ifndef LV_CONF_CHECKER_H
+#define LV_CONF_CHECKER_H
+'''
+)
+
+started = 0
+
+for i in fin.read().splitlines():
+ if not started:
+ if '#define LV_CONF_H' in i:
+ started = 1
+ continue
+ else:
+ continue
+
+ if '/*--END OF LV_CONF_H--*/' in i: break
+
+ r = re.search(r'^ *# *define ([^\s]+).*$', i)
+
+ if r:
+ line = re.sub('\(.*?\)', '', r[1], 1) #remove parentheses from macros
+ fout.write(
+ f'#ifndef {line}\n'
+ f'{i}\n'
+ '#endif\n'
+ )
+ elif re.search('^ *typedef .*;.*$', i):
+ continue #ignore typedefs to avoide redeclaration
+ else:
+ fout.write(f'{i}\n')
+
+
+fout.write(
+'''
+#endif /*LV_CONF_CHECKER_H*/
+'''
+)
+
+fin.close()
+fout.close()