From b11b20b0ac5c0adfbd1397cf42c322c873a736a8 Mon Sep 17 00:00:00 2001 From: Jean-François Milants Date: Tue, 23 Feb 2021 21:21:29 +0100 Subject: Remove LVGL folder (it's now a submodule) --- src/libs/lvgl/scripts/built_in_font/DejaVuSans.ttf | Bin 0 -> 756072 bytes .../scripts/built_in_font/Montserrat-Medium.ttf | Bin 0 -> 243180 bytes .../lvgl/scripts/built_in_font/Roboto-Regular.woff | Bin 61736 -> 0 bytes src/libs/lvgl/scripts/built_in_font/SimSun.woff | Bin 0 -> 4801180 bytes .../scripts/built_in_font/built_in_font_gen.py | 56 ++++--- .../lvgl/scripts/built_in_font/generate_all.py | 103 ++++++++++++ src/libs/lvgl/scripts/clang-formatter.sh | 13 -- src/libs/lvgl/scripts/code-format.cfg | 49 ++++++ src/libs/lvgl/scripts/code-format.sh | 1 + src/libs/lvgl/scripts/cppcheck_run.sh | 3 +- src/libs/lvgl/scripts/infer_run.sh | 9 ++ src/libs/lvgl/scripts/lv_conf_checker.py | 111 +++++++++++-- src/libs/lvgl/scripts/release/com.py | 110 +++++++++++++ src/libs/lvgl/scripts/release/dev.py | 72 +++++++++ src/libs/lvgl/scripts/release/main.py | 65 ++++++++ src/libs/lvgl/scripts/release/proj.py | 62 ++++++++ src/libs/lvgl/scripts/release/release.py | 173 +++++++++++++++++++++ 17 files changed, 777 insertions(+), 50 deletions(-) create mode 100644 src/libs/lvgl/scripts/built_in_font/DejaVuSans.ttf create mode 100644 src/libs/lvgl/scripts/built_in_font/Montserrat-Medium.ttf delete mode 100644 src/libs/lvgl/scripts/built_in_font/Roboto-Regular.woff create mode 100644 src/libs/lvgl/scripts/built_in_font/SimSun.woff mode change 100644 => 100755 src/libs/lvgl/scripts/built_in_font/built_in_font_gen.py create mode 100755 src/libs/lvgl/scripts/built_in_font/generate_all.py delete mode 100755 src/libs/lvgl/scripts/clang-formatter.sh create mode 100644 src/libs/lvgl/scripts/code-format.cfg create mode 100755 src/libs/lvgl/scripts/code-format.sh create mode 100755 src/libs/lvgl/scripts/infer_run.sh create mode 100755 src/libs/lvgl/scripts/release/com.py create mode 100755 src/libs/lvgl/scripts/release/dev.py create mode 100755 src/libs/lvgl/scripts/release/main.py create mode 100755 src/libs/lvgl/scripts/release/proj.py create mode 100755 src/libs/lvgl/scripts/release/release.py (limited to 'src/libs/lvgl/scripts') diff --git a/src/libs/lvgl/scripts/built_in_font/DejaVuSans.ttf b/src/libs/lvgl/scripts/built_in_font/DejaVuSans.ttf new file mode 100644 index 00000000..52672188 Binary files /dev/null and b/src/libs/lvgl/scripts/built_in_font/DejaVuSans.ttf differ diff --git a/src/libs/lvgl/scripts/built_in_font/Montserrat-Medium.ttf b/src/libs/lvgl/scripts/built_in_font/Montserrat-Medium.ttf new file mode 100644 index 00000000..6e079f69 Binary files /dev/null and b/src/libs/lvgl/scripts/built_in_font/Montserrat-Medium.ttf differ diff --git a/src/libs/lvgl/scripts/built_in_font/Roboto-Regular.woff b/src/libs/lvgl/scripts/built_in_font/Roboto-Regular.woff deleted file mode 100644 index f823258a..00000000 Binary files a/src/libs/lvgl/scripts/built_in_font/Roboto-Regular.woff and /dev/null differ diff --git a/src/libs/lvgl/scripts/built_in_font/SimSun.woff b/src/libs/lvgl/scripts/built_in_font/SimSun.woff new file mode 100644 index 00000000..8d081746 Binary files /dev/null and b/src/libs/lvgl/scripts/built_in_font/SimSun.woff differ diff --git a/src/libs/lvgl/scripts/built_in_font/built_in_font_gen.py b/src/libs/lvgl/scripts/built_in_font/built_in_font_gen.py old mode 100644 new mode 100755 index db8e88c1..1a052646 --- a/src/libs/lvgl/scripts/built_in_font/built_in_font_gen.py +++ b/src/libs/lvgl/scripts/built_in_font/built_in_font_gen.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python3.6 + import argparse from argparse import RawTextHelpFormatter import os @@ -5,33 +7,40 @@ import sys parser = argparse.ArgumentParser(description="""Create fonts for LittelvGL including the built-in symbols. lv_font_conv needs to be installed. See https://github.com/littlevgl/lv_font_conv Example: python built_in_font_gen.py --size 16 -o lv_font_roboto_16.c --bpp 4 -r 0x20-0x7F""", formatter_class=RawTextHelpFormatter) -parser.add_argument('-s', '--size', - type=int, - metavar = 'px', - nargs='?', +parser.add_argument('-s', '--size', + type=int, + metavar = 'px', + nargs='?', help='Size of the font in px') -parser.add_argument('--bpp', - type=int, - metavar = '1,2,4', - nargs='?', +parser.add_argument('--bpp', + type=int, + metavar = '1,2,4', + nargs='?', help='Bit per pixel') -parser.add_argument('-r', '--range', - nargs='+', - metavar = 'start-end', - default='0x20-0x7F', +parser.add_argument('-r', '--range', + nargs='+', + metavar = 'start-end', + default=['0x20-0x7F,0xB0,0x2022'], help='Ranges and/or characters to include. Default is 0x20-7F (ASCII). E.g. -r 0x20-0x7F, 0x200, 324') -parser.add_argument('--font', - metavar = 'file', - nargs='?', - default='Roboto-Regular.woff', +parser.add_argument('--symbols', + nargs='+', + metavar = 'sym', + default=[''], + help=u'Symbols to include. E.g. -s ÁÉŐ'.encode('utf-8')) +parser.add_argument('--font', + metavar = 'file', + nargs='?', + default='Montserrat-Medium.ttf', help='A TTF or WOFF file') -parser.add_argument('-o', '--output', - nargs='?', - metavar='file', +parser.add_argument('-o', '--output', + nargs='?', + metavar='file', help='Output file name. E.g. my_font_20.c') parser.add_argument('--compressed', action='store_true', help='Compress the bitmaps') - +parser.add_argument('--subpx', action='store_true', + help='3 times wider letters for sub pixel rendering') + args = parser.parse_args() if args.compressed == False: @@ -39,9 +48,12 @@ if args.compressed == False: else: compr = "" +if len(args.symbols[0]) != 0: + args.symbols[0] = "--symbols " + args.symbols[0] + #Built in symbols syms = "61441,61448,61451,61452,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650" -#Run the command -cmd = "lv_font_conv {} --bpp {} --size {} --font Roboto-Regular.woff -r {} --font FontAwesome5-Solid+Brands+Regular.woff -r {} --format lvgl -o {} --force-fast-kern-format".format(compr, args.bpp, args.size, args.range[0], syms, args.output) +#Run the command (Add degree and bbullet symbol) +cmd = "lv_font_conv {} --bpp {} --size {} --font {} -r {} {} --font FontAwesome5-Solid+Brands+Regular.woff -r {} --format lvgl -o {} --force-fast-kern-format".format(compr, args.bpp, args.size, args.font, args.range[0], args.symbols[0], syms, args.output) os.system(cmd) diff --git a/src/libs/lvgl/scripts/built_in_font/generate_all.py b/src/libs/lvgl/scripts/built_in_font/generate_all.py new file mode 100755 index 00000000..dab551f6 --- /dev/null +++ b/src/libs/lvgl/scripts/built_in_font/generate_all.py @@ -0,0 +1,103 @@ +#!/usr/bin/env python3.6 + +import os + +print("Generating 8 px") +os.system("./built_in_font_gen.py --size 8 -o lv_font_montserrat_8.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_8.c') + +print("\nGenerating 10 px") +os.system("./built_in_font_gen.py --size 10 -o lv_font_montserrat_10.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_10.c') + +print("\nGenerating 12 px") +os.system("./built_in_font_gen.py --size 12 -o lv_font_montserrat_12.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_12.c') + +print("\nGenerating 14 px") +os.system("./built_in_font_gen.py --size 14 -o lv_font_montserrat_14.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_14.c') + +print("\nGenerating 16 px") +os.system("./built_in_font_gen.py --size 16 -o lv_font_montserrat_16.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_16.c') + +print("\nGenerating 18 px") +os.system("./built_in_font_gen.py --size 18 -o lv_font_montserrat_18.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_18.c') + +print("\nGenerating 20 px") +os.system("./built_in_font_gen.py --size 20 -o lv_font_montserrat_20.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_20.c') + +print("\nGenerating 22 px") +os.system("./built_in_font_gen.py --size 22 -o lv_font_montserrat_22.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_22.c') + +print("\nGenerating 24 px") +os.system("./built_in_font_gen.py --size 24 -o lv_font_montserrat_24.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_24.c') + +print("\nGenerating 26 px") +os.system("./built_in_font_gen.py --size 26 -o lv_font_montserrat_26.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_26.c') + +print("\nGenerating 28 px") +os.system("./built_in_font_gen.py --size 28 -o lv_font_montserrat_28.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_28.c') + +print("\nGenerating 30 px") +os.system("./built_in_font_gen.py --size 30 -o lv_font_montserrat_30.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_30.c') + +print("\nGenerating 32 px") +os.system("./built_in_font_gen.py --size 32 -o lv_font_montserrat_32.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_32.c') + +print("\nGenerating 34 px") +os.system("./built_in_font_gen.py --size 34 -o lv_font_montserrat_34.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_34.c') + +print("\nGenerating 36 px") +os.system("./built_in_font_gen.py --size 36 -o lv_font_montserrat_36.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_36.c') + +print("\nGenerating 38 px") +os.system("./built_in_font_gen.py --size 38 -o lv_font_montserrat_38.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_38.c') + +print("\nGenerating 40 px") +os.system("./built_in_font_gen.py --size 40 -o lv_font_montserrat_40.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_40.c') + +print("\nGenerating 42 px") +os.system("./built_in_font_gen.py --size 42 -o lv_font_montserrat_42.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_42.c') + +print("\nGenerating 44 px") +os.system("./built_in_font_gen.py --size 44 -o lv_font_montserrat_44.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_44.c') + +print("\nGenerating 46 px") +os.system("./built_in_font_gen.py --size 46 -o lv_font_montserrat_46.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_46.c') + +print("\nGenerating 48 px") +os.system("./built_in_font_gen.py --size 48 -o lv_font_montserrat_48.c --bpp 4") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_48.c') + +print("\nGenerating 12 px subpx") +os.system("./built_in_font_gen.py --size 12 -o lv_font_montserrat_12_subpx.c --bpp 4 --subpx") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_12_subpx.c') + +print("\nGenerating 28 px compressed") +os.system("./built_in_font_gen.py --size 28 -o lv_font_montserrat_28_compressed.c --bpp 4 --compressed") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_montserrat_28_compressed.c') + +print("\nGenerating 16 px CJK") +os.system(u"./built_in_font_gen.py --size 16 -o lv_font_simsun_16_cjk.c --bpp 4 --font SimSun.woff -r 0x20-0x7f --symbols 一在有個我不這了他也就人都說而我們你了要會對及和與以很種的大能著她那上但年還可以最自己為來所他們兩各可為或好等又將因為於由從更被才已者每次把三什麼問題其讓此做再所以只與則台灣卻並位想去呢學生表示到公司將如果社會看小天因此新但是它中使工作全覺得使用這些裡並由於時候知道這樣一認為時間事過向可能中國美國到和幾系統政府大家國家許多生活跟已經大學研究因本二活動該世界應四希望方式內項啊下環境一些必須文化高孩子沒有不能如開始元不同仍網路日本用中心來對雖然重要地方進行關係市場太老師提供學校應該指出經濟其他家發展教育成為多非常便方面很多吃然後未發現電腦一樣而且心不過無法企業正服務較不會臺灣曾嗎空間看到五如何國內們無對於以及之後可是當人員比先產品資訊資料比較先生地除了大陸需要像在給歲請月些名另若亦地區技術至特別其實國際不要發生參加一定其中問台北包括講造成看像常即喜歡去沒出現政治話走單位一直吧是否當然整處理歷史了解那怎麼機會家聽所有只要朋友令甚至用真六呀情況還是錢方法點任何經驗藝術你們十主要媽媽增加提出為什麼以您計畫作利用東西在條設計找之間成長能夠決定學習誰見半時代完成帶相當同學件能力別人生命下來場會議容易開發民眾事情書事實有關自組織言多愛建立相關均產生多業者解決完全的話接受知約一般推動過程管理功能手打水要求小朋友教授難我國告訴內容結果調查家庭成立選擇經營然而父母寫人類至於買尤其配合進入例如得討論依作品情形資源原因啦妳運動觀念給軟體品質經過如此嗯精神影響之過好像成參與以後於是部分另外公園透過訓練努力研究具有共同所謂下行為合作經合作目標起來考慮長意見辦法音樂連受廠商隻受到一切或是中央某女性教學極獲得真的路來快國小部份工程女人舉行句只是段根據現象人民土地面對注意這裡新聞繼續相信政策變成計劃強調學人士前前存在制度意義代表課程該沒至需求人生那些成功爸爸產業負責民間雖影響直接幾乎分實際團體價值使得類形成科技這麼當七不但往本身標準似乎應用或者動物電話態度建設事業老那麼常常字坐舉辦自我有的具目的塊條件即使好十分多少放又電影科學執行邊委員會溝通開一起張針對員工引起自然那麼安全總統此外擁有並且事件設計研究所語言嚴重故事學術片設備之外車基本實在久套達到改善死結構住皆改變拿小組支持座醫院既僅值得學者八交通階段就是申請主管申請同感覺電視母親嘛香港記者壓力快樂喝敢院也許人們談生產怕就身體規定程度積極知識作為機構而是鼓勵角色狀況專家據清楚不僅比賽玩效果越保護共開放附近上父親專業經費曾經工作願意分別重視不少歡迎小孩小時中國人顯示中共出男人避免屬於實施聲音主義行動不可只有校園興趣山表現得回來主任裡面經常不再電子受思想頭終於謝謝協助除當地正式真正低性份因素推出上價格去認識方向責任說明工業大量做逐漸心理一點供須簡單運用觀察往往規劃減少重新業務報導仍然感到開放領域有效女要從事發揮人才反而行政銀行公共媒體提高代自然社區力量啊教育部愈超過維持家長結合校長通常缺乏委員特色結果有時教師之前遠控制本否則法少原則要臉通過建議工具作業達節目智慧來自而變化同樣形式站以為健康擔任人口規劃剛特殊原來道分傳統總是前往投資加強不斷對象追求加上比思考製作台北市取得出來加入台安排兒童國中範圍老人雙方牠北京年輕結束教程式婦女找到彼此全球成本回到部而已之下等變期間非小姐整體採用根本叫歐洲正在加以充滿系列隨著早等等頗不足總分析深報告不錯在於旁笑故消費者意識公尺民族為主大眾到底願度大概對方官員發表進一步自由正確豐富國民黨戰爭怎麼樣只好明顯改革表達肯定強高興哪樹適合茶別國外關心蘇聯成績人物聽到創造不必不論尚居民不管美麗伊拉克帶來有般永遠感情兒子這樣子起全部".encode('utf-8')) +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_simsun_16_cjk.c') + +print("\nGenerating 16 px Hebrew, Persian") +os.system("./built_in_font_gen.py --size 16 -o lv_font_dejavu_16_persian_hebrew.c --bpp 4 --font DejaVuSans.ttf -r 0x20-0x7f,0x5d0-0x5ea,0x600-0x6FF,0xFB50-0xFDFF,0xFE70-0xFEFF") +os.system('sed -i \'s|#include "lvgl/lvgl.h"|#include "../../lvgl.h"|\' lv_font_dejavu_16_persian_hebrew.c') diff --git a/src/libs/lvgl/scripts/clang-formatter.sh b/src/libs/lvgl/scripts/clang-formatter.sh deleted file mode 100755 index d831917c..00000000 --- a/src/libs/lvgl/scripts/clang-formatter.sh +++ /dev/null @@ -1,13 +0,0 @@ -clang-format-7 -style=file ../src/lv_core/*.c -i -clang-format-7 -style=file ../src/lv_draw/*.c -i -clang-format-7 -style=file ../src/lv_hal/*.c -i -clang-format-7 -style=file ../src/lv_misc/*.c -i -clang-format-7 -style=file ../src/lv_objx/*.c -i -clang-format-7 -style=file ../src/lv_themes/*.c -i - -clang-format-7 -style=file ../src/lv_core/*.h -i -clang-format-7 -style=file ../src/lv_draw/*.h -i -clang-format-7 -style=file ../src/lv_hal/*.h -i -clang-format-7 -style=file ../src/lv_misc/*.h -i -clang-format-7 -style=file ../src/lv_objx/*.h -i -clang-format-7 -style=file ../src/lv_themes/*.h -i diff --git a/src/libs/lvgl/scripts/code-format.cfg b/src/libs/lvgl/scripts/code-format.cfg new file mode 100644 index 00000000..0d786927 --- /dev/null +++ b/src/libs/lvgl/scripts/code-format.cfg @@ -0,0 +1,49 @@ +--style=kr +--indent=spaces=4 +--indent-classes +--indent-switches +--indent-cases +--indent-preproc-block +--indent-preproc-define +--indent-col1-comments +--pad-oper +--unpad-paren +--align-pointer=middle +--align-reference=middle +--convert-tabs +--max-code-length=120 +--break-after-logical +--break-closing-braces +--attach-closing-while +--min-conditional-indent=0 +--max-continuation-indent=120 +--mode=c +--lineend=linux +--recursive +--suffix=none +--preserve-date +--formatted +--exclude=lv_conf_internal.h +--exclude=../src/lv_font/lv_font_montserrat_12.c +--exclude=../src/lv_font/lv_font_montserrat_14.c +--exclude=../src/lv_font/lv_font_montserrat_16.c +--exclude=../src/lv_font/lv_font_montserrat_18.c +--exclude=../src/lv_font/lv_font_montserrat_20.c +--exclude=../src/lv_font/lv_font_montserrat_22.c +--exclude=../src/lv_font/lv_font_montserrat_24.c +--exclude=../src/lv_font/lv_font_montserrat_26.c +--exclude=../src/lv_font/lv_font_montserrat_28.c +--exclude=../src/lv_font/lv_font_montserrat_30.c +--exclude=../src/lv_font/lv_font_montserrat_32.c +--exclude=../src/lv_font/lv_font_montserrat_34.c +--exclude=../src/lv_font/lv_font_montserrat_36.c +--exclude=../src/lv_font/lv_font_montserrat_38.c +--exclude=../src/lv_font/lv_font_montserrat_40.c +--exclude=../src/lv_font/lv_font_montserrat_42.c +--exclude=../src/lv_font/lv_font_montserrat_44.c +--exclude=../src/lv_font/lv_font_montserrat_46.c +--exclude=../src/lv_font/lv_font_montserrat_48.c +--exclude=../src/lv_font/lv_font_montserrat_12_subpx.c +--exclude=../src/lv_font/lv_font_montserrat_28_compressed.c +--exclude=../src/lv_font/lv_font_simsun_16_cjk.c +--exclude=../src/lv_font/lv_font_dejavu_16_persian_hebrew.c diff --git a/src/libs/lvgl/scripts/code-format.sh b/src/libs/lvgl/scripts/code-format.sh new file mode 100755 index 00000000..561f4330 --- /dev/null +++ b/src/libs/lvgl/scripts/code-format.sh @@ -0,0 +1 @@ +astyle --options=code-format.cfg "../src/*.c,*.h" diff --git a/src/libs/lvgl/scripts/cppcheck_run.sh b/src/libs/lvgl/scripts/cppcheck_run.sh index 1db16fc9..3916c767 100755 --- a/src/libs/lvgl/scripts/cppcheck_run.sh +++ b/src/libs/lvgl/scripts/cppcheck_run.sh @@ -1,2 +1 @@ -cppcheck --template="{severity}\t{file}:{line}\t{id}: {message}" --enable=all ../src/ --output-file=cppcheck_res.txt --suppress=unusedFunction --suppress=preprocessorErrorDirective --force - +cppcheck -j8 --template="{severity}\t{file}:{line}\t{id}: {message}" --enable=all ../src/ --output-file=cppcheck_res.txt --suppress=unusedFunction --suppress=preprocessorErrorDirective --force diff --git a/src/libs/lvgl/scripts/infer_run.sh b/src/libs/lvgl/scripts/infer_run.sh new file mode 100755 index 00000000..f1d12235 --- /dev/null +++ b/src/libs/lvgl/scripts/infer_run.sh @@ -0,0 +1,9 @@ +# https://github.com/facebook/infer +# +# Install: +# VERSION=0.17.0; \ +# curl -sSL "https://github.com/facebook/infer/releases/download/v$VERSION/infer-linux64-v$VERSION.tar.xz" \ +# | sudo tar -C /opt -xJ && \ +# sudoln -s "/opt/infer-linux64-v$VERSION/bin/infer" /usr/local/bin/infer + +infer run -- make -j8 diff --git a/src/libs/lvgl/scripts/lv_conf_checker.py b/src/libs/lvgl/scripts/lv_conf_checker.py index c2171ff8..55aeea82 100755 --- a/src/libs/lvgl/scripts/lv_conf_checker.py +++ b/src/libs/lvgl/scripts/lv_conf_checker.py @@ -1,25 +1,63 @@ -#!/usr/bin/env python3.6 +#!/usr/bin/env python3 ''' -Generates a checker file for lv_conf.h from lv_conf_templ.h define all the not defined values +Generates a checker file for lv_conf.h from lv_conf_template.h define all the not defined values ''' - +import sys import re -fin = open("../lv_conf_template.h", "r") -fout = open("../src/lv_conf_checker.h", "w") +if sys.version_info < (3,6,0): + print("Python >=3.6 is required", file=sys.stderr) + exit(1) +fin = open("../lv_conf_template.h", "r") +fout = open("../src/lv_conf_internal.h", "w") fout.write( '''/** * GENERATED FILE, DO NOT EDIT IT! - * @file lv_conf_checker.h + * @file lv_conf_internal.h * Make sure all the defines of lv_conf.h have a default value **/ -#ifndef LV_CONF_CHECKER_H -#define LV_CONF_CHECKER_H +#ifndef LV_CONF_INTERNAL_H +#define LV_CONF_INTERNAL_H +/* clang-format off */ + +#include + +/* Handle special Kconfig options */ +#include "lv_conf_kconfig.h" + +#ifdef CONFIG_LV_CONF_SKIP +#define LV_CONF_SKIP +#endif + +/* If "lv_conf.h" is available from here try to use it later.*/ +#if defined __has_include +# if __has_include("lv_conf.h") +# ifndef LV_CONF_INCLUDE_SIMPLE +# define LV_CONF_INCLUDE_SIMPLE +# endif +# endif +#endif + +/*If lv_conf.h is not skipped include it*/ +#if !defined(LV_CONF_SKIP) +# if defined(LV_CONF_PATH) /*If there is a path defined for lv_conf.h use it*/ +# define __LV_TO_STR_AUX(x) #x +# define __LV_TO_STR(x) __LV_TO_STR_AUX(x) +# include __LV_TO_STR(LV_CONF_PATH) +# undef __LV_TO_STR_AUX +# undef __LV_TO_STR +# elif defined(LV_CONF_INCLUDE_SIMPLE) /*Or simply include lv_conf.h is enabled*/ +# include "lv_conf.h" +# else +# include "../../lv_conf.h" /*Else assume lv_conf.h is next to the lvgl folder */ +# endif +#endif + ''' ) @@ -36,23 +74,70 @@ for i in fin.read().splitlines(): if '/*--END OF LV_CONF_H--*/' in i: break r = re.search(r'^ *# *define ([^\s]+).*$', i) - + +#ifndef LV_USE_BTN /*Only if not defined in lv_conf.h*/ +# ifdef CONFIG_LV_USE_BTN /*Use KConfig value if set*/ +# define LV_USE_BTN CONFIG_LV_USE_BTN +# else +# define LV_USE_BTN 1 /*Use default value*/ +# endif +#endif + if r: line = re.sub('\(.*?\)', '', r[1], 1) #remove parentheses from macros + dr = re.sub('.*# *define', '', i, 1) + d = "# define " + dr + fout.write( f'#ifndef {line}\n' - f'{i}\n' - '#endif\n' + f'# ifdef CONFIG_{line.upper()}\n' + f'# define {line} CONFIG_{line.upper()}\n' + f'# else\n' + f'{d}\n' + f'# endif\n' + f'#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*/ + +/*If running without lv_conf.h add typdesf with default value*/ +#if defined(LV_CONF_SKIP) + + /* Type of coordinates. Should be `int16_t` (or `int32_t` for extreme cases) */ + typedef int16_t lv_coord_t; + +# if LV_USE_ANIMATION + /*Declare the type of the user data of animations (can be e.g. `void *`, `int`, `struct`)*/ + typedef void * lv_anim_user_data_t; +# endif + +# if LV_USE_GROUP + typedef void * lv_group_user_data_t; +# endif + +# if LV_USE_FILESYSTEM + typedef void * lv_fs_drv_user_data_t; +# endif + + typedef void * lv_img_decoder_user_data_t; + + typedef void * lv_disp_drv_user_data_t; /*Type of user data in the display driver*/ + typedef void * lv_indev_drv_user_data_t; /*Type of user data in the input device driver*/ + + typedef void * lv_font_user_data_t; + +# if LV_USE_USER_DATA + typedef void * lv_obj_user_data_t; +# endif + +#endif + +#endif /*LV_CONF_INTERNAL_H*/ ''' ) diff --git a/src/libs/lvgl/scripts/release/com.py b/src/libs/lvgl/scripts/release/com.py new file mode 100755 index 00000000..5b5300e9 --- /dev/null +++ b/src/libs/lvgl/scripts/release/com.py @@ -0,0 +1,110 @@ +#!/usr/bin/env python + +import sys +import os.path +from os import path +import os, fnmatch +import re +import subprocess +import com + +def cmd(c, ask_on_err = True): + print("\n" + c) + r = os.system(c) + if r: + print("### Error: " + str(r)) + if ask_on_err: + input("Press Enter to continue execution...") + +def define_set(fn, name, value): + print("In " + fn + " set " + name + " to " + value) + + new_content = "" + s = r'^ *# *define +' + str(name).rstrip() + ' +' + + f = open(fn, "r") + for i in f.read().splitlines(): + r = re.search(s, i) + if r: + d = i.split("define") + i = d[0] + "define " + name + " " + value + new_content += i + '\n' + + f.close() + + f = open(fn, "w") + f.write(new_content) + f.close() + +def ver_format(ver): + s = "v" + str(ver[0]) + "." + str(ver[1]) + "." + str(ver[2]) + if(ver[3] != ""): s = s + "-" + ver[3] + return s + +def get_lvgl_version(br): + print("Get LVGL's version") + + ver = [0, 0, 0, ""] + + os.chdir("./lvgl") + + com.cmd("git checkout " + br) + + f = open("./lvgl.h", "r") + + lastNum = re.compile(r'(?:[^\d]*(\d+)[^\d]*)+') + for i in f.read().splitlines(): + r = re.search(r'^#define LVGL_VERSION_MAJOR ', i) + if r: + m = lastNum.search(i) + if m: ver[0] = m.group(1) + + r = re.search(r'^#define LVGL_VERSION_MINOR ', i) + if r: + m = lastNum.search(i) + if m: ver[1] = m.group(1) + + r = re.search(r'^#define LVGL_VERSION_PATCH ', i) + if r: + m = lastNum.search(i) + if m: ver[2] = m.group(1) + + f.close() + + com.cmd("git checkout master") + + os.chdir("../") + return ver + +def push(c): + cmd("git push " + c) + +def update_version(ver): + ver_str = ver_format(ver) + ver_num = ver[0] + "." + ver[1] + "." + ver[2] + + templ = fnmatch.filter(os.listdir('.'), '*_templ*.h') + + if len(templ) > 0 and templ[0]: + print("Updating version in " + templ[0]) + cmd("sed -i -r 's/v[0-9]+\.[0-9]+\.[0-9]+.*/"+ "v" + ver_num + "/' " + templ[0]) + + if os.path.exists("library.json"): + print("Updating version in library.json") + cmd("sed -i -r 's/[0-9]+\.[0-9]+\.[0-9]+/"+ ver_num +"/' library.json") + + if path.exists("library.properties"): + print("Updating version in library.properties") + cmd("sed -i -r 's/version=[0-9]+\.[0-9]+\.[0-9]+/"+ "version=" + ver_num + "/' library.properties") + + if path.exists("conf.py"): + cmd("sed -i -r 's/v[0-9]+\.[0-9]+\.[0-9]+.*/" + ver_str + "/' conf.py") + + if path.exists("Kconfig"): + cmd("sed -i -r 's/v[0-9]+\.[0-9]+\.[0-9]+.*/" + ver_str + "/' Kconfig") + + if path.exists("lvgl.h"): + define_set("./lvgl.h", "LVGL_VERSION_MAJOR", str(ver[0])) + define_set("./lvgl.h", "LVGL_VERSION_MINOR", str(ver[1])) + define_set("./lvgl.h", "LVGL_VERSION_PATCH", str(ver[2])) + define_set("./lvgl.h", "LVGL_VERSION_INFO", "\"" + ver[3] + "\"") diff --git a/src/libs/lvgl/scripts/release/dev.py b/src/libs/lvgl/scripts/release/dev.py new file mode 100755 index 00000000..7b53fe53 --- /dev/null +++ b/src/libs/lvgl/scripts/release/dev.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python + +import re +import os, fnmatch +import os.path +from os import path +from datetime import date +import com + +def lvgl_update_ver(ver, br): + os.chdir("./lvgl") + + com.cmd("git checkout " + br) + com.update_version(ver) + com.cmd("git commit -am 'Update " + br + " version'") + com.push("origin " + br) + com.cmd("git checkout master") + + os.chdir("../") + +def docs_update_ver(ver, br): + os.chdir("./docs") + com.cmd("git checkout " + br + " --") + com.update_version(ver) + com.cmd("git commit -am 'Update " + br + " version'") + com.push("origin " + br) + com.cmd("git checkout master --") + + os.chdir("../") + +def merge_dev_to_master(): + os.chdir("./lvgl") + com.cmd("git checkout master") + com.cmd("git merge dev") + com.push("origin master") + os.chdir("../") + + os.chdir("./docs") + com.cmd("git checkout dev -- ") #'dev' sometimes is not recognized so switch to it first + com.cmd("git checkout latest --") + com.cmd("git merge dev -X theirs --no-edit;") + com.push("origin latest") + os.chdir("../") + +def make(mode): + if(mode == "bugfix"): + ver = com.get_lvgl_version("master") + ver[3] = "dev" + ver[2] = str(int(ver[2]) + 1) + lvgl_update_ver(ver, "master") + docs_update_ver(ver, "latest") + else: + ver = com.get_lvgl_version("dev") + ver[3] = "dev" + merge_dev_to_master() + if(mode == "major"): + ver[0] = str(int(ver[0]) + 1) + ver[1] = '0' + ver[2] = '0' + if(mode == "minor"): + ver[1] = str(int(ver[1]) + 1) + ver[2] = '0' + + lvgl_update_ver(ver, "dev") + docs_update_ver(ver, "dev") + +if __name__ == '__main__': + if(len(sys.argv) != 2): + print("Missing argument. Usage ./dev.py major | minor | bugfix") + print("E.g. ./dev.py minor") + else: + make(sys.argv[1]) diff --git a/src/libs/lvgl/scripts/release/main.py b/src/libs/lvgl/scripts/release/main.py new file mode 100755 index 00000000..ba9ab204 --- /dev/null +++ b/src/libs/lvgl/scripts/release/main.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python + +import os.path +from os import path +from datetime import date +import sys +import com +import release +import dev +import proj + +upstream_org_url = "https://github.com/lvgl/" +workdir = "./release_tmp" +proj_list = [ "lv_sim_eclipse_sdl", "lv_sim_emscripten"] + +def upstream(repo): + return upstream_org_url + repo + ".git" + +def clone(repo): + com.cmd("git clone --recurse-submodules " + upstream(repo)) + os.chdir("./" + repo) + com.cmd("git checkout master") + com.cmd("git remote update origin --prune") + com.cmd("git pull origin --tags") + os.chdir("..") + +def clone_repos(): + com.cmd("rm -fr " + workdir) + com.cmd("mkdir " + workdir) + os.chdir(workdir) + clone("lvgl") + clone("lv_examples") + clone("lv_drivers") + clone("docs") + clone("blog") + + for p in proj_list: + clone(p) + +def cleanup(): + os.chdir("../") + com.cmd("rm -fr " + workdir) + +if __name__ == '__main__': + prepare_type = ['major', 'minor', 'bugfix'] + dev_prepare = 'minor' + +# if(len(sys.argv) != 2): +# print("Missing argument. Usage ./release.py bugfix | minor | major") +# print("Use minor by default") +# else: +# dev_prepare = sys.argv[1] + + if not (dev_prepare in prepare_type): + print("Invalid argument. Usage ./release.py bugfix | minor | major") + exit(1) + + #os.chdir(workdir) + clone_repos() + release.make() + for p in proj_list: + proj.make(p, True) + + dev.make(dev_prepare) + #cleanup() diff --git a/src/libs/lvgl/scripts/release/proj.py b/src/libs/lvgl/scripts/release/proj.py new file mode 100755 index 00000000..c28fd320 --- /dev/null +++ b/src/libs/lvgl/scripts/release/proj.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python + +import sys +import os.path +from os import path +import re +import subprocess +import com + +def make(repo_path, auto_push = False): + os.chdir("./" + repo_path) + com.cmd('git checkout master') + print("Update lvgl"); + os.chdir("./lvgl") + com.cmd("git checkout master") + com.cmd("git pull origin --tags") + + out = subprocess.Popen(['git', 'tag', '--sort=-creatordate'], + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT) + stdout,stderr = out.communicate() + + ver_str = stdout.decode("utf-8").split('\n')[0] + release_br = ver_str[1:] #trim "v" + release_br = release_br.split('.')[0] # get the first number + release_br = "release/v" + release_br + + com.cmd("git checkout " + release_br + "; git pull origin " + release_br) + + os.chdir("..") + + com.cmd("cp -f lvgl/lv_conf_template.h lv_conf.h") + com.cmd("sed -i -r 's/#if 0/#if 1/' lv_conf.h") # Enable lv_conf.h + with open("confdef.txt") as f: + for line in f: + (key, val) = line.rstrip().split('\t') + com.define_set("lv_conf.h", str(key), str(val)) + + if os.path.exists("lv_examples"): + print("Update lv_examples"); + com.cmd("cd lv_examples; git co " + release_br + "; git pull origin " + release_br) + + if os.path.exists("lv_drivers"): + print("update lv_drivers"); + com.cmd("cd lv_drivers " + release_br + "; git pull origin " + release_br) + + msg = 'Update to ' + ver_str + com.cmd("git add .") + com.cmd('git commit -am "' + msg + '"') + com.cmd("git tag -a " + ver_str + " -m '" + msg + "' " ) + if auto_push: + com.push("origin --tags") + com.push("origin master") + + os.chdir("../") + +if __name__ == '__main__': + if(len(sys.argv) != 2): + print("Missing argument. Usage ./projs_update.py repo_path") + print("E.g. ./projs_update.py ./lv_sim_eclipse_sdl") + else: + make(sys.argv[1], sys.argv[2]) diff --git a/src/libs/lvgl/scripts/release/release.py b/src/libs/lvgl/scripts/release/release.py new file mode 100755 index 00000000..1e6037df --- /dev/null +++ b/src/libs/lvgl/scripts/release/release.py @@ -0,0 +1,173 @@ +#!/usr/bin/env python + +import os.path +from os import path +from datetime import date +import sys +import com +import re + +def update_release_branch(release_br, master_br = "master"): + com.cmd("git checkout " + release_br) + com.cmd("git pull origin " + release_br) + com.cmd("git merge "+ master_br +" -X ours"); + com.push("origin " + release_br); + com.cmd("git checkout master"); + +def lvgl_release(ver): + print("Release lvgl") + + ver_str = com.ver_format(ver) + release_br = "release/v" + str(ver[0]) + + os.chdir("./lvgl") + com.define_set("./lvgl.h", "LVGL_VERSION_INFO", '\"\"') + + # Run some scripts + os.chdir("./scripts") + com.cmd("./code-format.sh") + com.cmd("./lv_conf_checker.py") + com.cmd("doxygen") + os.chdir("../") + + com.update_version(ver) + + #update CHANGLELOG + new_content = "" + f = open("./CHANGELOG.md", "r") + + release_note = "" + note_state = 0 + for i in f.read().splitlines(): + if note_state == 0: + r = re.search(r'^## ' + ver_str, i) + if r: + i = i.replace("planned on ", "") + note_state+=1 + + elif note_state == 1: + r = re.search(r'^## ', i) + if r: + note_state+=1 + else: + release_note += i + '\n' + + new_content += i + '\n' + + f.close() + + f = open("./CHANGELOG.md", "w") + f.write(new_content) + f.close() + + com.cmd('git commit -am "Release ' + ver_str + '"') + + com.cmd('git checkout dev') + com.cmd("git merge master -X ours") + com.cmd("git add .") + com.cmd("git commit -am 'Merge master'", False) + com.push('origin dev') + com.cmd('git checkout master') + com.cmd("git tag -a " + ver_str + " -m 'Release " + ver_str + "' ") + com.push('origin master') + com.push('origin --tags') + + update_release_branch(release_br) + + os.chdir("../") + + return release_note + +def lv_examples_release(ver): + print("Release lv_examples") + + os.chdir("./lv_examples") + release_br = "release/v" + str(ver[0]) + ver_str = com.ver_format(ver) + + com.update_version(ver) + + com.cmd("sed -i -r 's/LV_VERSION_CHECK\([0-9]+, *[0-9]+, *[0-9]+\)/"+ "LV_VERSION_CHECK\(" + str(ver[0]) + ", " + str(ver[1]) + ", " + str(ver[2]) + ")/' lv_examples.h") + + com.cmd('git commit -am "Release ' + ver_str + '"') + com.cmd("git tag -a " + ver_str + " -m 'Release " + ver_str + "' ") + com.push('origin master') + com.push('origin --tags') + + update_release_branch(release_br) + + os.chdir("../") + +def lv_drivers_release(ver): + print("Release lv_drivers") + + os.chdir("./lv_drivers") + release_br = "release/v" + str(ver[0]) + ver_str = com.ver_format(ver) + + com.update_version(ver) + + com.cmd('git commit -am "Release ' + ver_str + '"') + com.cmd("git tag -a " + ver_str + " -m 'Release " + ver_str + "' ") + com.push('origin master') + com.push('origin --tags') + + update_release_branch(release_br) + + os.chdir("../") + +def docs_release(ver): + print("Release docs") + + os.chdir("./docs") + release_br = "release/v" + str(ver[0]) + ver_str = com.ver_format(ver) + + com.cmd("git co latest --") + com.cmd("rm -rf xml"); + com.cmd("cp -r ../lvgl/docs/api_doc/xml ."); + com.cmd("git add xml"); + + com.update_version(ver) + + com.cmd('git commit -am "Release ' + ver_str + '"') + com.cmd("git tag -a " + ver_str + " -m 'Release " + ver_str + "' ") + com.push('origin master') + com.push('origin --tags') + + update_release_branch(release_br, "latest") + + os.chdir("../") + +def blog_release(ver, release_note): + + os.chdir("./blog/_posts") + + ver_str = com.ver_format(ver) + + post = "---\nlayout: post\ntitle: " + ver_str + " is released\nauthor: \"kisvegabor\"\ncover: /assets/release_cover.png\n---\n\n" + post += release_note + + today = date.today() + d = today.strftime("%Y-%m-%d") + + f = open(d + "-release_" + ver_str + ".md", "w") + f.write(post) + f.close() + + com.cmd("git add .") + com.cmd("git commit -am 'Add " + ver_str + " release post'") + com.push('origin master') + + os.chdir("../../") + +def make(): + ver = com.get_lvgl_version("master") + release_note = lvgl_release(ver) + lv_examples_release(ver) + lv_drivers_release(ver) + docs_release(ver) + blog_release(ver, release_note) + +if __name__ == '__main__': + make() -- cgit v1.2.3