Using Built-in Variables and External Variables in xmake
Built-in Variables
Embedded in strings, for example:
set_objectdir("$(buildir)/.objs")Among them, $(buildir) is a built-in variable. These automatically change as the configuration changes with each xmake config.
Currently supported variables are as follows:
$(buildir): Compilation output directory, can be modified via:xmake f -o /tmp$(projectdir): Project main directory, can be modified via:xmake f -P ./project$(os): Operating system of the compilation target$(plat): Platform where the compilation target is located, can be modified via:xmake f -p android$(mode): Compilation mode: debug, release, profile, can be modified via:xmake f -m debug$(arch): Architecture of the compilation target, can be modified via:xmake f -a armv7
Note: All parameter options configured through xmake f/config can be accessed through built-in variables, for example on android:
xmake f -p android --ndk=/xxxxThen $(ndk) is an accessible variable and changes as the configuration changes, but this cannot be used on non-android platforms.
All other configuration-related variables can be viewed through the following command:
xmake f --helpExternal Variables
External variables are simple, they are lua variable operations. Since xmake.lua itself is a lua script, all features of lua can be directly used, so it can be used like this:
local root = "/tmp"
set_objectdir(root .. ".objs")Just use lua's string variable concatenation syntax. Isn't it simple?