XMake 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
XMake 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
XMake 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
XMake 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
XMake 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 Apache License 2.0
操作系统 跨平台
软件类型 开源软件
所属分类 开发工具项目构建
开源组织
地区 国产
投 递 者 ruki
适用人群 未知
收录时间 2015-07-16

软件简介

xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。

虽然,简单易用是 xmake 的一大特色,但 xmake 的功能也是非常强大的,既能够像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,还有内置的包管理系统来帮助用户解决 C/C++依赖库的集成使用问题。

目前,xmake主要用于C/C++项目的构建,但是同时也支持其他native语言的构建,可以实现跟C/C++进行混合编译,同时编译速度也是非常的快,可以跟Ninja持平。

如果你想要了解更多,请参考:在线文档Github以及Gitee

课程

xmake 官方也推出了一些入门课程,带你一步步快速上手 xmake,课程列表如下:

安装

使用curl

bash <(curl -fsSL https://xmake.io/shget.text)

使用wget

bash <(wget https://xmake.io/shget.text -O -)

使用powershell

Invoke-Expression (Invoke-Webrequest 'https://xmake.io/psget.text' -UseBasicParsing).Content

简单的工程描述

包依赖描述

官方的xmake包管理仓库: xmake-repo

构建工程

$ xmake

运行目标

$ xmake run console

调试程序

$ xmake run -d console

配置平台

$ xmake f -p [windows|linux|macosx|android|iphoneos ..] -a [x86|arm64 ..] -m [debug|release]
$ xmake

图形化菜单配置

$ xmake f --menu

跟ninja一样快的构建速度

测试工程: xmake-core

多任务并行编译测试

构建系统 Termux (8core/-j12) 构建系统 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

单任务编译测试

构建系统 Termux (-j1) 构建系统 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

包依赖管理

下载和编译

架构和流程

支持的包管理仓库

  • 官方自建仓库 xmake-repo (tbox >1.6.1)
  • 官方包管理器 Xrepo
  • 用户自建仓库
  • Conan (conan::openssl/1.1.1g)
  • Vcpkg (vcpkg:ffmpeg)
  • Homebrew/Linuxbrew (brew::pcre2/libpcre2-8)
  • Pacman on archlinux/msys2 (pacman::libcurl)
  • Clib (clib::clibs/bytes@0.0.4)
  • Dub (dub::log 0.4.3)

支持平台

  • 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)
  • MSYS (i386, x86_64)
  • MinGW (i386, x86_64, arm, arm64)
  • Cygwin (i386, x86_64)
  • Wasm (wasm32)
  • Cross (cross-toolchains ..)

支持工具链

$ xmake show -l toolchains
xcode         Xcode IDE
vs            VisualStudio IDE
yasm          The Yasm Modular Assembler
clang         A C language family frontend for LLVM
go            Go Programming Language Compiler
dlang         D Programming Language Compiler
gfortran      GNU Fortran Programming Language Compiler
zig           Zig Programming Language Compiler
sdcc          Small Device C Compiler
cuda          CUDA Toolkit
ndk           Android NDK
rust          Rust Programming Language Compiler
llvm          A collection of modular and reusable compiler and toolchain technologies
cross         Common cross compilation toolchain
nasm          NASM Assembler
gcc           GNU Compiler Collection
mingw         Minimalist GNU for Windows
gnu-rm        GNU Arm Embedded Toolchain
envs          Environment variables toolchain
fasm          Flat Assembler
tinyc         Tiny C Compiler
emcc          A toolchain for compiling to asm.js and WebAssembly
icc           Intel C/C++ Compiler
ifort         Intel Fortran Compiler
musl          The musl-based cross-compilation toolchains

支持语言

  • C/C++
  • Objc/Objc++
  • Swift
  • Assembly
  • Golang
  • Rust
  • Dlang
  • Fortran
  • Cuda
  • Zig (Experimental)

支持特性

  • 简洁的配置语法
  • 直接构建支持,不依赖任何第三方后端 make 工具
  • 跨平台支持,不同平台可方便快速地切换
  • 交叉编译支持,智能分析交叉工具链信息
  • 多任务并行编译支持
  • C++20 Module-TS 支持
  • 支持跨平台的 C/C++ 依赖包快速集成
  • 自建分布式包仓库,第三方包仓库支持
  • 多语言混合编译支持
  • 灵活的 lua 脚本,丰富的扩展模块,可实现高度定制化
  • 丰富的插件支持,内置 vs/cmake/makefile/compile_commands 等生成插件
  • REPL 交互式执行支持
  • 增量编译支持,头文件依赖自动分析
  • 工具链的快速切换、定制化支持

工程类型

  • 静态库程序
  • 动态库类型
  • 控制台程序
  • Cuda程序
  • Qt应用程序
  • WDK驱动程序
  • WinSDK应用程序
  • MFC应用程序
  • iOS/MacOS应用程序
  • Framework和Bundle程序(iOS/MacOS)

更多例子

Debug 和 Release模式

add_rules("mode.debug", "mode.release")

target("console")
    set_kind("binary")
    add_files("src/*.c")
    if is_mode("debug") then
        add_defines("DEBUG")
    end

自定义脚本

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)

依赖包自动集成

下载和使用在 xmake-repo 和第三方包仓库的依赖包:

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

另外,我们也可以使用 xrepo 命令来快速安装依赖包。

Qt QuickApp 应用程序

target("test")
    add_rules("qt.quickapp")
    add_files("src/*.cpp")
    add_files("src/qml.qrc")

Cuda 程序

target("test")
    set_kind("binary")
    add_files("src/*.cu")
    add_cugencodes("native")
    add_cugencodes("compute_35")

WDK/UMDF 驱动程序

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

更多WDK驱动程序例子(umdf/kmdf/wdm),见:WDK工程例子

iOS/MacOS 应用程序

target("test")
    add_rules("xcode.application")
    add_files("src/*.m", "src/**.storyboard", "src/*.xcassets")
    add_files("src/Info.plist")

Framework 和 Bundle 程序(iOS/MacOS)

target("test")
    add_rules("xcode.framework") -- 或者 xcode.bundle
    add_files("src/*.m")
    add_files("src/Info.plist")

OpenMP 程序

add_requires("libomp", {optional = true})
target("loop")
    set_kind("binary")
    add_files("src/*.cpp")
    add_rules("c++.openmp")
    add_packages("libomp")

插件

生成IDE工程文件插件(makefile, vs2002 - vs2019, ...)

$ xmake project -k vsxmake -m "debug;release" # 新版vs工程生成插件(推荐)
$ xmake project -k vs -m "debug;release"
$ xmake project -k cmake
$ xmake project -k ninja
$ xmake project -k compile_commands

加载自定义lua脚本插件

$ 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
  }

更多内置插件见相关文档:内置插件文档

其他扩展插件,请到插件仓库进行下载安装: xmake-plugins.

IDE和编辑器插件

XMake Gradle插件 (JNI)

我们也可以在Gradle中使用xmake-gradle插件来集成编译JNI库

plugins {
  id 'org.tboox.gradle-xmake-plugin' version '1.0.6'
}

android {
    externalNativeBuild {
        xmake {
            path "jni/xmake.lua"
        }
    }
}

gradle-xmake-plugin插件被应用生效后,xmakeBuild任务会自动注入到现有的assemble任务中去,自动执行jni库编译和集成。

$ ./gradlew app:assembleDebug
> Task :nativelib:xmakeConfigureForArm64
> Task :nativelib:xmakeBuildForArm64
>> xmake build
[ 50%]: ccache 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%]: ccache 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
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (10)

加载中
ruki软件作者
该评论暂时无法显示,详情咨询 QQ 群:912889742
ruki软件作者
该评论暂时无法显示,详情咨询 QQ 群:912889742
_en
6
2020/12/25 10:14
回复
举报
ruki软件作者
该评论暂时无法显示,详情咨询 QQ 群:912889742
ruki软件作者
#XMake# Xmake Discord 社区上线 https://discord.gg/XXRp26A4Gr,欢迎加入
2020/12/10 08:14
回复
举报
New Bee 的东西, 支持~
2020/11/12 11:47
回复
举报
ruki软件作者
该评论暂时无法显示,详情咨询 QQ 群:912889742
ruki软件作者
该评论暂时无法显示,详情咨询 QQ 群:912889742
ruki软件作者
该评论暂时无法显示,详情咨询 QQ 群:912889742
ruki软件作者
该评论暂时无法显示,详情咨询 QQ 群:912889742
更多评论
发表了资讯
11/01 09:35

xmake v2.5.9 发布,改进 C++20 模块, 支持 Nim, Unity Build

xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 这个版本,我们增加了大量重量级的新特性,例如:Nim 语言项目的构建支持,Keil MDK,Circle 和 Wasi 工具链支持。 另外,我们对 C++20 Modules 进行了大改进,不仅支持最新 gcc-11, clang 和 msvc 编...

1
3
发表了资讯
10/09 07:58

xmake v2.5.8 发布,新增 Pascal/Swig 程序和 Lua53 运行时支持

xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 这个版本,我们主要增加了对 Pascal 语言项目和 Swig 模块的构建支持,而对于上个版本新增的 Vala 语言支持,我们也做了进一步改进,增加了对动态库和静态库的构建支持。 除此之外,xmake 现在也已经支...

6
1
发表了资讯
08/30 09:28

xmake v2.5.7 发布,包依赖锁定和 Vala/Metal 语言编译支持

xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 这个版本,我们新增了很多新特性,不仅增加了对 Vala 和 Metal 语言的编译支持,另外我们还改进了包依赖管理,能够像 npm/package.lock 那样支持对依赖包的锁定和更新,使得用户的项目不会受到上游包仓...

0
1
发表了资讯
07/30 10:30

xmake v2.5.6 发布,改进预编译二进制镜像包兼容性

xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 这是一个稳定性修复版本,主要修复和改进了一些跟预编译二进制包相关的兼容性问题。另外新增了一些实用的接口来设置默认的编译平台、架构和模式,以及允许的编译平台、架构列表等等。 项目源码 官方文...

0
1
发表了资讯
07/01 13:31

xmake v2.5.5 发布,支持下载集成二进制镜像包

xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 2.5.5 版本中,我们继续改进远程包集成的体验,实现在云端预编译包,然后直接下载集成预编译的二进制包。这对于一些编译非常慢的包,可以极大的减少包的安装时间。 另外,新版本中,我们还重新实现了新...

1
1
发表了资讯
07/01 10:49

XMake v2.5.5 发布,基于 Lua 的跨平台构建工具

XMake v2.5.5 已经发布,基于 Lua 的跨平台构建工具。 此版本更新内容包括: 新特性 #1421: 针对 target 目标,增加目标文件名的前缀,后缀和扩展名设置接口。 #1422: 支持从 vcpkg, conan 中搜索包 #1424: 设置 binary 作为默认的 target 目标类型 #1140: 支持安装时候,手动选择从第三包包管理器安装包 #1339: 改进 xmake package 去产生新的本地包格式,无缝集成 add_requires,并且新增生成远程包支持 添加 appletvos 编译平...

4
1
发表了资讯
05/17 13:29

xmake v2.5.4 发布,支持 apt/portage 包管理器

xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 在 2.5.4 版本中,我们新增了对 Apt、Portage 这两个包管理器的支持,在 Ubuntu/Gentoo 上我们也可以使用 add_requires 可以快速集成它们提供的包。 并且我们也改进支持了 Vcpkg 包管理器的支持,新增...

3
0
发表了资讯
04/08 09:34

xmake v2.5.3 发布,支持构建 Linux bpf 程序和 Conda 包集成

xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 在 2.5.3 版本,我们新增了对 linux bpf 程序的构建支持,并且同时支持 android bpf 程序的构建。 尽管 bpf 对 编译工具链有一定的要求,比如需要较新的 llvm/clang 和 android ndk 工具链,但是 xmak...

5
3
发表了资讯
03/29 10:26

xmake 社区发起开源 C/C++ 库征集

xmake 一直在努力解决 C/C++ 包依赖管理和使用问题,为了方便 C/C++ 开发者能够快速集成使用 C/C++ 依赖包,我们在 xmake-repo 包仓库中已经维护了将近 300 个常用包 尽管还远远不如 vcpkg, conan 提供的包多,但是我们提供了更加强大的特性支持:版本语义支持,交叉编译包支持,更多的平台支持,定制化包配置编译安装,编译工具链包远程拉取支持等等 为了更加丰富我们的包仓库,提供更多优质的 C/C++ 库给用户快速集成和使用,...

18
8
发表于软件架构专区
03/01 10:01

xmake v2.5.2 发布, 支持自动拉取交叉工具链和依赖包集成

xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 在 2.5.2 版本中,我们增加了一个重量级的新特性:自动拉取远程交叉编译工具链。 这是用来干什么的呢,做过交叉编译以及有 C/C++ 项目移植经验的同学应该知道,折腾各种交叉编译工具链,移植编译项目是...

2
3
发表于开发技能专区
01/22 09:07

xmake v2.5.1 发布,支持 Apple Silicon 并改进 C/C++ 包依赖管理

xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 这是 xmake 在今年的首个版本,也是完全适配支持 Apple Silicon (macOS ARM) 设备的首个版本。 这个版本,我们主要改进了对 C/C++ 依赖包的集成支持,更加的稳定,并且能够更加灵活的实现定制化配置编...

4
2
发表于开发技能专区
2020/11/26 10:36

xmake v2.3.9 发布, 新增独立 Xrepo C/C++ 包管理器

xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 在这个新版本中,我们重点改进了 xmake 的依赖包管理,新增了 Archlinux 和 MSYS2/Mingw 下 的 pacman 包管理器支持,另外我们进一步丰富了 xmake 的官方包仓库 xmake-repo,新增了 50 多个常用的 C/...

2
2
发表于大前端专区
2020/10/19 10:05

LTUI v2.2 发布,一个基于 Lua 的跨平台字符终端 UI 界面库

LTUI是一个基于lua的跨平台字符终端UI界面库。 此框架源于xmake中图形化菜单配置的需求,类似linux kernel的menuconf去配置编译参数,因此基于curses和lua实现了一整套跨平台的字符终端ui库。 而样式风格基本上完全参照的kconfig-frontends,当然用户也可以自己定制不同的ui风格。 另外,LTUI是完全跨平台的,windows上的terminal终端也是完全支持的,在windows上ltui会采用pdcurses来进行窗口绘制。 Github 更新内容 新版本中,...

3
13
发表于软件架构专区
2020/10/18 08:54

xmake v2.3.8 发布, 新增 Intel C++/Fortran 编译器支持

xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 在这个新版本中,我们对 Intel 系列的 C++ 和 Fortran 编译器做了全平台支持,并且改进了上个版本新加的 Wasm 工具链支持,同时对 Qt SDK for Wasm 也进行了支持。 另外,我们还将 luajit 升级到最新的...

4
5
发表于服务端专区
2020/09/15 09:20

xmake v2.3.7 发布,新增 tinyc 和 emscripten 工具链支持

xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。 随着 xmake 最近几年不断的迭代发展,xmake 已经在 Github 收获 2.9K star,300+ fork,30+ 贡献者,并且处理了 900+ issues,5400+ Commits,活跃用户也在不断增长。 现在,xmake v2.3.7 版本发布了,...

3
2
发表于服务端专区
2020/07/29 09:28

xmake v2.3.6 发布, 新增 fortran 编译支持

这个版本重点对其他语言的支持做了一些改进,比如新增了fortran的编译支持,zig语言的实验性支持,另外对golang/dlang增加了第三方依赖包支持以及交叉编译支持。 虽然,xmake重点关注c/c++的构建支持,但是其他语言的支持xmake也会不定期做一些改进,其主要目的并不是替代它们官方自身的构建系统,仅仅只是为了支持与c/c++的混合编译,更好的为c/c++项目服务, 毕竟有些c/c++项目中,还是会偶尔调用其他语言的代码接口,比如与c...

1
0
发表于开发技能专区
2020/06/29 09:44

xmake v2.3.5 发布, 多工具链灵活切换支持

这个版本主要工作还是继续改进对工具链的支持,上个版本虽然通过重构实现了模块化的工具链扩展,但是对于一次编译想要灵活地在交叉工具链/Host工具链上切换编译,还不能很好的支持,因此这个版本重点改进了这块的支持力度。 另外,此版本还对使用add_requires集成的远程依赖包下载慢的问题做了改进,增加了代理设置、本地包检索复用的支持来改善此问题。当然,最好的方式还是搞个国内的cdn来加速下载,但是这个成本过高,暂时就...

0
2
发表于软件架构专区
2020/06/08 09:51

xmake v2.3.4 发布,更加完善的工具链支持

为了让xmake更好得支持交叉编译,这个版本我重构了整个工具链,使得工具链的切换更加的方便快捷,并且现在用户可以很方便地在xmake.lua中扩展自己的工具链。 关于平台的支持上,我们新增了对*BSD系统的支持,另外,此版本还新增了一个ninja主题风格,实现类似ninja的编译进度显示,例如: 项目源码 官方文档 新特性介绍 工具链改进 工具链和平台完全分离 之前的版本,平台和工具链绑定的过于紧密,例如xmake f -p windows 平台,...

6
6
发表于DevOps专区
2020/04/28 09:03

xmake v2.3.3 发布,新增 iOS/MacOS Framework 和 App 构建支持

xmake是一个基于lua的现代化c/c++构建工具。 这个版本主要是对内置的构建规则做了些扩展,新增了相关规则来实现对iOS/MacOS相关App应用程序项目、Framework和Bundle程序的构建支持。 并且支持App签名,也提供了相关工程模板来快速创建应用程序,另外此版本还对Qt的开发构建也做了不少改进,增加对Qt5.14.0新版本sdk的支持,对android的打包部署支持上也改进了不少。 处理之外,xmake还提供了一个特殊的xmake.cli构建rule,通过集...

5
4
发表于开发技能专区
2020/03/29 10:38

xmake v2.3.2 发布, 带来和 ninja 一样快的构建速度

这个版本重点重构优化了下内部并行构建机制,实现多个 target 间源文件的并行编译,以及并行 link 的支持,同时优化了 xmake 的一些内部损耗,修复影响编译速度的一些 bug 。 通过测试对比,目前的整体构建速度基本跟 ninja 持平,相比 cmake/make, meson/ninja 都快了不少,因为它们还额外多了一步生成 makefile/build.ninja 的过程。 另外,xmake 还增加了对 sdcc 编译工具链的支持。 项目源码 官方文档 一些优化点 多个 targ...

3
10
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于服务端专区
2016/08/30 10:10

xmake v2.0.4 发布!

新特性 在xmake.lua中添加原生shell支持,例如:add_ldflags("$(shell pkg-config --libs sqlite3)") 编译windows目标程序,默认默认启用pdb符号文件 在windows上添加调试器支持(vsjitdebugger, ollydbg, windbg … ) 添加getenv接口到xmake.lua的全局作用域中 添加生成vstudio工程插件(支持:vs2002 - vs2015) 为option添加set_default接口 改进 增强内建变量的处理 支持字符串类型的选项option设置 Bugs修复 修复在linux下检...

0
0
发表了博客
2019/09/22 21:19

使用xmake构建c++20 modules

c++ modules已经正式纳入了c++20草案,msvc和clang也已经基本实现了对[modules-ts](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1103r3.pdf)的支持,随着c++20的脚步离我们越来越近,xmake也开始对c++modules提前做好了支持。 目前xmake已经完全支持了msvc/clang的modules-ts构建实现,而对于gcc,由于它的cxx-modules分支还在开发中,还没有正式进入master,我看了下里面的changelog,相关flags还在不断变动,感...

0
0
发表于DevOps专区
2020/04/17 12:14

xmake-gradle 首发, 集成xmake快速构建Android JNI程序

xmake-gradle是一个无缝整合 xmake 的 gradle 插件。 目前在 gradle 中做 android jni 相关集成开发,有两种方式,通过 ndkBuild 或者 CMake 来支持,gradle 也内置了这两工具的集成 但是维护 Android.mk 还是非常繁琐的,尤其是对于大型项目会比较痛苦,而 cmake 的 dsl 语法不够简洁直观,我个人也不是很喜欢,因此我先前整了 xmake 来实现跨平台开发,优势就是: 简单,快速,对新手友好,另外功能也很强大,具体有那些功能,...

0
0
发表于运维专区
2017/10/12 13:18

xmake-vscode插件开发过程记录

最近打算给xmake写一些IDE和编辑器的集成插件,发现vscode的编辑器插件比较容易上手的,就先研究了下vscode的插件开发流程,并且完成了xmake-vscode插件的开发。 我们先来看几张最后的效果图: 语法高亮和自动补全 状态栏 要实现上面的效果,其实并不复杂,首先我们先来简单介绍下,vscode的插件开发的基本流程: 安装插件开发环境 安装cnpm 由于国内环境比较复杂,直接用npm安装也许很慢或者访问不稳定,因此这里先安装了cnpm去...

0
0
发表于开发技能专区
2019/09/22 12:02

使用xmake构建c++20 modules

c++ modules已经正式纳入了c++20草案,msvc和clang也已经基本实现了对modules-ts的支持,随着c++20的脚步离我们越来越近,xmake也开始对c++modules提前做好了支持。 目前xmake已经完全支持了msvc/clang的modules-ts构建实现,而对于gcc,由于它的cxx-modules分支还在开发中,还没有正式进入master,我看了下里面的changelog,相关flags还在不断变动,感觉还没稳定下来,因此这里暂时还没对其进行支持。 关于xmake对c++modules的...

0
0
发表于DevOps专区
2020/12/09 23:56

XMake Discord 社区频道上线

XMake Discord 社区频道上线 最近,我们在 Discord 上新创建了 xmake 技术交流频道,欢迎大家加入。 服务器邀请链接:https://discord.gg/XXRp26A4Gr Discord (discord.com) 是一个非常不错的全端即时交流平台,我们在上面创建了中文和英文两个不同的频道,界面大概长这样。 另外,在 xmake 支持 Zig Language 项目编译的过程中,我们也有幸邀请到了 Zig 作者 Andrewrk 进入我们的社区频道。 其他平台社区 另外,xmake 还有在其...

0
0
发表于DevOps专区
2018/06/08 10:31

xmake进阶之简化你的构建描述

xmake的初衷就是为了让用户能够用最简单直接的方式去描述工程,提供跨平台项目构建,因此,简洁,灵活 是xmake.lua的核心设计思想。 通过之前的那篇文章:xmake入门,构建项目原来可以如此简单,我们对如何使用xmake去构建项目有了大概的了解,并且能够编写一些简单的xmake.lua去描述项目,例如: target("test")    set_kind("binary")    add_files("src/*.c") 但是平常我们实际的项目维护,不可能这么简单,会有各种各样...

0
0
发表于DevOps专区
2020/10/09 11:32

xmake 官方入门课程上线: Xmake 带你轻松构建 C/C++ 项目

实验楼课程 Xmake 带你轻松构建 C/C++ 项目 是我们在实验楼上推出的一门 xmake 入门和进阶课程(收费),以边学边做实验的方式快速学习 xmake 的使用。 通过此处优惠码购买可享 9 折优惠:NYFbmf3X xmake介绍 Xmake 是一个基于 Lua 的轻量级跨平台 C/C++ 构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt 而言,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门 C/C++ 项目的编译开发,提供一...

0
0
发表于开发技能专区
2019/11/09 23:35

xmake从入门到精通1:安装和更新

xmake是一个基于Lua的轻量级现代化c/c++的项目构建工具,主要特点是:语法简单易上手,提供更加可读的项目维护,实现跨平台行为一致的构建体验。 本文主要详细讲解xmake在各个平台下的安装过程。 项目源码 官方文档 安装Master版本 通常情况下我们只需要通过一键安装脚本即可完成安装。 使用curl bash <(curl -fsSL https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh) 使用wget bash <(wget https://r...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于运维专区
2019/10/26 12:25

xmake update 不工作

我使用mac执行以下操作: 1. brew install xmake (安装成功,显示安装了2.2.5) 2.xmake update (更新成功,显示更新到2.2.8) Jamess-MacBook-Pro:~ jamesmei$ xmake update update version: v2.2.8 .. => download https://gitee.com/tboox/xmake.git .. ok => install to ~/.local/bin .. ok xmake v2.2.5.201904020640, A cross-platform build utility based on Lua Copyright (C) 2015-2019 Ruki Wang, tboox.org, xmake....

1
0
发表了问答
2016/01/01 16:29

如何将自己的开源软件提交到ubuntu等各大国外源中收录

自己有几个工具类的开源项目,想提交到 ubuntu等国外的官方源中去,这样以后提供给别人下载安装也方便了。。 但是不知道这个申请流程是怎样的,还是需要满足什么条件才行? 有谁的软件被ubuntu源收录过哈,能否给点建议。。谢谢 本人的项目地址: 用于跨平台构建的,类似cmake的一个工具 https://github.com/waruqi/xmake

2
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
10 评论
277 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部