xmake v2.0 has supported the plugin module and we can develop ourself plugin module conveniently.

We can run command xmake -h to look over some builtin plugins of xmake

Plugins: l, lua Run the lua script. m, macro Run the given macro. doxygen Generate the doxygen document. hello Hello xmake! project Create the project file.

lua: Run a given lua script.

macro: Record and playback some xmake commands repeatly.

doxygen：Generate doxygen document automatically.

hello: The demo plugin and only print: ‘hello xmake!’

project：Generate project file for IDE, only generate makefile now and will generate vs, xcode project in the future

Next we write a simple plugin demo for printing ‘hello xmake!’

-- define a plugin task task ( "hello" ) -- set the category for showing it in plugin category menu (optional) set_category ( "plugin" ) -- the main entry of the plugin on_run ( function () -- print 'hello xmake!' print ( "hello xmake!" ) end ) -- set the menu options, but we put empty options now. set_menu ({ -- usage usage = "xmake hello [options]" -- description , description = "Hello xmake!" -- options , options = {} })

The file tree of this plugin:

hello - xmake.lua

Now one of the most simple plugin finished, how was it to be xmake detected it, there are three ways:

Put this plugin directory into xmake/plugins the source codes as the builtin plugin. Put this plugin directory into ~/.xmake/plugins as the global user plugin. Put this plugin directory to anywhere and call add_plugindirs("./hello") in xmake.lua as the local project plugin.

Next we run this plugin

$xmake hello

The results is

hello xmake!

Finally, we can also run this plugin in the custom scripts of xmake.lua