Skip to main content

NuttX Build System Assistant

Project description

ntxbuild

Python 3.10+ Linux GitHub Actions Workflow Status Read the Docs

NuttX Build System Assistant - A Python tool for managing and building NuttX RTOS projects with ease.

ntxbuild is a wrapper around the many tools available in the NuttX repository. It wraps around utilities such as make, kconfig-tweak, menuconfig and most used bash scripts (such as configure.sh).

Also, it provides different features, such as downloading required toolchains and managing PATH.

This tool provides a command line interface that supports NuttX configuration and building, while also providing a Python API that allows you to script your builds.

Features

  • Environment Management: Automatic NuttX workspace detection and configuration
  • Python API: ntxbuild is available as a Python package for building NuttX using Python scripts
  • Real-time Output: Live build progress with proper ANSI escape sequence handling
  • Configuration Management: Kconfig integration for easy system configuration
  • Interactive Tools: Support for curses-based tools like menuconfig
  • Toolchin Support: Download and use your required toolchain automatically through the CLI

Documentation

Complete documentation, including usage examples and API reference, see: https://ntxbuild.readthedocs.io

Requirements

  • Python 3.10+
  • NuttX source code and applications
  • Make and standard build tools required by NuttX RTOS
  • CMake supported but optional

Quick Start

Build using CLI

Navigate to your NuttX workspace and download latest NuttX and NuttX Apps using ntxbuild.

$ mkdir ~/nuttxspace
$ cd ~/nuttxspace
$ ntxbuild download

Build the simulator using the nsh defconfig.

$ ntxbuild start sim nsh
$ ntxbuild build --parallel 8

Build using Python script

Alternatively, you can automate your builds using a Python script instead of the CLI.

from pathlib import Path
from ntxbuild.build import MakeBuilder

current_dir = Path.cwd()

# Use the Makefile-based builder
# First parameter is the nuttxspace path, second is the apps directory name
builder = MakeBuilder(current_dir, "nuttx-apps")
# Initialize the board/defconfig
setup_result = builder.initialize("sim", "nsh")

# Execute the build with 10 parallel jobs
builder.build(parallel=10)

# You can now clean the environment if needed
builder.distclean()

Installing toolchains

Support for installing some of the most common toolchains is available.

$ ntxbuild toolchain install gcc-arm-none-eabi
Installing toolchain gcc-arm-none-eabi for NuttX v12.12.0
✅ Toolchain gcc-arm-none-eabi installed successfully
Installation directory: /home/user/ntxenv/toolchains
Note: Toolchains are sourced automatically during build.

Installation

Using pip

As an user, you can install this tool using pip:

pip install ntxbuild

From Source

If you are a developer or simply wants to install from source, you can clone this repository and install using pip install -e <repo>

git clone <repository-url>
cd ntxbuild
pip install -e .

Use the dev configuration to install development tools and docs to install documentation tools.

pip install -e ".[dev]"
pip install -e ".[docs]"

Contributing

Contributions are always welcome but will be subject to review and approval. Basic rules:

  • Testing and documentation are mandatory for new features
  • Depedencies should be kept to a minimal
  • Code linting using pre-commit is mandatory

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ntxbuild-0.7.0.tar.gz (57.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ntxbuild-0.7.0-py3-none-any.whl (36.6 kB view details)

Uploaded Python 3

File details

Details for the file ntxbuild-0.7.0.tar.gz.

File metadata

  • Download URL: ntxbuild-0.7.0.tar.gz
  • Upload date:
  • Size: 57.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ntxbuild-0.7.0.tar.gz
Algorithm Hash digest
SHA256 2a207bfc6aaaae532d5c715033b21e8041a056111c260b062657bf90405d26ca
MD5 6c37c90a50f0d626c410704dd707bff6
BLAKE2b-256 8c65c8ae6923efdb4ebbc8da15e2f28d3fd5423e74528b4bcee471022964c487

See more details on using hashes here.

Provenance

The following attestation bundles were made for ntxbuild-0.7.0.tar.gz:

Publisher: publish-pypi.yml on fdcavalcanti/ntxbuild

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ntxbuild-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: ntxbuild-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 36.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ntxbuild-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 66a9026df6c8d6d320a028a8eb145360c2dfd9deb0d09bed71710855d9722369
MD5 849af26e579ea637905c882dc13b9760
BLAKE2b-256 aa2781b22954fd29a9541d0f586f1e1c9f439a4f7396e8ba13c7496f195f94b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for ntxbuild-0.7.0-py3-none-any.whl:

Publisher: publish-pypi.yml on fdcavalcanti/ntxbuild

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page