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

Attachment: signature.asc
Description: OpenPGP digital signature

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Reply via email to