mirror of
https://github.com/nonlinear-labs-dev/C15.git
synced 2026-08-24 14:10:46 +02:00
No description
https://nonlinear-labs.de/
- C++ 67.3%
- Java 14.3%
- C 11.7%
- TypeScript 1.6%
- CMake 1.6%
- Other 3.5%
|
|
||
|---|---|---|
| .claude/skills/pr-review | ||
| .github | ||
| build-environment | ||
| cmake | ||
| configuration | ||
| doc | ||
| hooks | ||
| os | ||
| package | ||
| update | ||
| .clang-format | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| AGENTS.md | ||
| CMakeLists.txt | ||
| CMakePresets.json | ||
| COPYING.md | ||
| dos2unix_all.bat | ||
| README.md | ||
| reformat-all.sh | ||
nl Firmware
prepare environment
On Ubuntu, install the packages needed to configure and build the project:
sudo apt-get update
sudo apt-get install -y \
bindfs ccache cmake fuse-overlayfs jq make podman pkg-config \
build-essential \
gcc-arm-none-eabi \
libasound2-dev libboost-all-dev libflac-dev libfreetype6-dev \
libglibmm-2.4-dev libgtkmm-3.0-dev libpng-dev libpng++-dev \
libsdl2-dev libsoup2.4-dev libusb-1.0-0-dev \
libyaml-cpp-dev nlohmann-json3-dev \
uuid-dev
libyaml-cpp-devandnlohmann-json3-devare required bycompose-lvgl(via pkg-config)gcc-arm-none-eabiis only needed when building STM firmware targetslcovis only needed for coverage builds (see Build Tests with coverage)
Additional setup:
- edit
/etc/fuse.conf: uncomment (or add)user_allow_other - for podman rootless builds with fuse-overlayfs, set the storage mount program:
echo 'mount_program="/usr/bin/fuse-overlayfs"' | sudo tee /etc/containers/storage.conf
Prepare build directory
git clone git@github.com:nonlinear-labs-dev/C15.git C15git submodule update --init --recursivecd C15cmake --preset dev-debug- the
dev-debugpreset already contains default binary and install directories- if desired, provide a custom binary directory (
-B), e.g. outside the repository folder by adding-B ../build - if desired, provide a custom install directory (
CMAKE_INSTALL_PREFIX), e.g. outside the repository folder by adding-DCMAKE_INSTALL_PREFIX=../nl-rootfs
- if desired, provide a custom binary directory (
- for building yocto-based updates it is recommended to provide a cache folder by adding
-DYOCTO_SHARED_CACHE_DIR="<desired_yocto_cache_dir>" - if desired, choose another cmake preset, e.g.
dev-release
- the
Build binaries for local development PC
cmake --build --preset dev-debug --target install
Build Update for C15
cmake --build --preset dev-debug --target update-c15
Build Tests with coverage
- install
lcov - configure cmake with
-DENABLE_COVERAGE=On - build
<target>-coverageand inspect results inbuild-dir/package/<target>/<target>-coverage
For developing the meteor package
- start either c16-playground or c15-playground
- make meteor-dev-environment-base
- wait until settled
- open with your ide: ...build-folder/package/meteor/ide
- open in browser: http://localhost:3000/index.html?page=[c16 | c16Debug |nonmaps | nonmapsPresetSearch]
- if needed for developing NonMaps: see For developing NonMaps
Debugging a remote meteor UI
- start ssh-tunnel to target
ssh -L 9222:localhost:9222 sscl@raspi-ip - open chrome on the developer-pc and navigate to
chrome://inspect/#devices - navigate to
Devicesand selectinspectfor the c16 URL below theRemote Target #LOCALHOSTheading (this might take a few seconds to show up)
For developing NonMaps
- Once: configure using
cmake --preset dev-nonmaps --fresh - After every commit:
- run
cmake --build --preset dev-nonmaps - start the c15-playground
- Enable gwt compile as documented here. In short:
- navigate to package/nonmaps/
- run
mvn gwt:devmode(once install maven if not done yet)
- Then, open
localhost:8080in the browser
Useful: Save the following bookmarks to your browser:
- "nonmaps: enable dev mode":
javascript:%7B window.__gwt_bookmarklet_params %3D %7B'server_url'%3A'http%3A%2F%2Flocalhost%3A9876%2F'%7D%3B var s %3D document.createElement('script')%3B s.src %3D 'http%3A%2F%2Flocalhost%3A9876%2Fdev_mode_on.js'%3B void(document.getElementsByTagName('head')%5B0%5D.appendChild(s))%3B%7D - "nonmaps: compile":
javascript:%7B window.__gwt_bookmarklet_params %3D %7Bserver_url%3A'http%3A%2F%2Flocalhost%3A9876%2F'%2Cmodule_name%3A'nonmaps'%7D%3B var s %3D document.createElement('script')%3B s.src %3D 'http%3A%2F%2Flocalhost%3A9876%2Fdev_mode_on.js'%3B void(document.getElementsByTagName('head')%5B0%5D.appendChild(s))%3B%7D
Show the developer options, if needed:
- in the Web UI, enable Setup > GUI Settings > Show Developer Options
- scroll to the north where the "Developer Options" box should be shown now