在之前的实验中,我们的工程项目比较简单,通常仅仅只需要在项目根目录下放置一个 xmake.lua 配置文件,就可以控制整个项目的编译。
但是对于一些大型项目,其源码的组织结构相对比较复杂,层级也比较深,需要参与编译生成的 target 目标也可能有十几甚至上百个,这个时候如果还是都在单一的根 xmake.lua 文件中维护,就有点吃不消了,会显得非常的臃肿并且不可维护。
这个时候,我们需要通过在每个子工程模块里面,单独创建 xmake.lua 来维护它们,然后使用 xmake 提供的 includes 接口,将它们按层级关系包含进来,最终变成一个树状结构。
在讲解如何使用前,我们先做一些准备工作,执行如下命令创建一个稍微复杂点的项目结构。
cd Code
xmake create includes_test
cd includes_test
mkdir tests
touch src/xmake.lua
cp src/* tests
执行完成后,执行 tree .
命令查看当前的项目结构。
tree .
.
├── src
│ ├── main.cpp
│ └── xmake.lua
├── tests
│ ├── main.cpp
│ └── xmake.lua
└── xmake.lua
通过上面的项目接口,我们大概可以看出来,这里面有两个模块,一个是 src 目录下的主程序,一个是 tests 目录下的测试程序,它们分别有自己的 xmake.lua 来维护构建,然后通过项目根目录的 xmake.lua 将这两个模块关联起来,构成一个项目树,大概的结构如下