PyDevices / cmods

Build the LVGL cmods across five targets, one command.

cmods is an optional workspace wrapper that clones MicroPython/CircuitPython/CPython plus their LVGL user-C-modules as siblings, then builds and smoke-tests the whole matrix.

Source on GitHub lv_bindings

Build matrix

./build_all.sh runs all five; ./build_target.sh <target> runs one

mp-unix

MicroPython unix / standard. ./build_mp.sh --port unix --variant standard

mp-windows

MicroPython windows / standard. ./build_mp.sh --port windows --variant standard

cp-unix

CircuitPython unix / coverage, via lv_circuitpython_mod/build_cp.sh.

cpy-unix

CPython on WSL/Linux. Editable install via lv_cpython_mod/.venv.

cpy-windows

CPython on Windows, via pip.exe / python.exe (no venv). Never concurrent with cpy-unix.

Quick start

git clone https://github.com/PyDevices/cmods.git
cd cmods

git clone https://github.com/micropython/micropython.git micropython
cd micropython && git submodule update --init --recursive && cd ..

# Optional -- only needed for LVGL
git clone https://github.com/PyDevices/lv_micropython_cmod.git lv_micropython_cmod
git clone https://github.com/PyDevices/lv_bindings.git lv_bindings
cd lv_bindings && git submodule update --init lvgl && cd ..
./lv_bindings/regenerate_lvmp.sh

./build_mp.sh --port unix --variant standard

Sibling modules

Clone any of these as siblings inside cmods/