内建变量
内置在字符串中,例如:
set_objectdir("$(buildir)/.objs")
其中的$(buildir)就是内建变量,这些是随着每次xmake config的配置改变而自动改变的。
目前支持的一些变量如下:
- $(buildir): 编译输出目录,可通过:
xmake f -o /tmp
修改 - $(projectdir): 工程主目录,可通过:
xmake f -P ./project
修改 - $(os): 编译目标的操作系统
- $(plat): 编译目标的所在的平台,可通过:
xmake f -p android
修改 - $(mode): 编译模式:debug、release、profile,可通过:
xmake f -m debug
修改 - $(arch): 编译目标的架构,可通过:
xmake f -a armv7
修改
注:所有通过xmake f/config
配置的参数选项都可以通过内置变量访问,例如android下:
xmake f -p android --ndk=/xxxx
那么$(ndk)就是可访问变量,并且随着配置的改变而改变,但是这个在非android平台不能使用。
其他所有的配置相关变量,可以通过以下命令来查看:
xmake f --help
外置变量
外置变量很简单,就是lua的变量操作,因为xmake.lua本身就是lua脚本,那么lua的所有特性当然都能直接使用,因此可以这么使用:
local root = "/tmp"
set_objectdir(root .. ".objs")
通过lua的字符串变量追加语法就行了,是不是很简单。