xmake 的工程描述文件 xmake.lua 虽然基于 lua 语法,但是为了使得更加方便简洁得编写项目构建逻辑,xmake 对其进行了一层封装,使得编写 xmake.lua 不会像编写 makefile 那样繁琐,甚至比 cmake 的 CMakelists.txt 的 DSL 语法还更加的简洁直观,学习成本更低。
基本上写个简单的工程构建描述,只需三行就能完整构建一个 C/C++ 工程,例如。
target("test")
set_kind("binary")
add_files("src/*.c")
配置分离
xmake.lua 采用二八原则实现了描述域、脚本域两层分离式配置。
什么是二八原则呢,简单来说,大部分项目的配置,80% 的情况下,都是些基础的常规配置,比如:add_cxflags、add_links 等,只有剩下不到 20% 的地方才需要额外编写一些复杂的逻辑脚本来满足一些特殊的配置需求。
而这剩余的 20% 配置通常比较复杂,如果直接充斥在整个 xmake.lua 里面,会把整个项目的配置弄的很混乱,不具有良好的可读性。
因此,xmake 通过描述域、脚本域两种不同的配置方式,来隔离 80% 的简单配置以及 20% 的复杂配置,使得整个 xmake.lua 看起来非常的清晰直观,可读性和可维护性都达到最佳。
我们可以通过下图大致了解哪些配置区域是描述域配置,哪些是脚本域。
也可以通过下面描述的特征来快速区分:
- 描述域:使用
set_xx、add_xxx等配置接口进行的配置区域。 - 脚本域:使用
on_xx、after_xxx和before_xxx等配置接口的内部区域。
xmake是一种用于简化C/C++项目构建过程的工具。它通过xmake.lua文件定义项目配置,此文件基于Lua语法并进行了封装,使得配置更为简洁直观。通过简单的几行代码即可完成项目的构建配置,同时支持描述域与脚本域的配置分离,进一步提高配置文件的可读性和可维护性。

5257

被折叠的 条评论
为什么被折叠?



