[cfe-dev] LibTooling in the absence of a compilation database

Russell Wallace via cfe-dev cfe-dev at lists.llvm.org
Wed Dec 2 01:47:38 PST 2015

Then, if the database is not found, the tool can print a note like
'compilation database not found, using default options'.

On Wed, Dec 2, 2015 at 9:45 AM, Manuel Klimek <klimek at google.com> wrote:

> On Wed, Dec 2, 2015 at 10:43 AM Russell Wallace <russell.wallace at gmail.com>
> wrote:
>> There are none that are guaranteed to work in all cases; nonetheless, if
>> Clang, GCC or Microsoft C++ is presented with a 'hello world' test program
>> with no other options, it will successfully compile it with its built-in
>> defaults, so the defaults for a tool should be those that Clang would use
>> in the same circumstances. (I do have some ideas for automated search for
>> the correct options if the defaults fail, but in the meantime 'do what the
>> actual compiler would do' would be a good baseline.)
> The problem is that if this happens, it's hard to tell the user what they
> need to do to get the tool to work (set up a compilation database).
> How about we add to the error if there is not compilation database how to
> run it in default mode (by adding -- at the end)?
>> On Wed, Dec 2, 2015 at 9:39 AM, Manuel Klimek <klimek at google.com> wrote:
>>> On Wed, Dec 2, 2015 at 10:35 AM Russell Wallace via cfe-dev <
>>> cfe-dev at lists.llvm.org> wrote:
>>>> Tools built with LibTooling default to using a compilation database if
>>>> one is available, which is good.
>>>> In the case where a compilation database is not available, there is a
>>>> problem: the default behavior is to exit with an error message, whereas in
>>>> some cases the tool would be required to do the best it can anyway. This
>>>> can be achieved by adding -- to the end of the command line, but this
>>>> wouldn't be obvious to someone unfamiliar with Clang tools.
>>>> One solution would be for the program to append -- to argv if it's not
>>>> already present, but would this disable the default useful behavior of
>>>> reading the compilation database if it is available?
>>>> If so, is there a way for the program to say 'okay, check for a
>>>> compilation database as normal, but if it's not present, let me know and
>>>> I'll fill in some best-guess default options'?
>>> The problem is that for C++ there really are no best guess default
>>> options. If you have ideas for what they should be, please make a proposal.
>>>> _______________________________________________
>>>> cfe-dev mailing list
>>>> cfe-dev at lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20151202/7c34b724/attachment.html>

More information about the cfe-dev mailing list