Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Internal builder status

Hi Warren,

On 13 July 2010 14:16,  <Warren.Paul@xxxxxxxxx> wrote:
> A few years ago there was standard make, which simply called make on an existing makefile, and managed make, which created and maintained makefiles.  Managed make introduced the build configuration concept, which I believe was then added to standard make as well.

Configurations are a core concept. So all the language settings
interesting to the parser / indexer (mostly includes & defines) are
persisted / managed per configuration. One major sore point is scanner
discovery which lives in a pre-configuration world...

> I see now there's this concept of managed make with internal or external builder.  Is the former just managed make, and the latter standard make, or is there is still an actual standard make builder?  If so, what's the difference between the two?

The build hangs off CommonBuilder which is in need of a spring clean.
Running a 'standard build', if we were to ignore the subtleties of
error parsers, scanner discovery, etc.,  just requires firing of an
external process -- often 'make'.  As there's nothing special for the
build system to do, this job is just incorporated by CommonBuilder.
So Standard/Makefile build is the same as 'managed' build except the
user (or project template) has "Generate Makefiles Automatically"
unchecked in Properties > C/C++ Build

For managedbuild there are two modes of operation: makefile generation
+ run external builder and the internal builder.  When automatically
generate makefiles is enabled (and external builder chosen), the
makefile generation step is run before make.  The build has the same
shape as standard build - except for the initial makefile generation
step.

> How is the indexer hooked up in these projects?  I created a Qt project and the indexer just seemed to work, but I wasn't sure how.  :)  Is it getting the macros and include paths from the makefile?  I didn't see any place to specify the makefile location, so I was a bit puzzled as to how it was working.

The paths and symbols come both from the build system and from scanner
discovery (which provides builtins + make output parsed -Ds + -Is).

Cheers,
James


Back to the top