使用Xmake-API来构建项目

32 篇文章 3 订阅

前言

 上一文我们介绍了Xmake的基本命令,使用Xmake的命令来构建项目基本等同于使用直接使用g++来构建,所以只有在项目比较简单时我们可以选择使用命令来构建,但是当项目比较复杂时,可以使用xmake.lua来配置项目的构建过程。

1.常用API简介

 对于Xmake的入门使用者来说,只要学会几个简单的API就可以非常方便的配置我们的项目,其中,最常用到的几个API分别是

  • set_kind: 设置target类型
  • add_files: 添加需要编译的源文件/静态库
  • add_links : 添加需要链接的动态库
  • add_includedirs : 添加头文件搜索路径
  • add_linkdirs: 添加动态库搜索路径
  • add_ldflags : 添加链接参数
  • add_cxxflags: 添加C++编译选项
  • add_cflags: 添加C编译选项
  • add_cxflags: 添加C/C++编译选项

2.API使用

 在使用Xmake新创建的工程中,Xmake直接创建了一个xmake.lua,里面的内容是这样的:

add_rules("mode.debug", "mode.release")

target("hello")
    set_kind("binary")
    add_files("src/*.cpp")

 其中,add_rules是设置构建模式,这里设置了debug模式和release模式

set_kind这里指定了编译出的target是二进制文件,即可执行程序

add_files将src下面的所有cpp文件头添加进来了,add_files支持通配符

下面介绍我们构建中的需求如何通过这些API来实现

1.添加编译源文件

 如上面的例子所示,当我们需要将源文件添加编译范围中,只需要通过add_files把文件添加进来即可,add_files支持的文件类型如下:

Supported source file typesDescription
.c/.cpp/.cc/.cxxc++ file
.s/.S/.asmassembly files
.m/.mmobjc file
.swiftswift file
.gogolang file
.o/.objobject File
.a/.libstatic library files, will automatically merge the library to the target program
.rcmsvc resource file
.manifestwindows manifest file
.dllwindows export file
.ld/.ldslinker scripts file for gcc/clang
.map/.verversion script file for gcc/clang

 其中,通配符*表示匹配当前目录下的文件,**表示匹配多级目录下的文件。

2.添加头文件搜索路径

 在添加头文件的搜索路径时,可以使用add_includedirs,当然,也可以通过add_cxflagsadd_mxflags等接口直接设置,这也是可以的。

3.添加动态库

 如果需要链接动态库时,可以通过add_links来将添加动态库,这里需要添加的动态库需要把开头lib以及后缀.so都去掉。

4.添加动态库搜索路径

 通过add_linkdirs来添加动态库的搜索路径,通过还要通过add_includedirs来将头文件搜索路径添加进来。

5. 添加外部包

 Xmake支持通过add_requires来添加依赖包,我们可以通过添加版本号来限制包的版本,也可以不写版本号来使用最新版本,例如,通常情况下我们不需要其太复杂的用法

add_requires("tbox 1.6.*", "pcre 8.x", "libpng ^1.18")
add_requires("libpng ~1.16", "zlib 1.1.2 || >=1.2.11 <1.3.0")
add_requires("tbox", "libpng", "zlib")

6. Xmake配置的继承

 此处所说的继承是指,如果一个文件夹中包含了好几个xmake管理的项目,那么父目录中的xmake配置将会继承到到子目录的xmake项目中,例如在父目录中通过add_includedirs添加了头文件搜索路径,那么子目录中的项目不需要重复添加,更高级的用法包括定义全局变量,宏定义等等,大大方便了项目的管理。

hello
├── src
│   ├── main.cpp
│   └── subhello
│       ├── src
│       │   └── main.cpp
│       └── xmake.lua
└── xmake.lua

 初级Xmake用户可以通过上面介绍的API完成一个普通项目的构建,如果项目更为复杂,那可能需要用到更为高级的用法,可以参阅Xmake的官方文档来研究更复杂的用法。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Michael.Scofield

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值