Post

xmake code reading

xmake的设计相较于ninja,cmake,make而言,我觉得他没有发明新的语法,都是复用lua的语法,虽然从core里看对lua做了一定的扩展。gn其实也是这样,感觉还是在遵循python3的语法,虽然也做了自己的扩展。

学习xmake的代码,目前主要收集资料,嘻嘻

1
2
3
4
5
6
7
8
9
10
./xmake/
├── actions    # 内建的一些基础task,用于基本的构建安装等操作
├── core       # xmake的核心模块,提供最底层的实现支持
├── languages  # 所有的语言相关特性支持和扩展,都在此目录下
├── modules    # 内置的扩展模块,可用`import`导入使用
├── packages   # 内置包目录,提供xmake所需的一些必须依赖包支持,例如:git等,其他第三方包放在独立xmake-repo下
├── platforms  # 平台支持目录,提供各个构建平台的配置信息和脚本
├── plugins    # 插件目录,提供一些内置的插件支持,例如:生成IDE工程,宏脚本等。。
├── scripts    # 放置一些杂七杂八的shell、perl等其他语言脚本,例如:gas-preprocessor.pl
└── templates  # 工程模板目录,提供一些`xmake create`创建工程所需的内置模板 

binary的入口是xmake.c,嘻嘻,但是其实开发用不到c的部分,都在lua部分做编译的活就好。

这样的话,其实可以理解成所有的lua都是插件,你可以快速定制一堆你想要的功能,从这种角度考虑的话,xmake的设计相较于gn和ninja这种写死了所有的规则的,灵活太多了。

xmake的文档写的很好,自己看看很容易上手

REF

1. xmake 源码架构剖析

2. xmake插件开发

3. 如何些xmake包描述

This post is licensed under CC BY 4.0 by the author.

Trending Tags