- 博客(68)
- 资源 (12)
- 收藏
- 关注
原创 Xmake v2.8.6 发布,新的打包插件:XPack
在介绍新特性之前,还有个好消息告诉大家,上个版本 Xmake 被收入到了 debian 仓库,而最近 Xmake 又进入了 Fedora 官方仓库,大家可以在 Fedora 39 上,直接通过下面的命令安装 Xmake。#941。接下来,我们来介绍下,新版本带来的重量级特性:XPack。它类似于 CMake 的 CPack 命令,可以将用户工程快速打包生成各种格式的安装包。nsis: Windows 下的可执行安装包runself: shell 自编译安装包。
2023-12-26 11:28:19
869
原创 Xmake v2.8.5 发布,支持链接排序和单元测试
首先,我们有一个好消息要告诉大家,Xmake 最近进入了 Debian 的官方仓库,另外,我们新增了链接重排序和单元测试等特性。
2023-11-08 09:19:10
1457
3
原创 Xmake v2.8.3 发布,改进 Wasm 并支持 Xmake 源码调试
新版本中,我们新增了 Xmake 自身源码的断点调试支持,这可以帮助贡献者更加快速的熟悉 xmake 源码,也可以帮助用户去快速调试分析自身项目的配置脚本。另外,我们xmake-repo同时,我们重点改进了 Wasm 的构建支持,以及 Qt6 for wasm 的支持。
2023-09-26 21:30:00
605
原创 Xmake v2.8.2 发布,官方包仓库数量突破 1k
这个版本,我们新增了不少实用的 API,并且移除了一些几年前就被标记为废弃的接口,另外改进了动态库对 soname 的支持。同时,在这期间,我们迎来了一些喜人的数据,我们的xmake-repo还有,Xmake 仓库 Commits 也突破到了 12k,一直在持续快速迭代中。下面我们简单介绍下,新版本中的一些主要更新内容。
2023-08-23 09:04:11
800
原创 Xmake v2.8.1 发布,大量细节特性改进
windows 的长路径限制一直是一个大问题,嵌套层级太深的工程,在读写文件的时候,都有可能失败,这会影响 xmake 的可用性和体验。尽管,xmake 已经提供各种措施也避免这个问题,但是偶尔还是会受到一些限制。而在这个版本中,我们改进了安装器,提供一个安装选项,让用户选择性开启长路径支持。这需要管理员权限,因为它需要写注册表。用户可以自己决定,是否需要开启它。
2023-07-11 12:52:04
622
原创 Xmake v2.7.8 发布,改进包虚拟环境和构建速度
Xmake 很早就支持了包的虚拟环境管理,可以通过配置文件的方式,实现不同包环境之间的切换。我们可以通过在当前目录下,添加 xmake.lua 文件,定制化一些包配置,然后进入特定的包虚拟环境。而在新版本中,我们进一步做了改进,让 Xrepo 能够直接在命令行临时指定需要绑定的环境包列表,实现快速切换,无需任何配置。并且支持同时指定多个包环境。Xmake 会自动安装相关依赖,然后开启一个新的 shell 环境,新环境终端左边也有 prompt 提示。如果我们想退出当前环境,仅仅需要执行。
2023-04-06 11:44:48
429
原创 Xmake v2.7.7 发布,支持 Haiku 平台,改进 API 检测和 C++ Modules 支持
Xmake 现在已经完全可以在Haiku 系统上运行,并且我们对 Xmake 新增了一个 haiku 编译平台,用于在 Haiku 系统上进行代码编译。
2023-02-24 10:09:48
339
原创 Xmake v2.7.6 发布,新增 Verilog 和 C++ Modules 分发支持
通过配置,我们能够自动拉取 iverilog 工具链包,然后使用自动绑定工具链来编译工程。
2023-01-27 18:35:38
882
原创 Xmake v2.7.3 发布,包组件和 C++ 模块增量构建支持
这个新特性主要用于实现从一个 C/C++ 包中集成特定的子库,一般用于一些比较大的包中的库组件集成。因为这种包里面提供了很多的子库,但不是每个子库用户都需要,全部链接反而有可能会出问题。sfml~foo和sfml~bar会作为两个独立的包,重复安装,占用双倍的磁盘空间也会重复编译一些共用代码,影响安装效率如果一个目标同时依赖了sfml~foo和sfml~bar,会存在链接冲突。
2022-11-08 12:09:57
587
原创 Xmake v2.7.2 发布,更加智能化构建第三方库
在先前的版本中,Xmake 提供了一种 TryBuild 模式,可以在没有 xmake.lua 的情况下,使用 Xmake 尝试对 autoconf/cmake/meson 等维护的第三方项目进行直接构建。其实,也就是让 Xmake 检测到对应的构建系统后,调用 cmake 等命令来实现,但是会帮助用户简化配置操作,另外还能对接 xmake 的交叉编译工具链配置。项目代码自身存在缺陷,导致编译错误项目代码不支持当前平台构建脚本存在缺陷缺少特定的配置参数缺少依赖库,需要用户手动安装。
2022-10-10 17:34:44
833
原创 Xmake v2.7.1 发布,更好的 C++ Modules 支持
这个版本我们对 C++20 Modules 的实现进行了重构和改进,改进了模块文件的依赖图解析,新增了对 STL 和 User HeaderUnits 的支持,同时让 CMakelists/compile_commands 生成器也支持了 C++ Modules。
2022-08-26 21:06:33
757
原创 Xmake v2.6.6 发布,分布式编译和缓存支持
Xmake 是一个基于 Lua 的轻量级跨平台构建工具。它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决 C/C++ 依赖库的集成使用问题。
2022-05-25 22:48:19
263
原创 xmake v2.6.5 发布,远程编译支持
layout: post.cntitle: “xmake v2.6.5 发布,远程编译支持”tags: xmake lua C/C++ cargo rust remote-compilationcategories: xmakeXmake 是一个基于 Lua 的轻量级跨平台构建工具。它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门.
2022-04-25 14:58:53
1379
原创 Xmake 和 C/C++ 包管理
Xmake 是一个基于 Lua 的轻量级跨平台构建工具,关于 Xmake 与构建系统的介绍,我们已经在之前的文章中做了详细的介绍:C/C++ 构建系统,我用 xmake。如果大家已经对 Xmake 已经有了大概的了解,就会知道,它不仅仅是一个构建工具,还内置了对 C/C++ 包管理的支持,我们也可以把 Xmake 理解为:Xmake = Build backend + Project Generator + Package Manager经过几年的持续迭代,Xmake 对 C/C++ 包管理的支持不
2022-03-12 21:26:51
1780
原创 xmake v2.6.4 发布,大量包管理特性改进
Xmake 是一个基于 Lua 的轻量级跨平台构建工具。它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决 C/C++ 依赖库的集成使用问题。
2022-03-07 14:15:20
240
原创 xmake v2.6.3 发布,支持 vcpkg 清单模式
Xmake 是一个基于 Lua 的轻量级跨平台构建工具。它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。我们能够使用它像 Make/Ninja 那样可以直接编译项目,也可以像 CMake/Meson 那样生成工程文件,另外它还有内置的包管理系统来帮助用户解决 C/C++ 依赖库的集成使用问题。
2022-01-23 22:23:09
610
原创 xmake v2.6.2 发布,新增 Linux 内核驱动模块构建支持
Xmake 是一个基于 Lua 的轻量级跨平台构建工具。它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。
2021-12-17 23:27:16
894
原创 xmake v2.6.1 发布,使用 Lua5.4 运行时,Rust 和 C++ 混合编译支持
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。这个版本,我们正式将默认的 Luajit 运行时切换到 Lua5.4 运行时,并且新增了 Rust 和 C++ 的混合编译支持,我们也集成了 Cargo 的包管理支持。另外,我们新增了一个实用的 utils.glsl2spv 规则,用于实现对 glsl
2021-12-04 10:35:10
741
原创 xmake v2.5.8 发布,新增 Pascal/Swig 程序和 Lua53 运行时支持
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。这个版本,我们主要增加了对 Pascal 语言项目和 Swig 模块的构建支持,而对于上个版本新增的 Vala 语言支持,我们也做了进一步改进,增加了对动态库和静态库的构建支持。除此之外,xmake 现在也已经支持了可选的 Lua5.3 运行时,提供更
2021-10-09 09:52:03
184
原创 xmake v2.5.9 发布,改进 C++20 模块,并支持 Nim, Keil MDK 和 Unity Build
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。这个版本,我们新增了很多新特性,不仅增加了对 Vala 和 Metal 语言的编译支持,另外我们还改进了包依赖管理,能够像 npm/package.lock 那样支持对依赖包的锁定和更新,使得用户的项目不会受到上游包仓库的更新变动影响。此外,我们还提供
2021-08-29 11:09:17
414
原创 xmake v2.5.5 发布,支持下载集成二进制镜像包
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。2.5.5 版本中,我们继续改进远程包集成的体验,实现在云端预编译包,然后直接下载集成预编译的二进制包。这对于一些编译非常慢的包,可以极大的减少包的安装时间。另外,新版本中,我们还重新实现了新版的本地包生成方案,完全无缝支持 add_requires
2021-07-01 13:56:29
293
原创 C/C++ 构建系统,我用 xmake
XMake 是什么XMake 是一个基于 Lua 的 现代化 C/C++ 构建系统。它的语法简洁易上手,对新手友好,即使完全不会 lua 也能够快速入门,并且完全无任何依赖,轻量,跨平台。同时,它也是一个自满足的构建系统,拥有强大的包管理系统,快速的构建引擎。相比 Ninja/Scons/Make 作为 Build backend,CMake/Meson 作为 Project Generator,那么 XMake 就是这两者外加一个包管理。xmake = Build backend + Proje
2021-05-06 09:58:33
794
原创 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
2021-04-08 09:48:32
264
原创 xmake v2.5.2 发布, 支持自动拉取交叉工具链和依赖包集成
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。在 2.5.2 版本中,我们增加了一个重量级的新特性:自动拉取远程交叉编译工具链。这是用来干什么的呢,做过交叉编译以及有 C/C++ 项目移植经验的同学应该知道,折腾各种交叉编译工具链,移植编译项目是非常麻烦的一件事,需要自己下载对应工具链,并且配置工
2021-03-01 10:15:54
455
原创 LTUI v2.4 发布, 一个基于lua的跨平台字符终端UI界面库
LTUI是一个基于lua的跨平台字符终端UI界面库。此框架源于xmake中图形化菜单配置的需求,类似linux kernel的menuconf去配置编译参数,因此基于curses和lua实现了一整套跨平台的字符终端ui库。而样式风格基本上完全参照的kconfig-frontends,当然用户也可以自己定制不同的ui风格。另外,LTUI是完全跨平台的,windows上的terminal终端也是完全支持的,在windows上ltui会采用pdcurses来进行窗口绘制。Github更新内容新版本
2020-12-02 09:04:26
387
原创 Xrepo:一个现代化的跨平台 C/C++ 包管理器
xrepo 是一个基于 Xmake 的跨平台 C/C++ 包管理器。项目源码官方文档它基于 xmake 提供的运行时,但却是一个完整独立的包管理程序,相比 vcpkg/homebrew 此类包管理器,xrepo 能够同时提供更多平台和架构的 C/C++ 包。并且还支持多版本语义选择,另外它还是一个去中心化的分布式仓库,不仅仅提供了官方的 xmake-repo 仓库,还支持用户自建多个私有仓库。同时,xrepo 也支持从 vcpkg/homebrew/conan 等第三方包管理器中安装包,并提供
2020-11-25 09:49:22
846
原创 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更新内容新版本
2020-10-19 10:08:59
643
2
原创 xmake v2.3.8 发布, 新增 Intel C++/Fortran 编译器支持
xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。在这个新版本中,我们对 Intel 系列的 C++ 和 Fortran 编译器做了全平台支持,并且改进了上个版本新加的 Wasm 工具链支持,同时对 Qt SDK for Wasm 也进行了支持。另外,我们还将 luajit 升级到最新的 v2.1 版
2020-10-18 09:47:04
481
1
原创 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
2020-09-15 09:24:48
309
原创 xmake v2.3.6 发布, 新增fortran编译支持
这个版本重点对其他语言的支持做了一些改进,比如新增了fortran的编译支持,zig语言的实验性支持,另外对golang/dlang增加了第三方依赖包支持以及交叉编译支持。虽然,xmake重点关注c/c++的构建支持,但是其他语言的支持xmake也会不定期做一些改进,其主要目的并不是替代它们官方自身的构建系统,仅仅只是为了支持与c/c++的混合编译,更好的为c/c++项目服务,毕竟有些c/c++项目中,还是会偶尔调用其他语言的代码接口,比如与cuda, dlang, objc,swift, asm等语言
2020-07-29 09:35:48
303
原创 xmake从入门到精通12:通过自定义脚本实现更灵活地配置
xmake是一个基于Lua的轻量级现代化c/c++的项目构建工具,主要特点是:语法简单易上手,提供更加可读的项目维护,实现跨平台行为一致的构建体验。本文主要详细讲解下,如何通过添加自定义的脚本,在脚本域实现更加复杂灵活的定制。项目源码官方文档配置分离xmake.lua采用二八原则实现了描述域、脚本域两层分离式配置。什么是二八原则呢,简单来说,大部分项目的配置,80%的情况下,都是些基础的常规配置,比如:add_cxflags, add_links等,只有剩下不到20%的地方才需要额外做些复
2020-07-24 13:32:35
487
原创 xmake v2.3.4 发布, 更加完善的工具链支持
为了让xmake更好得支持交叉编译,这个版本我重构了整个工具链,使得工具链的切换更加的方便快捷,并且现在用户可以很方便地在xmake.lua中扩展自己的工具链。关于平台的支持上,我们新增了对*BSD系统的支持,另外,此版本还新增了一个ninja主题风格,实现类似ninja的编译进度显示,例如:项目源码官方文档新特性介绍工具链改进工具链和平台完全分离之前的版本,平台和工具链绑定的过于紧密,例如xmake f -p windows 平台,默认只能使用msvc的编译,想要切到clang或者其他
2020-06-09 17:03:00
391
原创 xmake v2.3.2 发布, 带来和ninja一样快的构建速度
这个版本重点重构优化了下内部并行构建机制,实现多个target间源文件的并行编译,以及并行link的支持,同时优化了xmake的一些内部损耗,修复影响编译速度的一些bug。通过测试对比,目前的整体构建速度基本跟ninja持平,相比cmake/make, meson/ninja都快了不少,因为它们还额外多了一步生成makefile/build.ninja的过程。另外,xmake还增加了对sdcc...
2020-03-29 16:02:37
848
原创 xmake v2.3.1 发布, 无缝对接其他构建系统
最近对xmake内部做了不少的重构来改进,并且新增了不少实用的新特性,欢迎来体验。项目源码官方文档一些新特性:一键编译其他构建系统维护的项目,实现无缝对接,并且支持交叉编译(比如autotools的快速交叉编译,见下文详述)新增xmake project -k ninja工程生成插件,支持对build.ninja构建系统文件的生成一些改进点:改进命令行参数输入,支持...
2020-02-24 21:30:41
1137
1
原创 xmake v2.2.9 发布, 新增c 20 modules的实验性支持
这个版本没啥太大新特性,主要对c 20 modules进行了实验性支持,目前支持clang/msvc编译器,除此之外改进了不少使用体验,并且提高了一些稳定性。另外,这个版本新增了socket.io支持以及对应协程io的调度支持,为下个版本的远程编译,以及后续的分布式编译做准备。项目源码官方文档新特性介绍c 20 modulesc modules已经正式纳入了c 20...
2019-12-22 21:18:23
1181
原创 xmake从入门到精通10:多个子工程目标的依赖配置
xmake是一个基于Lua的轻量级现代化c/c 的项目构建工具,主要特点是:语法简单易上手,提供更加可读的项目维护,实现跨平台行为一致的构建体验。本文主要详细讲解下,如果在一个项目中维护和生成多个目标文件的生成,以及它们之间的依赖关系设置。项目源码官方文档target到底是什么?xmake的概念定义里,一个独立的项目工程可能会有多个子工程组织在一起,每个子工程对应只能生成一个唯...
2019-12-13 09:05:53
1350
原创 xmake从入门到精通9:交叉编译详解
xmake是一个基于Lua的轻量级现代化c/c 的项目构建工具,主要特点是:语法简单易上手,提供更加可读的项目维护,实现跨平台行为一致的构建体验。除了win, linux, macOS平台,以及android, ios等移动端平台的内建构建支持,xmake也支持对各种其他工具链的交叉编译支持,本文我们将会详细介绍下如何使用xmake进行交叉编译。项目源码官方文档交叉编译工具链简介...
2019-12-08 21:00:31
2157
原创 跨平台c开发库tbox:内存库使用详解
TBOX是一个用c语言实现的跨平台开发库。针对各个平台,封装了统一的接口,简化了各类开发过程中常用操作,使你在开发过程中,更加关注实际应用的开发,而不是把时间浪费在琐碎的接口兼容性上面,并且充分利用了各个平台独有的一些特性进行优化。这个项目的目的,是为了使C开发更加的简单高效。源码仓库:https://github.com/tboox/tbox在线文档:https://tboox.io/#/...
2019-12-06 11:43:15
2087
原创 xmake从入门到精通8:切换编译模式
xmake是一个基于Lua的轻量级现代化c/c 的项目构建工具,主要特点是:语法简单易上手,提供更加可读的项目维护,实现跨平台行为一致的构建体验。本文我们会详细介绍下如何在项目构建过程中切换debug/release等常用构建模式,以及自定义其他编译模式。项目源码官方文档调试和发布模式通常,如果我们是通过xmake create命令创建的项目,会在xmake.lua里面自动添加...
2019-12-06 09:31:07
1327
原创 LTUI v1.1, 一个基于lua的跨平台字符终端UI界面库
简介LTUI是一个基于lua的跨平台字符终端UI界面库。此框架源于xmake中图形化菜单配置的需求,类似linux kernel的menuconf去配置编译参数,因此基于curses和lua实现了一整套跨平台的字符终端ui库。而样式风格基本上完全参照的kconfig-frontends,当然用户也可以自己定制不同的ui风格。安装$ luarocks install ltui编译我...
2018-11-29 09:38:36
1105
一个基于Lua的轻量级自动构建工具
2017-01-19
xmake跨平台自动构建工具
2016-01-18
vim个人配置好的开发环境,支持macosx/linux/windows
2016-01-18
syslog for mac
2013-11-01
gvim开发环境
2012-01-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人