[cmake-developers] Adding a custom property that is queried from cmGlobalUnixMakefileGenerator3

Michael Enßlin michael at ensslin.cc
Fri Jul 10 14:31:48 EDT 2015


Hi,

I'm trying to add a custom global property that is queried from
cmGlobalUnixMakefileGenerator3's constructor.

For that, I use this piece of code in the constructor:

  this->TargetMessages = true;
  if(const char* ruleStatus = this
                              ->GetCMakeInstance()
                              ->GetState()
                              ->GetGlobalProperty("TARGET_MESSAGES"))
    {
    this->TargetMessages = cmSystemTools::IsOn(ruleStatus);
    }

This is analogous to how it's done in cmMakefileTargetGenerator's
constructor for the RULE_MESSAGES global property.

However, ruleStatus is always nullptr, whatever I try.
Some hours of printing pointers in debugging messages later, it seems
like cmGlobalUnixMakefileGenerator3 isn't getting the same global
"cmake" object, and thus cmState object, that the entire rest of the
program uses (especially the one used during set_property(GLOBAL
PROPERTY) calls).

Could you please enlighten me why that happens, and what to do about it?

 ~ Michael Ensslin

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20150710/8201adb1/attachment.sig>


More information about the cmake-developers mailing list