open-story-teller/docs/dev-intro.md
Anthony Rabine 47b3060de5 Update docs
2023-05-02 18:17:03 +02:00

1.6 KiB

Software development

Firmware/software

The firmware is highly configurable and highly portable. To achieve that, it is split in multiple parts:

  • The core source file, which is common to every target
  • the ports, dedicated to an embedded MCU and board
  • The tests, to easily test part of source on a standard PC
  • A desktop/mobile implementation

The core is written in pure C, targets implementations may add other languages and libraries (QML/C++/python ...).

CMake build system

The project uses CMake as build system. For the embedded targets, the main CMakeLists.txt includes a generic cross compiler file that should be good for many configurations as soon as your compiler is GCC.

Invocation

  1. Create a build directory (mkdir build)
  2. Invoke cmake with some options, passed as definitions for CMake (-Doption)
Option Role
TOOLCHAIN specify the prefix name of the cross GCC binary
CMAKE_TOOLCHAIN_FILE Includes before everything else a compiler toolchain file
CMAKE_BUILD_TYPE Debug or Release (default ?)
OST_BUNDLE Specify the bundle name to build
TOOLCHAIN_DIR Specify a directory for the cross-gcc toolchain location

Example: cmake -DTOOLCHAIN=riscv64-unknown-elf -DCMAKE_TOOLCHAIN_FILE=cmake/cross-gcc.cmake -DCMAKE_BUILD_TYPE=Debug -DOST_BUNDLE=LONGAN_NANO ..