Subject: Re: [boost] Link dependencies
From: Gavin Lambert (gavinl_at_[hidden])
Date: 2014-12-07 19:05:13
On 4/12/2014 10:07, Andrey Semashev wrote:
> On Wed, Dec 3, 2014 at 11:30 PM, Rene Rivera <grafikrobot_at_[hidden]> wrote:
>> On Wed, Dec 3, 2014 at 2:07 PM, Andrey Semashev <andrey.semashev_at_[hidden]>
>>> IMHO, either Boost.Build has to parse the code properly,
>> Is there a build system out there that correctly handles the extent of MPLs
>> preprocessor driven header inclusion? I'm asking so that we can ascertain
>> how it could be done.
> Frankly, I'm not sure any build system even attempts to parse C/C++,
> let alone do some preprocessing. I must say, I don't know many build
> systems, though.
Bog-standard GCC makefiles usually do this by using special compiler
options that generate dependency rules either instead of or as well as
the normal compilation output.
Of course, this isn't portable, and does require the build to be run in
its entirety first -- it merely provides that dependency information to
the second and subsequent builds so that it's known which source files
need recompiling if a header file is changed, to avoid a full rebuild
(or worse, an incomplete one).
Something else still needs to know what order to build the libraries at
the higher level though, especially for that first run.