mirror of
https://github.com/arabine/open-story-teller.git
synced 2025-12-06 17:09:06 +01:00
1.6 KiB
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
- Create a build directory (mkdir build)
- 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 ..