xpack.github.io Open in urlscan Pro
2606:50c0:8003::153  Public Scan

Submitted URL: http://xpack.github.io/
Effective URL: https://xpack.github.io/
Submission: On September 11 via manual from IN — Scanned from DE

Form analysis 1 forms found in the DOM

POST https://www.paypal.com/cgi-bin/webscr

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
  <input type="hidden" name="cmd" value="_s-xclick">
  <input type="hidden" name="hosted_button_id" value="NXKFN7DJH8DJ6">
  <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" title="PayPal - The safer, easier way to pay online!" alt="Donate with PayPal button">
  <img alt="." border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>

Text Content

Toggle navigation   The xPack Project
   
 * Nav
   
   
   
 * News
   * Latest News
   * Archive
   * Tags
 * Projects
   * Eclipse Embedded CDT
   * µOS++ IIIe
 * GitHub
   * xPack
   * 3rd Party xPack Dev Tools
   * µOS++ IIIe
   * 3rd Party xPacks
   * Eclipse Embedded CDT
   
 * 

 * 
 * Getting Started
   * Overview
   * Intro (xPack 101)
   * Install prerequisites
 * Core Tools
   * Overview
   * xpm
 * 3rd Party Tools
   * Overview
   * aarch64-none-elf-gcc
   * arm-none-eabi-gcc
   * clang
   * cmake
   * gcc
   * meson-build
   * mingw-w64-gcc
   * ninja-build
   * openocd
   * qemu-arm
   * qemu-riscv
   * riscv-none-elf-gcc
   * windows-build-tools
 * Other 3rd Party Tools
   * m4
   * patchelf
   * pkg-config
   * realpath
   * sed
   * wine
 * VS Code Extensions
   * xPack C/C++ Build Tools
 * Eclipse
   * Eclipse Embedded CDT
 * Support
   * Overview
 * Developer Info
   * Overview
   * How to create a new xPack repo
   * JavaScript Style Guide
   * Links
 * Maintainer Info
   * Overview
 * Project
   * About
   * History
   * License (MIT)
   


THE XPACK REPRODUCIBLE BUILD FRAMEWORK

Tools to manage, configure and build complex, package based, multi-target
projects, in a reproducible way.


MISSION STATEMENT

In short: help developers manage dependencies and multi-configuration builds.

Based on a simple multi-version dependencies manager (built on top of npm), the
xPack project aims to provide a set of cross-platform tools to manage, configure
and build complex, modular, multi-target (multi-architecture, multi-board,
multi-toolchain) projects, in a reproducible way, with an emphasis on C/C++ and
bare-metal embedded projects.

The expected benefits are more efficient code sharing and reusing during the
life cycle of libraries and applications.


XPACKS OVERVIEW

Did you ever face the situation when building a perfectly fine and functional
project suddenly failed after upgrading the system? If so, xPacks may help you.

xPacks are general purpose versioned software projects, built on top of the
highly successful npm packages in the Node.js JavaScript ecosystem. xPacks do
not introduce a new package format, but use exactly the same format as npm
packages, and can be stored in the same repositories.

By design the xPacks tools are multi-version, which means not only that packages
can have multiple versions, but they can be installed in parallel, each
project/configuration having its own set of dependencies, thus upgrading the
system no longer impacts the project.

Note: Nix also provides reproducible builds, why not use it? The short answer
is… “because of Windows”.

Although the current focus is on C/C++, most of the tools are language agnostic
and can be used with other programming languages as well.

Note: Most of the tools are generic and do not mandate the use of a package
manager; the binary xPacks are plain archives that can be extracted manually;
the source xPacks can be linked to projects as Git submodules, etc; they all can
be used in traditional environments too, just that this requires more work.

Based on the installed content, there are currently two types of xPacks: source
and binary:

 * source xPacks are packages that install source files, generally libraries
 * binary xPacks are packages that install binary/executable files, generally
   tools used during the build process, like toolchains, builders, etc.

For more details, read the xPack 101 page.

The entire xPack project is split amongst several groups, published as separated
GitHub organisations (xpack, xpack-dev-tools, micro-os-plus, xpack-3rd-party).


XPACK CORE TOOLS

The core xPack tools are:

 * xpm - the xPack Project Manager

Planned:

 * @xpack/xpmake - the xPack Project Builder
 * @xpack/xpliquid - the xPack Liquid Template Engine
 * @xpack/xpjson - the xPack JSON Manager
 * @xpack/xpninja - the xPack Build Runner

These projects are hosted in the GitHub xpack organization.


XPACK 3RD PARTY DEVELOPMENT TOOLS

The main binary tools packed as xPacks are (in alphabetical order):

 * @xpack-dev-tools/aarch64-none-elf-gcc - the xPack GNU AArch64 Embedded GCC
   toolchain
 * @xpack-dev-tools/arm-none-eabi-gcc - the xPack GNU Arm Embedded GCC toolchain
 * @xpack-dev-tools/clang - the xPack LLVM clang
 * @xpack-dev-tools/cmake - the xPack CMake
 * @xpack-dev-tools/gcc - the xPack GNU Compiler Collection (GCC)
 * @xpack-dev-tools/meson-build - the xPack Meson Build
 * @xpack-dev-tools/mingw-w64-gcc - the xPack MinGW-w64 GCC toolchain
 * @xpack-dev-tools/ninja-build - the xPack Ninja Build
 * @xpack-dev-tools/openocd - the xPack OpenOCD
 * @xpack-dev-tools/qemu-arm - the xPack QEMU Arm
 * @xpack-dev-tools/qemu-riscv - the xPack QEMU RISC-V
 * @xpack-dev-tools/riscv-none-elf-gcc - the xPack RISC-V Embedded GCC toolchain
 * @xpack-dev-tools/windows-build-tools - the xPack Windows Build Tools

Other tools, used for building the above:

 * @xpack-dev-tools/m4 - the xPack GNU M4
 * @xpack-dev-tools/patchelf - the xPack NixOS PatchELF
 * @xpack-dev-tools/pkg-config - the xPack pkg-config
 * @xpack-dev-tools/realpath - the xPack GNU realpath
 * @xpack-dev-tools/sed - the xPack GNU sed
 * @xpack-dev-tools/wine - the xPack WineHQ

These projects are hosted in the GitHub xpack-dev-tools organization.


VISUAL STUDIO CODE

Support for VS Code is provided via the xPack extension. This extension allows
to navigate through the project xPack actions, and run them with a click of the
mouse; it can also create new projects using the xPack project templates.


ECLIPSE

Eclipse Embedded CDT can be configured to use the xPack binary tools during
builds (the Arm & RISC-V embedded toolchains) and during the debug sessions
(OpenOCD and QEMU); it also uses some xPack project templates to create Eclipse
projects.


SOURCE XPACKS


ΜOS++

Packages part of the µOS++ framework:

 * @micro-os-plus/architecture-aarch32 - A source xPack with the µOS++ AArch32
   architecture port
 * @micro-os-plus/architecture-aarch64 - A source xPack with the µOS++ AArch64
   architecture port
 * @micro-os-plus/architecture-cortexm - A source xPack with the µOS++ Arm
   Cortex-M architecture port
 * @micro-os-plus/architecture-riscv - A source xPack with the µOS++ RISC-V
   architecture port
 * @micro-os-plus/architecture-synthetic-posix - A source xPack with the µOS++
   synthetic POSIX architecture port
 * @micro-os-plus/build-helper - A source xPack to assist the µOS++ builds
 * @micro-os-plus/cmsis-os - A source xPack with the µOS++ CMSIS RTOS
   compatibility layer
 * @micro-os-plus/devices-qemu-aarch32 - A source xPack with µOS++ QEMU AArch32
   devices files
 * @micro-os-plus/devices-qemu-aarch64 - A source xPack with µOS++ QEMU AArch64
   devices files
 * @micro-os-plus/devices-qemu-cortexm - A source xPack with µOS++ QEMU Cortex-M
   devices files
 * @micro-os-plus/devices-qemu-riscv - A source xPack with µOS++ QEMU RISC-V
   devices files
 * @micro-os-plus/devices-stm32f0-extras - A source xPack with µOS++
   complementary STM32F0 files
 * @micro-os-plus/devices-stm32f4-extras - A source xPack with µOS++
   complementary STM32F4 files
 * @micro-os-plus/diag-trace - A source xPack with the µOS++ trace::printf()
   tracing infrastructure
 * @micro-os-plus/libs-c - A source xPack with µOS++ complementary C library
   functions
 * @micro-os-plus/libs-cpp - A source xPack with complementary C++ library
   functions
 * @micro-os-plus/libs-cpp-estd - A source xPack with µOS++ embedded std::
   support
 * @micro-os-plus/memory-allocators - A source xPack with µOS++ memory
   allocators
 * @micro-os-plus/micro-test-plus - A source xPack with µTest++ testing
   framework
 * @micro-os-plus/posix-io - A source xPack with POSIX I/O
 * @micro-os-plus/rtos - A source xPack with the µOS++ RTOS
 * @micro-os-plus/semihosting - A source xPack with the portable semihosting
   definitions
 * @micro-os-plus/startup - A source xPack with the µOS++ startup code for
   bare-metal platforms
 * @micro-os-plus/utils-lists - A source xPack with C++ lists support for µOS++
 * @micro-os-plus/version - A source xPack with the µOS++ version definitions


3RD PARTY

Packages with 3rd party content:

 * @xpack-3rd-party/arm-cmsis-core - A source xPack with Arm CMSIS Core-M and
   Core-A files
 * @xpack-3rd-party/boost-ut - A source xPack with Boost-UT files
 * @xpack-3rd-party/catch2 - A source xPack with Catch2 files
 * @xpack-3rd-party/googletest - A source xPack with Google Test files

Planned:

 * @xpack-3rd-party/freertos - FreeRTOS
 * @xpack-3rd-party/chan-fatfs - Chan-FatFS


XPACK BUILD BOX (XBB)

The xPack Build Box is an elaborated build environment focused on obtaining
reproducible builds while creating cross-platform standalone binaries for
GNU/Linux, macOS and Windows.


NOTIFICATIONS

To stay up-to-date with new binary tools releases, the recommended way is to
follow @xpack_project on Twitter.

Alternatively you can subscribe to this site RSS feed
https://xpack.github.io/feed.xml.

To stay current with changes to individual projects, enable watching in the
GitHub web interface for each project of interest.


LICENSE

Unless otherwise mentioned, all xPack tools with original content are provided
free of charge under the terms of the MIT License.




CREDITS

Special thanks to MacStadium, for providing the Apple Silicon development
infrastructure as part of their Open Source Program.


LET US KNOW IF YOU ENJOYED USING THIS PROJECT

If you enjoyed using this project, please let us know; here are some advices:

 * the best way to praise us would be to donate; if you want to speed up
   development and help future versions include more and more great features,
   please consider donating; any contribution, small or generous, will be highly
   appreciated;
 * star the projects you liked on GitHub (xPack or xPack Dev Tools);
 * follow the project on Twitter, to get notifications on new releases.




--------------------------------------------------------------------------------

©2023 Liviu Ionescu. All rights reserved.
Page last updated: Sep 6, 2023
Site last generated: Sep 6, 2023