[cmake-developers] Ninja passes all tests on OS X

Bill Hoffman bill.hoffman at kitware.com
Tue Jul 17 17:39:44 EDT 2012


On 7/17/2012 1:43 PM, Peter Kümmel wrote:
> On 17.07.2012 19:32, Bill Hoffman wrote:
>> On 7/17/2012 1:21 PM, Peter Kümmel wrote:
>>>
>>> OK, maybe it is simpler to add a the functions to
>>> cmNinjaTargetGenerator which
>>>
>>> forwards the call to the Local/Global classes.
>> Lets just add the friend stuff for now so we can get the dashboard
>> building again.
>
> You could not add "friend class
> cmNinjaTargetGenerator::MacOSXContentGeneratorType"
> because cmNinjaTargetGenerator is forward declared, and including
> cmNinjaTargetGenerator.h
> doesn't help because it includes cmLocalNinjaGenerator.h again.
>
> Maybe making MacOSXContentGeneratorType global helps.
>'

There is also a warning here:

C:/Users/hoffman/Work/My 
Builds/cmake/Source/cmNinjaTargetGenerator.cxx(60) : warning C4355: 
'this' : used in base member initializer list

Making the helper class global should fix the problem.  What about a 
letter envelope type of thing.  Move the whole 
MacOSXContentGeneratorType into the .cxx file.  Then forward declare the 
pointer to it in the cmNinjaTargetGenerator class.

class cmMacOSXContentGeneratorType;
class cmNinjaTargetGenerator
{
...
cmMacOSXContentGeneratorType* MacOSXContentGenerator;


Then create it with new in the constructor.  This would get rid of the 
above warning as well.  I would like to clean this up before the nightly 
dashboards get going so we don't have a bunch of red tomorrow.

Thanks.







More information about the cmake-developers mailing list