# xmake-io/xmake

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/xmake-io-xmake).**

12,058 stars · 941 forks · Lua · Apache-2.0

## Links

- GitHub: https://github.com/xmake-io/xmake
- Homepage: https://xmake.io
- awesome-repositories: https://awesome-repositories.com/repository/xmake-io-xmake.md

## Topics

`build` `build-tool` `c` `c-plus-plus` `cmake` `cross-toolchains` `linux` `lua` `makefile` `objective-c` `package-manager` `tbox` `visual-studio` `wdk` `xmake`

## Description

Xmake is a cross-platform build utility and package manager designed for C and C++ development. It functions as a unified build automation tool that uses a Lua-based domain-specific language to define project targets, manage dependencies, and orchestrate compilation across multiple operating systems and hardware architectures.

The system distinguishes itself through a modular, rule-based approach to task orchestration and toolchain integration. By abstracting native build systems and compilers, it allows developers to maintain consistent project configurations while targeting diverse environments, including mobile, web, and embedded hardware. It also provides built-in support for generating project boilerplate and exporting configurations for various integrated development environments.

Beyond core compilation, the tool integrates the entire development lifecycle into a single command-line interface. This includes automated dependency resolution, incremental caching to accelerate build times, and native binary distribution. It also features real-time build visualization, integrated debugging, and the ability to execute built targets directly to verify functionality.

The software is distributed as a single portable executable, requiring no complex local installation or environment variable configuration to operate.

## Tags

### Development Tools & Productivity

- [Build Automation Tools](https://awesome-repositories.com/f/development-tools-productivity/build-automation-tools.md) — Provides a unified build automation tool for managing project compilation, dependencies, and toolchains for native applications.
- [Cross-Platform Build Systems](https://awesome-repositories.com/f/development-tools-productivity/build-automation-engines/cross-platform-build-systems.md) — Compiles source code into executable binaries and libraries across multiple operating systems and hardware architectures.
- [C++ Development Environments](https://awesome-repositories.com/f/development-tools-productivity/development-environment-management/development-environments/language-specific-tooling/c-development-environments.md) — Enables building and compiling C and C++ projects across different operating systems using a unified configuration language.
- [Package Managers](https://awesome-repositories.com/f/development-tools-productivity/package-managers.md) — Automates the acquisition, linking, and versioning of third-party libraries to ensure consistent builds.
- [Package Dependency Managers](https://awesome-repositories.com/f/development-tools-productivity/package-dependency-managers.md) — Integrates third-party libraries using a built-in package manager with multiple fallback schemes for reliable builds. ([source](https://xmake.io/guide/introduction.html))
- [Build Configuration Languages](https://awesome-repositories.com/f/development-tools-productivity/build-configuration-languages.md) — Provides a structured domain-specific language for defining project targets, settings, and custom script hooks. ([source](https://xmake.io/api/description/specification.html))
- [Build Toolchains](https://awesome-repositories.com/f/development-tools-productivity/build-toolchains.md) — Integrates specialized compilers and build environments for diverse targets through extensible rule definitions. ([source](https://xmake.io/blog/))
- [Incremental Build Caches](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-performance-optimization/build-optimizations/incremental-build-caches.md) — Stores intermediate compilation artifacts and hashes to skip redundant processing and accelerate build times.
- [Language Toolchain Integrations](https://awesome-repositories.com/f/development-tools-productivity/compilers-toolchains/language-toolchain-integrations.md) — Interfaces directly with native compilers and linkers to maintain compatibility with platform-specific toolchains.
- [Project Configuration Generators](https://awesome-repositories.com/f/development-tools-productivity/project-configuration-generators.md) — Creates boilerplate project structures and exports configuration files for various integrated development environments.
- [Build Toolchain Integrations](https://awesome-repositories.com/f/development-tools-productivity/build-toolchain-integrations.md) — Configures specialized compilers and build environments for diverse targets like mobile and embedded hardware.
- [Development Workflow Orchestrators](https://awesome-repositories.com/f/development-tools-productivity/development-workflow-orchestrators.md) — Integrates code formatting, testing, and packaging into a single unified command-line interface to streamline the development lifecycle. ([source](https://xmake.io/about/who_is_using_xmake.html))
- [Binary Packaging Tools](https://awesome-repositories.com/f/development-tools-productivity/binary-packaging-tools.md) — Packages compiled code into static archives or dynamically linked modules to support efficient distribution. ([source](https://xmake.io/examples/cpp/basic.html))
- [Project Scaffolding](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/project-scaffolding-configuration/project-scaffolding.md) — Generates boilerplate files and configuration templates for new software projects to establish standard build environments. ([source](https://xmake.io/guide/quick-start.html))
- [Single-Binary Distributions](https://awesome-repositories.com/f/development-tools-productivity/single-binary-distributions.md) — Distributes the build system as a single portable executable requiring no complex local installation. ([source](https://xmake.io/guide/quick-start.html))
- [Editor-Integrated Debugging](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/debugging-inspection-tools/editor-integrated-debugging.md) — Launches integrated system debuggers to inspect and troubleshoot project targets during development. ([source](https://xmake.io/guide/quick-start.html))
- [Project Configuration](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/project-scaffolding-configuration/project-configuration.md) — Generates native build files and IDE project configurations to ensure compatibility with external development environments. ([source](https://xmake.io/about/who_is_using_xmake.html))

### DevOps & Infrastructure

- [Build Execution](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/core-build-engines/build-infrastructure/build-execution.md) — Compiles source code into binaries across multiple platforms using a concise syntax to manage processes and parallelism. ([source](https://xmake.io/blog/))
- [Build Orchestration](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/core-build-engines/build-orchestration.md) — Integrates compilation, testing, packaging, and debugging into a single command-line workflow.
- [Dependency Management](https://awesome-repositories.com/f/devops-infrastructure/dependency-management.md) — Automates the acquisition, linking, and versioning of third-party libraries for consistent builds.
- [Native Binary Packagers](https://awesome-repositories.com/f/devops-infrastructure/native-binary-packagers.md) — Packages source code into portable executable binaries while managing complex build dependencies.

### Software Engineering & Architecture

- [Dependency Resolution Engines](https://awesome-repositories.com/f/software-engineering-architecture/dependency-resolution-engines.md) — Constructs dependency trees to resolve versions and link packages across remote repositories.
- [Build Performance Optimization](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/build-bundle-optimization/build-performance-optimization.md) — Accelerates compilation tasks by utilizing built-in parallel execution and caching mechanisms to reduce build times. ([source](https://xmake.io/zh/))

### Part of an Awesome List

- [Build Systems](https://awesome-repositories.com/f/awesome-lists/devtools/build-systems.md) — Cross-platform utility based on the Lua scripting language.

### Security & Cryptography

- [Build Orchestration Rules](https://awesome-repositories.com/f/security-cryptography/governance-policy-frameworks/security-frameworks/policy-management-systems/dynamic-rule-orchestrators/build-orchestration-rules.md) — Executes build steps by applying modular, extensible rules that define source-to-binary transformations.

### System Administration & Monitoring

- [Target Execution Runners](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/distributed-tracing-execution-analysis/execution-run-apis/target-execution-runners.md) — Runs compiled project targets directly through the interface to verify functionality during development. ([source](https://xmake.io/guide/quick-start.html))
