On Mar 14, 2012, at 9:49 AM, Chandler Carruth wrote:
> Just some peanut gallery comments...
>
> We definitely need to support non CMake users -- the cmake stuff was really
> only a "demo" use case, not intended to be specific. We're working with
> Eclipse and the Chromium build system to grow support as well.
>
> I had always planned for support of configure/make builds to take the form of
> something not unlike scan-build, which analyzes the make run, and writes the
> database. That said, your solution is quite a bit simpler...
>
> On Wed, Mar 14, 2012 at 5:35 AM, Douglas Gregor <[email protected]> wrote:
> Now, to actually make tooling useful to non-CMake users, we'd want to make it
> possible to create a JSON compilation database without involving CMake at
> all. I suggest that we add a Clang command-line flag
> "-fcompilation-database=<filename>" and have the driver update <filename>
> with each compilation command it is invoked with. That way, one could do a
> normal project build with, e.g.,
>
> make CXX=clang++
> CXXFLAGS="-fcompilation-database=compile_commands.json"
>
> and then, later, run a tool over compile_commands.json.
>
> I like this, a lot. My worry goes beyond Manuel's though -- I don't think
> this is enough. He raised the concern of how do we synchronize the writes,
> and the classical way of doing that is with POSIX file locks (flock). That
> should functionally work Just Fine.
>
> However, for large builds on machine with lots of cores, flock is likely to
> be way too expensive for the regular developer to want to add... What's
> worse, it requires the build to take place on a single machine.
This is all fine for the vast majority of developers, who have small-to-medium
projects that build on one machine.
> Any DistCC setup (or similar) will immediately break this.
Yes, we'll need something smarter for distributed builds, but it's also fine
for that to require more effort to set up.
>
> That said the scan-build is a PITA for projects with small builds. Maybe the
> right solution is *both* -- support for an in-clang system, and a scan-build
> system... Unsure, just wanted to throw out the things I'd been thinking about
> so you an Manuel can hash them out properly.
I think the in-clang system is important for the feature to be useful, and a
scan-build like system is a nice-to-have for very large/distributed projects in
the future.
- Doug
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits