ソースを参照

update readme

ruki 5 ヶ月 前
コミット
b656e4a2ff
1 ファイル変更8 行追加597 行削除
  1. 8 597
      README.md

+ 8 - 597
README.md

@@ -5,14 +5,6 @@ Support this project by [becoming a sponsor](https://xmake.io/about/sponsor). Yo
 <a href="https://opencollective.com/xmake#sponsors" target="_blank"><img src="https://opencollective.com/xmake/sponsors.svg?width=890"></a>
 <a href="https://opencollective.com/xmake#backers" target="_blank"><img src="https://opencollective.com/xmake/backers.svg?width=890"></a>
 
-## Technical support
-
-You can also consider sponsoring us to get extra technical support services via the [Github sponsor program](https://github.com/sponsors/waruqi). If you do, you can get access to the [xmake-io/technical-support](https://github.com/xmake-io/technical-support) repository, which has the following bennefits:
-
-- [X] Handling Issues with higher priority
-- [X] One-to-one technical consulting service
-- [X] Review your xmake.lua and provide suggestions for improvement
-
 ## Introduction
 
 What is Xmake?
@@ -37,601 +29,20 @@ If you want to know more, please refer to: the [Documentation](https://xmake.io/
 
 The official Xmake repository can be found at [xmake-io/xmake-repo](https://github.com/xmake-io/xmake-repo).
 
-## Installation
-
-### With cURL
-
-```bash
-curl -fsSL https://xmake.io/shget.text | bash
-```
-
-### With Wget
-
-```bash
-wget https://xmake.io/shget.text -O - | bash
-```
-
-### With PowerShell
+## Run local pages
 
 ```sh
-Invoke-Expression (Invoke-Webrequest 'https://xmake.io/psget.text' -UseBasicParsing).Content
-```
-
-### Other installation methods
-
-If you don't want to use the above scripts to install Xmake, visit the [Installation Guide](https://xmake.io/#/guide/installation) for other installation methods (building from source, package managers, etc.).
-
-## Simple Project Description
-
-```lua
-target("console")
-    set_kind("binary")
-    add_files("src/*.c")
-```
-
-Creates a new target `console` of kind `binary`, and adds all the files ending in `.c` in the `src` directory.
-
-## Package dependences
-
-```lua
-add_requires("tbox 1.6.*", "zlib", "libpng ~1.6")
-```
-
-Adds a requirement of tbox v1.6, zlib (any version), and libpng v1.6.
-
-The official xmake package repository exists at: [xmake-repo](https://github.com/xmake-io/xmake-repo)
-
-<p align="center">
-<img src="https://github.com/xmake-io/xmake-docs/raw/master/assets/img/index/package.gif" width="650px" />
-</p>
-
-## Commandline interface reference
-
-The below assumes you are currently in the project's root directory.
-
-### Build a project
-
-```bash
-$ xmake
-```
-
-### Run target
-
-```bash
-$ xmake run console
-```
-
-### Debug target
-
-```bash
-$ xmake run -d console
-```
-
-### Configure platform
-
-```bash
-$ xmake f -p [windows|linux|macosx|android|iphoneos ..] -a [x86|arm64 ..] -m [debug|release]
-$ xmake
-```
-
-### Menu configuration
-
-```bash
-$ xmake f --menu
-```
-
-<p align="center">
-<img src="https://xmake.io/assets/img/index/menuconf.png" width="650px"/>
-</p>
-
-## Supported platforms
-
-* Windows (x86, x64)
-* macOS (i386, x86_64, arm64)
-* Linux (i386, x86_64, cross-toolchains ..)
-* *BSD (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)
-* MSYS (i386, x86_64)
-* MinGW (i386, x86_64, arm, arm64)
-* Cygwin (i386, x86_64)
-* Wasm (wasm32)
-* Cross (cross-toolchains ..)
-
-## Supported toolchains
-
-### IDE-Tied
-
-* Xcode
-* MSVC (Microsoft Visual C compiler)
-* Android NDK
-
-### Languages
-
-* Zig
-* Go(lang)
-* Swift
-* Nim
-* Rust
-* GCC (GNU Compiler Collection)
-* Clang
-* TinyCC
-* icc (Intel C Compiler)
-* icpc (Intel C++ Compiler)
-* icx (Intel LLVM C/C++ Compiler)
-* Clang-CL (Clang Compatability with MSVC)
-* DPC++ (Intel LLVM C++ Compiler using SYCL)
-* MinGW (GNU for Windows)
-* C51 (Keil C Compiler for the 8051)
-* GNU-RM (GNU Arm Embedded Toolchain)
-* ArmCC (Keil C Compiler for Keil MKD Version 5)
-* Circle (New C++20 compiler)
-* WASI (C/C++ WebAssembly Toolchain)
-* ArmClang (Version 6 of the Keil MDK)
-* SDCC (Small Device C Compiler)
-* GDC (GNU D Compiler)
-* LDC (LLVM D Compiler)
-* DMD (Dlang)
-* FPC (Free Pascal Programming Language Compiler)
-* GFortran (GNU Fortran Compiler)
-* Ifort (Intel Fortran Compiler)
-* CUDA (nvcc, nvc, nvc++, nvfortran)
-* Emscripten
-* LLVM
-* Icarus Verilog
-* Verilator (SystemVerilog simulator and lint system)
-
-### Assemblers
-
-* FASM
-* NASM
-* YASM
-* MASM32 (Microsoft Macro Assembler 32-bit SDK)
-
-## Supported languages
-
-* C, C++ (including cpp2)
-* Objective-C and Objective-C++
-* Swift
-* Assembly
-* Golang
-* Rust
-* Dlang
-* Fortran
-* Cuda
-* Zig
-* Vala
-* Pascal
-* Nim
-* Verilog
-* FASM
-* NASM
-* YASM
-* MASM32
-
-## 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/`compile_commands.json`)
-* 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!
-
-<p align="center">
-<img src="https://xmake.io/assets/img/index/package_manage.png" width="650px" />
-</p>
-
-### Supported package repositories
-
-* Official package repository [xmake-repo](https://github.com/xmake-io/xmake-repo) (tbox >1.6.1)
-* Official package manager [Xrepo](https://github.com/xmake-io/xrepo)
-* [User-built repositories](https://xmake.io/#/package/remote_package?id=using-self-built-private-package-repository)
-* 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/[email protected])
-* 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)
-
-### 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 `xrepo env shell`
-* 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.
-
-<p align="center">
-<img src="https://xmake.io/assets/img/index/package_arch.png" width="650px" />
-</p>
-
-## 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: [#274](https://github.com/xmake-io/xmake/issues/274)
-
-## Remote Compilation
-
-For more details see: [#622](https://github.com/xmake-io/xmake/issues/622)
-
-## Local/Remote Build Cache
-
-For more details see: [#622](https://github.com/xmake-io/xmake/issues/2371)
-
-## Benchmark
-
-Xmake's speed on is par with Ninja! The test project: [xmake-core](https://github.com/xmake-io/xmake/tree/master/core)
-
-### Multi-task parallel compilation
-
-
-| buildsystem      | Termux (8core/-j12) | buildsystem      | MacOS (8core/-j12) |
-| ------------------ | --------------------- | ------------------ | -------------------- |
-| xmake            | 24.890s             | xmake            | 12.264s            |
-| ninja            | 25.682s             | ninja            | 11.327s            |
-| cmake(gen+make)  | 5.416s+28.473s      | cmake(gen+make)  | 1.203s+14.030s     |
-| cmake(gen+ninja) | 4.458s+24.842s      | cmake(gen+ninja) | 0.988s+11.644s     |
-
-## Single task compilation
-
-
-| buildsystem      | Termux (-j1)     | buildsystem      | MacOS (-j1)    |
-| ------------------ | ------------------ | ------------------ | ---------------- |
-| xmake            | 1m57.707s        | xmake            | 39.937s        |
-| ninja            | 1m52.845s        | ninja            | 38.995s        |
-| cmake(gen+make)  | 5.416s+2m10.539s | cmake(gen+make)  | 1.203s+41.737s |
-| cmake(gen+ninja) | 4.458s+1m54.868s | cmake(gen+ninja) | 0.988s+38.022s |
-
-## More Examples
-
-### Debug and release profiles
-
-```lua
-add_rules("mode.debug", "mode.release")
-
-target("console")
-    set_kind("binary")
-    add_files("src/*.c")
-    if is_mode("debug") then
-        add_defines("DEBUG")
-    end
-```
-
-### Custom scripts
-
-```lua
-target("test")
-    set_kind("binary")
-    add_files("src/*.c")
-    after_build(function (target)
-        print("hello: %s", target:name())
-        os.exec("echo %s", target:targetfile())
-    end)
-```
-
-### Automatic integration of dependent packages
-
-Download and use packages in [xmake-repo](https://github.com/xmake-io/xmake-repo) or third-party repositories:
-
-```lua
-add_requires("tbox >1.6.1", "libuv master", "vcpkg::ffmpeg", "brew::pcre2/libpcre2-8")
-add_requires("conan::openssl/1.1.1g", {alias = "openssl", optional = true, debug = true})
-target("test")
-    set_kind("binary")
-    add_files("src/*.c")
-    add_packages("tbox", "libuv", "vcpkg::ffmpeg", "brew::pcre2/libpcre2-8", "openssl")
-```
-
-In addition, we can also use the [xrepo](https://github.com/xmake-io/xrepo) command to quickly install dependencies.
-
-### Qt QuickApp Program
-
-```lua
-target("test")
-    add_rules("qt.quickapp")
-    add_files("src/*.cpp")
-    add_files("src/qml.qrc")
-```
-
-### Cuda Program
-
-```lua
-target("test")
-    set_kind("binary")
-    add_files("src/*.cu")
-    add_cugencodes("native")
-    add_cugencodes("compute_35")
-```
-
-### WDK/UMDF Driver Program
-
-```lua
-target("echo")
-    add_rules("wdk.driver", "wdk.env.umdf")
-    add_files("driver/*.c")
-    add_files("driver/*.inx")
-    add_includedirs("exe")
-
-target("app")
-    add_rules("wdk.binary", "wdk.env.umdf")
-    add_files("exe/*.cpp")
-```
-
-For more WDK driver examples (UMDF/KMDF/WDM), please visit [WDK Program Examples](https://xmake.io/#/guide/project_examples?id=wdk-driver-program)
-
-### Darwin Applications
-
-```lua
-target("test")
-    add_rules("xcode.application")
-    add_files("src/*.m", "src/**.storyboard", "src/*.xcassets")
-    add_files("src/Info.plist")
-```
-
-### Framework and Bundle Program (Darwin)
-
-```lua
-target("test")
-    add_rules("xcode.framework") -- or xcode.bundle
-    add_files("src/*.m")
-    add_files("src/Info.plist")
-```
-
-### OpenMP Program
-
-```lua
-add_requires("libomp", {optional = true})
-target("loop")
-    set_kind("binary")
-    add_files("src/*.cpp")
-    add_rules("c++.openmp")
-    add_packages("libomp")
-```
-
-### Zig Program
-
-```lua
-target("test")
-    set_kind("binary")
-    add_files("src/main.zig")
-```
-
-### Automatically fetch remote toolchain
-
-#### fetch a special version of LLVM
-
-Require the Clang version packaged with LLM-10 to compile a project.
-
-```lua
-add_requires("llvm 10.x", {alias = "llvm-10"})
-target("test")
-    set_kind("binary")
-    add_files("src/*.c")
-    set_toolchains("llvm@llvm-10")
-```
-
-#### Fetch a cross-compilation toolchain
-
-We can also pull a specified cross-compilation toolchain in to compile the project.
-
-```lua
-add_requires("muslcc")
-target("test")
-    set_kind("binary")
-    add_files("src/*.c")
-    set_toolchains("@muslcc")
-```
-
-#### Fetch toolchain and packages
-
-We can also use the specified `muslcc` cross-compilation toolchain to compile and integrate all dependent packages.
-
-```lua
-add_requires("muslcc")
-add_requires("zlib", "libogg", {system = false})
-
-set_toolchains("@muslcc")
-
-target("test")
-    set_kind("binary")
-    add_files("src/*.c")
-    add_packages("zlib", "libogg")
-```
-
-## Plugins
-
-#### Generate IDE project file plugin(makefile, vs2002 - vs2022 .. )
-
-```bash
-$ xmake project -k vsxmake -m "debug,release" # New vsproj generator (Recommended)
-$ xmake project -k vs -m "debug,release"
-$ xmake project -k cmake
-$ xmake project -k ninja
-$ xmake project -k compile_commands
-```
-
-#### Run a custom lua script plugin
-
-```bash
-$ xmake l ./test.lua
-$ xmake l -c "print('hello xmake!')"
-$ xmake l lib.detect.find_tool gcc
-$ xmake l
-> print("hello xmake!")
-> {1, 2, 3}
-< {
-    1,
-    2,
-    3
-  }
+./scripts/run.sh
 ```
 
-To see a list of bultin plugs, please visit [Builtin plugins](https://xmake.io/#/plugin/builtin_plugins).
-
-Please download and install other plugins from the plugins repository [xmake-plugins](https://github.com/xmake-io/xmake-plugins).
-
-## IDE/Editor Integration
-
-* [xmake-vscode](https://github.com/xmake-io/xmake-vscode)
-
-<img src="https://raw.githubusercontent.com/xmake-io/xmake-vscode/master/res/problem.gif" width="650px" />
-
-* [xmake-sublime](https://github.com/xmake-io/xmake-sublime)
-
-<img src="https://raw.githubusercontent.com/xmake-io/xmake-sublime/master/res/problem.gif" width="650px" />
-
-* [xmake-idea](https://github.com/xmake-io/xmake-idea)
-
-<img src="https://raw.githubusercontent.com/xmake-io/xmake-idea/master/res/problem.gif" width="650px" />
-
-* [xmake.nvim](https://github.com/Mythos-404/xmake.nvim) (third-party, thanks [@Mythos_404](https://github.com/Mythos-404))
-
-<img src="https://raw.githubusercontent.com/Mythos-404/xmake.nvim/main/assets/XmakePreview.gif" width="650px" />
+## Build pages
 
-* [xmake.vim](https://github.com/luzhlon/xmake.vim) (third-party, thanks [@luzhlon](https://github.com/luzhlon))
-* [xmake-visualstudio](https://github.com/HelloWorld886/xmake-visualstudio) (third-party, thanks [@HelloWorld886](https://github.com/HelloWorld886))
-* [xmake-qtcreator](https://github.com/Arthapz/xmake-project-manager) (third-party, thanks [@Arthapz](https://github.com/Arthapz))
-
-### Xmake Gradle Plugin (JNI)
-
-We can use the [xmake-gradle](https://github.com/xmake-io/xmake-gradle) plugin to compile JNI libraries via gradle.
-
-```
-plugins {
-  id 'org.tboox.gradle-xmake-plugin' version '1.1.5'
-}
-
-android {
-    externalNativeBuild {
-        xmake {
-            path "jni/xmake.lua"
-        }
-    }
-}
-```
-
-The `xmakeBuild` task will be injected into the `assemble` task automatically if the `gradle-xmake-plugin` has been applied.
-
-```console
-$ ./gradlew app:assembleDebug
-> Task :nativelib:xmakeConfigureForArm64
-> Task :nativelib:xmakeBuildForArm64
->> xmake build
-[ 50%]: cache compiling.debug nativelib.cc
-[ 75%]: linking.debug libnativelib.so
-[100%]: build ok!
->> install artifacts to /Users/ruki/projects/personal/xmake-gradle/nativelib/libs/arm64-v8a
-> Task :nativelib:xmakeConfigureForArmv7
-> Task :nativelib:xmakeBuildForArmv7
->> xmake build
-[ 50%]: cache compiling.debug nativelib.cc
-[ 75%]: linking.debug libnativelib.so
-[100%]: build ok!
->> install artifacts to /Users/ruki/projects/personal/xmake-gradle/nativelib/libs/armeabi-v7a
-> Task :nativelib:preBuild
-> Task :nativelib:assemble
-> Task :app:assembleDebug
+```sh
+./scripts/build.sh
 ```
 
-## CI Integration
-
-### GitHub Action
-
-The [github-action-setup-xmake](https://github.com/xmake-io/github-action-setup-xmake) plugin for GitHub Actions can allow you to use Xmake with minimal efforts if you use GitHub Actions for your CI pipeline.
+## Deploy pages
 
-```yaml
-uses: xmake-io/github-action-setup-xmake@v1
-with:
-  xmake-version: latest
+```sh
+./docs/.vitepress/dist
 ```
-
-## Who is using Xmake?
-
-The list of people and projects who are using Xmake is available [here](https://xmake.io/#/about/who_is_using_xmake).
-
-If you are using Xmake, you are welcome to submit your information to the above list through a PR, so that other users and the developers can gauge interest.  Ihis also let users to use xmake more confidently and give us motivation to continue to maintain it.
-
-This will help the Xmake project and it's community grow stronger and expand!
-
-## Contacts
-
-* Email:[[email protected]](mailto:[email protected])
-* Homepage:[xmake.io](https://xmake.io)
-* Community
-  - [Chat on Reddit](https://www.reddit.com/r/xmake/)
-  - [Chat on Telegram](https://t.me/tbooxorg)
-  - [Chat on Discord](https://discord.gg/xmake)
-  - Chat on QQ Group: 343118190, 662147501
-* Source Code:[GitHub](https://github.com/xmake-io/xmake), [Gitee](https://gitee.com/tboox/xmake)
-* WeChat Public: tboox-os
-
-## Thanks
-
-This project exists thanks to all the people who have [contributed](CONTRIBUTING.md):
-<a href="https://github.com/xmake-io/xmake/graphs/contributors"><img src="https://opencollective.com/xmake/contributors.svg?width=890&button=false" /></a>
-
-* [TitanSnow](https://github.com/TitanSnow): Provide the xmake [logo](https://github.com/TitanSnow/ts-xmake-logo) and install scripts
-* [uael](https://github.com/uael): Provide the semantic versioning library [sv](https://github.com/uael/sv)
-* [OpportunityLiu](https://github.com/OpportunityLiu): Improve cuda, tests and ci
-* [xq144](https://github.com/xq114): Improve `xrepo env shell`, and contribute a lot of packages to the [xmake-repo](https://github.com/xmake-io/xmake-repo) repository.
-* `enderger`: Helped smooth out the edges on the English translation of the README