[CMake] depend.make

Lars laasunde at hotmail.com
Thu Dec 12 07:58:36 EST 2013


Very interesting.
 
Found this thread where Brad King is saying more or less the same thing (this is in 2009). Can anyone confirm this is still the case?

How can we filter out boost from depend.make? Using include_regular_expression only allows files filtering and that does not really help in this case.
 
Regards,
Lars
 
> From: marco.clemencic at cern.ch
> To: cmake at cmake.org
> CC: laasunde at hotmail.com; nilsgladitz at gmail.com
> Subject: Re: [CMake] depend.make
> Date: Thu, 12 Dec 2013 12:03:06 +0100
> 
> Hi,
> 
> I cannot find it anymore in the documentation , but I remember to have read 
> that the dependency scanner of CMake does not take into account the 
> preprocessor conditionals (#ifdef, etc), thus producing a superset of the 
> actual dependencies.
> It is quite probable that boost/tr1/iostream _may_ include the other headers 
> under some particular combination of preprocessor macros, so they are not used 
> at compile time, but they taken into account by CMake.
> 
> Cheers
> Marco
> 
> On Thursday 12 December 2013 11:51:52 Lars wrote:
> > Thank you for your feedback.
> > 
> > This however only explain part of the issue as far as I can tell. To debug
> > the issue I added #pragma message("boost tr1 iostream")
> > at the top of the boost/tr1/iostream file. When building the source that
> > message is shown in the console windows which then indicate the compiler
> > has accessed the file. So far so good. I then did the same "trick" with
> > boost/aligned_storage.hpp, boost/array.hpp and boost/assert.hpp which are
> > the three first boost reference in depend.make and none of them not show up
> > during building.
> > 
> > So why are these files included in the depend.make?
> > 
> > Regards,
> > Lars
> > Date: Wed, 11 Dec 2013 16:08:28 +0100
> > From: nilsgladitz at gmail.com
> > To: laasunde at hotmail.com; cmake at cmake.org
> > Subject: Re: [CMake] depend.make
> > 
> > 
> > 
> > 
> > 
> > 
> >     On 11.12.2013 12:53, Lars wrote:
> > 
> > 
> > 
> > 
> > 
> > 
> >         Here is the source code used (which does not use the Boost
> >         library).
> > 
> >         #include <iostream>
> > 
> >         int main(int argc, char **argv)
> > 
> >         {
> > 
> >           std::cout << "Hello world" << std::endl;
> > 
> > 
> > 
> >           return 0;
> > 
> >         }
> > 
> > 
> > 
> >     ${Boost_INCLUDE_DIR}/boost/tr1/tr1 does seem to contain an
> >     "iostream" header which your #include <iostream> probably
> >     picks up.
> > 
> >     Maybe that further includes the other boost headers?
> > 
> > 
> > 
> >     Nils
> 
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20131212/1636a081/attachment.htm>


More information about the CMake mailing list