AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing xmake-io/xmake in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewxmake A cross-platform build utility based on Lua Modern C/C++ build tool: Simple, Fast, Powerful dependency package integration Support this project Support this project by becoming a sponsor. Your logo will show up here with a link to your website. 🙏 Introduction (ä¸ć–‡) What is Xmake? • Xmake is a cross-platform build utility based on the Lua scripting language. • Xmake is very lightweight and has no dependencies outside of the standard library. • Uses the file to maintain project builds with a simple and readable syntax. Xmake can be used to directly build source code (like with Make or Ninja), or it can generate project source files like CMake or Meson. It also has a *built-in* package management system to help users integrate C/C++ dependencies. Although less precise, one can still understand Xmake in the following way: If you want to know more, please refer to the Documentation, GitHub or Gitee. You are also welcome to join our community. The official Xmake repository can be found at xmake-io/xmake-repo. Installation With cURL With Wget With PowerShell Other installation methods If you don't want to use the above scripts to install Xmake, visit the Installation Guide for other installation methods (building from source, package managers, etc.). Simple Project Description Creates a new target of kind , and adds all the files ending in in the directory. Package dependencies Adds a requirement of tbox v1.6, zlib (any version), and libpng v1.6. The official xmake package repository exists at: xmake-repo Command line interface reference The below assumes you are currently in the project's root directory. Build a project Run target Debug target Run test Configure platform Menu configuration Supported platforms • Windows (x86, x64, arm, arm64, arm64ec) • macOS (i386, x86_64, arm64) • Linux (i386, x86_64, arm, arm64, riscv, mips, 390x, sh4 ...) • FreeBSD (i386, x86_64) • NetBSD (i386, x86_64) • OpenBSD (i386, x86_64) • DragonflyBSD (i386, x86_64) • Solaris (i386, x86_64) • Android (x86, x86_64, armeabi, armeabi-v7a, arm64-v8a) • iOS (armv7, armv7s, arm64, i386, x86_64) • WatchOS (armv7k, i386) • AppleTVOS (armv7, arm64, i386, x86_64) • AppleXROS (arm64, x86_64) • MSYS (i386, x86_64) • MinGW (i386, x86_64, arm, arm64) • Cygwin (i386, x86_64) • Wasm (wasm32, wasm64) • Haiku (i386, x86_64) • Harmony (x86_64, armeabi-v7a, arm64-v8a) • Cross (cross-toolchains ..) Supported toolchains Supported languages • C and C++ • Objective-C and Objective-C++ • Swift • Assembly • Golang • Rust • Dlang • Fortran • Cuda • Zig • Vala • Pascal • Nim • Verilog • FASM • NASM • YASM • MASM32 • Cppfront • Kotlin • C# Features Xmake exhibits: • Simple yet flexible configuration grammar. • Quick, dependency-free installation. • Easy compilation for most all supported platforms. • Supports cross-compilation with intelligent analysis of cross toolchain information. • Extremely fast parallel compilation support. • Supports C++ modules (new in C++20). • Supports cross-platform C/C++ dependencies with built-in package manager. • Multi-language compilation support including mixed-language projects. • Rich plug-in support with various project generators (ex. Visual Studio/Makefiles/CMake/ ) • REPL interactive execution support • Incremental compilation support with automatic analysis of header files • Built-in toolchain management • A large number of expansion modules • Remote compilation support • Distributed compilation support • Local and remote build cache support Supported Project Types Xmake supports the below types of projects: • Static libraries • Shared libraries • Console/CLI applications • CUDA programs • Qt applications • WDK drivers (umdf/kmdf/wdm) • WinSDK applications • MFC applications • Darwin applications (with metal support) • Frameworks and bundles (in Darwin) • SWIG modules (Lua, Python, ...) • LuaRocks modules • Protobuf programs • Lex/Yacc programs • Linux kernel modules Package management Download and build Xmake can automatically fetch and install dependencies! Supported package repositories • Official package repository xmake-repo (tbox >1.6.1) • Official package manager Xrepo • User-built repositories • Conan (conan::openssl/1.1.1g) • Conda (conda::libpng 1.3.67) • Vcpkg (vcpkg:ffmpeg) • Homebrew/Linuxbrew (brew::pcre2/libpcre2-8) • Pacman on archlinux/msys2 (pacman::libcurl) • Apt on ubuntu/debian (apt::zlib1g-dev) • Clib (clib::clibs/bytes@0.0.4) • Dub (dub::log 0.4.3) • Portage on Gentoo/Linux (portage::libhandy) • Nimble for nimlang (nimble::zip >1.3) • Cargo for rust (cargo::base64 0.13.0) • Zypper on openSUSE (zypper::libsfml2 2.5) Package management features • The official repository provides nearly 500+ packages with simple compilation on all supported platforms • Full platform package support, support for cross-compiled dependent packages • Support package virtual environment using • Precompiled package acceleration for Windows (NT) • Support self-built package repositories and private repository deployment • Third-party package repository support for repositories such as: vcpkg, conan, conda, etc. • Supports automatic pulling of remote toolchains • Supports dependency version locking Processing architecture Below is a diagram showing roughly the architecture of Xmake, and thus how it functions. Distributed Compilation • [X] Cross-platform support. • [X] Support for MSVC, Clang, GCC and other cross-compilation toolchains. • [X] Support for building for Android, Linux, Windows NT, and Darwin hosts. • [X] No dependencies other than the compilation toolchain. • [X] Support for build server load balancing scheduling. • [X] Support for real time compressed transfer of large files (lz4). • [X] Almost zero configuration cost, no shared filesystem required, for convenience and security. For more details see: Distributed Compilation Remote Compilation For more details see: Remote Compilation Local/Remote Build Cache For more details see: Build Cache…