其实,除了 xmake 内置的这些变量以外,只要是在 xmake f/config
配置命令中的所有参数选项配置,都是可以通过内置变量的方式来获取使用。
比如 xmake f --plat=linux
配置了目标平台,那么就能够通过 $(plat)
内置变量来获取;通过 xmake f --mode=debug
配置了编译模式,那么就可以通过 $(mode)
来获取到。
所有的配置选项,我们可以通过 xmake f --help
来查看配置菜单列表获取到,比较常用的有 $(plat)
、$(arch)
、$(host)
和 $(mode)
等,而之前说的 $(buildir)
也是其中一员,对应配置项 xmake f -o buildir
。
接下来修改之前的 xmake.lua 尝试如何使用这些变量,具体修改如下。
target("hello")
set_kind("binary")
add_files("src/*.cpp")
set_targetdir("$(projectdir)/bin/$(plat)/$(arch)/$(mode)")
这里,我们通过 set_targetdir
接口修改默认的目标程序输出路径,将其编译生成到项目根目录的 bin
目录下,并且根据不同的平台、架构和编译模式自动分子目录存放。
执行命令 xmake -rv