[cfe-commits] [PATCH] Introduce a plugin architecture
silvas at purdue.edu
Mon Mar 5 11:30:34 PST 2012
Personally, I think that even with the gcc-like syntax, it is still too
burdensome to pass args. `-fplugin-arg-plugin-bar=baz` is a lot of typing
just for one arg. People just won't do that manually: they will write a
script to do it for them. That suggests that the best plan of action would
be to just write a simple python script that builds the command-line and
execs clang with the right args.
Usage would be:
clang-plugin++ ../../Debug+Asserts/lib/libPrintFunctionNames.so -w
--mylongopt=foo --some-arg -- -O3 -c file.cc -Wall
Any args after `--` are passed directly to clang as normal args.
This means that you can do `CXX=clang-plugin++ /path/to/plugin.so --foo -q
--` in a makefile and it will Just Work. It also adds a useful layer of
indirection which allows for more flexibility in changing how clang
actually processes the args.
On Mon, Mar 5, 2012 at 12:56 PM, Joshua Cranmer <pidgeot18 at gmail.com> wrote:
> To describe this patch in more detail:
> Basically, this implements what I discussed in the thread at
> The most salient points:
> -fplugin=, -fplugin-arg-<name>-<arg>[=<value>] syntax for plugins
> (inspired from gcc's architecture)
> Specific function callbacks (plugin init, destroy, before, and after
> files are run), with a callback struct that allows to hook add
> PPCallback, ASTConsumer, and DiagonsticsClients on a per-file basis.
> Joshua Cranmer
> News submodule owner
> DXR coauthor
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-commits