Project Features
Basic NuttX Scripts Wrapper
Supports the most used functions of the
tools/configure.shscript on NuttX.Makefile build support
Environemnt
cleananddistcleanMenuconfig available and also kconfig options modification directly from command line
Full Python API support
Toolchain Management
The toolchain module provides a quick way to download toolchains for supported architectures.
Installed on home directory for general use when needed even outside
ntxbuildCLI.Toolchains are organized by NuttX release and default to latest version.
CMake Support
The use of Makefile is the default state of ntxbuild. To build using CMake, pass
--use-cmake to the ntxbuild start command. This will setup the directory to CMake
and Ninja generator.
Currently, CMake support uses the build directory for output and Ninja generator when invoked
from the CLI. Using the Python API allows more flexibility.
Real-time Build Output
When building directly from NuttX, the user can see build output in real-time. This tool keeps the output the same, as the user will see the logging output with no buffering.
Live progress display with proper ANSI colors
No buffering for immediate feedback
Preserves terminal control sequences
Lightweight Workspace Copies
The API provides functions that assist in generating lightweight copies of the NuttX workspace, which can be useful in CI environments.
See usage examples on API Examples.
Excludes unnecessary files (.git, build artifacts, etc.)
Configurable target directory
Automatic cleanup
Board Explorer
The Board Explorer feature provides a simple way to discover and inspect
the boards and available defconfigs inside a NuttX repository. It is available
both through the CLI (commands that list boards) and the Python API
(see ntxbuild.nuttx helpers).
Quickly find which boards support a particular architecture or SoC.
Programmatically build a list of candidate boards for automated testing or CI matrix generation.
Provide a lightweight UI (or CLI output) that helps users choose a board and defconfig before running
startorbuildcommands.
Curses Support
Menuconfig works just as usual through this tool.
Full support for interactive tools like menuconfig
Proper terminal handling
No broken interfaces
To-Do
Note
Active feature tracking and new feature requests are now handled on the project board.
The following are features that should be added to this project:
(OK) Publish on PyPi
(OK) Add build using CMake
Checkpatch script support
(OK) Download and install compilers
Open the docs for a board
Improve support for installing source (multi thread and API improvements)
Export defconfig (make savedefconfig)
(OK) Support kconfig-merger
(OK) Support disabling build log output
Prettify logging: add colored output and option to log to file
(OK) Replace the shelve module: use .ini file instead
Add support for custom Make options on
NuttXBuilder.build(Partial support) Support extra flags on configure.sh script