Skip to main content

NuttX Build System Assistant

Project description

ntxbuild

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

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

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.

Python 3.8+ Linux

Features

  • Environment Management: Automatic NuttX workspace detection and configuration
  • Parallel Builds: Support for multi-threaded builds with isolated workspaces
  • Real-time Output: Live build progress with proper ANSI escape sequence handling
  • Configuration Management: Kconfig integration for easy system configuration
  • Build Cleanup: Automated artifact management and cleanup
  • Persistent Settings: Environment configuration saved in .ntxenv files
  • Interactive Tools: Support for curses-based tools like menuconfig

Requirements

  • Python 3.9+
  • NuttX source code and applications
  • Make and standard build tools required by NuttX RTOS

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]"

Quick Start

1. Initialize Your NuttX Environment

# Navigate to your NuttX workspace
cd /path/to/your/nuttx-workspace

# Initialize with board and defconfig
ntxbuild start sim nsh

2. Build Your Project

# Build with default settings
ntxbuild build

# Or, build with parallel jobs
ntxbuild build --parallel 8

3. Configure Your System

# Run menuconfig
ntxbuild menuconfig

# Set Kconfig values
ntxbuild kconfig --set-value CONFIG_DEBUG=y
ntxbuild kconfig --set-str CONFIG_APP_NAME="MyApp"

🏗️ Project Structure

your-nuttx-workspace/
├── nuttx/                   # NuttX kernel source
├── nuttx-apps/              # NuttX applications
├── .ntxenv                  # Environment configuration (auto-generated)

🔧 Environment Configuration

The .ntxenv file stores your workspace configuration:

  • NuttX directory name
  • Apps directory name
  • Workspace path

This allows ntxbuild to remember your setup between sessions.

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.2.0.tar.gz (29.1 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.2.0-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ntxbuild-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f6b264a63ac66578bb8edd3ed96638358664580e93a0bc766b30298c54d66dda
MD5 2fcde27a980dfead261d56c1881281e6
BLAKE2b-256 b7dca2aff30caeb47276acfa0f524f07e81355f2eb990a80d247a0aadb259ad6

See more details on using hashes here.

Provenance

The following attestation bundles were made for ntxbuild-0.2.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.2.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for ntxbuild-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2baf63b364f5bcf08e94527cc2b89173e6af13b375aafba9ee7a124d10eb9a3a
MD5 f7f139340340780c5a37bef42b7c161b
BLAKE2b-256 e4cab19092774f25d5ba56463deecd8f19d4b59c6e0eb0972b9a1dc52256327f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ntxbuild-0.2.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