cmGeneratorTarget: Copy the policy map from the cmTarget.

This commit is contained in:
Stephen Kelly 2015-10-20 01:05:42 +02:00
parent c6e8695508
commit d74bca5a8f
4 changed files with 28 additions and 17 deletions

View File

@ -308,6 +308,8 @@ cmGeneratorTarget::cmGeneratorTarget(cmTarget* t, cmLocalGenerator* lg)
this->DLLPlatform = (this->Makefile->IsOn("WIN32") ||
this->Makefile->IsOn("CYGWIN") ||
this->Makefile->IsOn("MINGW"));
this->PolicyMap = t->PolicyMap;
}
cmGeneratorTarget::~cmGeneratorTarget()

View File

@ -33,6 +33,14 @@ public:
bool IsImported() const;
const char *GetLocation(const std::string& config) const;
#define DECLARE_TARGET_POLICY(POLICY) \
cmPolicies::PolicyStatus GetPolicyStatus ## POLICY () const \
{ return this->PolicyMap.Get(cmPolicies::POLICY); }
CM_FOR_EACH_TARGET_POLICY(DECLARE_TARGET_POLICY)
#undef DECLARE_TARGET_POLICY
/** Get the location of the target in the build tree with a placeholder
referencing the configuration in the native build system. This
location is suitable for use as the LOCATION target property. */
@ -641,6 +649,7 @@ private:
typedef std::map<OutputNameKey, std::string> OutputNameMapType;
mutable OutputNameMapType OutputNameMap;
mutable std::set<cmLinkItem> UtilityItems;
cmPolicies::PolicyMap PolicyMap;
mutable bool PolicyWarnedCMP0022;
mutable bool DebugIncludesDone;
mutable bool DebugCompileOptionsDone;

View File

@ -230,6 +230,23 @@ class cmPolicy;
#define CM_FOR_EACH_POLICY_ID(POLICY) \
CM_FOR_EACH_POLICY_TABLE(POLICY, CM_SELECT_ID)
#define CM_FOR_EACH_TARGET_POLICY(F) \
F(CMP0003) \
F(CMP0004) \
F(CMP0008) \
F(CMP0020) \
F(CMP0021) \
F(CMP0022) \
F(CMP0027) \
F(CMP0038) \
F(CMP0041) \
F(CMP0042) \
F(CMP0046) \
F(CMP0052) \
F(CMP0060) \
F(CMP0063) \
F(CMP0065)
/** \class cmPolicies
* \brief Handles changes in CMake behavior and policies

View File

@ -26,23 +26,6 @@
# endif
#endif
#define CM_FOR_EACH_TARGET_POLICY(F) \
F(CMP0003) \
F(CMP0004) \
F(CMP0008) \
F(CMP0020) \
F(CMP0021) \
F(CMP0022) \
F(CMP0027) \
F(CMP0038) \
F(CMP0041) \
F(CMP0042) \
F(CMP0046) \
F(CMP0052) \
F(CMP0060) \
F(CMP0063) \
F(CMP0065)
class cmake;
class cmMakefile;
class cmSourceFile;