这个版本没啥太大新特性,主要对c 20 modules进行了实验性支持,目前支持clang/msvc编译器,除此之外改进了不少使用体验,并且提高了一些稳定性。
另外,这个版本新增了socket.io支持以及对应协程io的调度支持,为下个版本的远程编译,以及后续的分布式编译做准备。
新特性介绍
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的相关进展见:https://github.com/xmake-io/xmake/pull/569
Hello Module
关于c modules的相关介绍我就不多说了,这边主要还是介绍下xmake下如何去构建c modules项目,我们先来看一个简单的例子:
target("hello")
set_kind("binary")
add_files("src/*.cpp", "src/*.mpp")
上面是一个支持构建c modules文件的xmake.lua描述,