diff options
author | Stephen Kelly <steveire@gmail.com> | 2015-05-02 12:50:02 (GMT) |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2015-06-07 07:29:31 (GMT) |
commit | 647488570bfe7ce210bfd0675df0eb5147e36ab6 (patch) | |
tree | eb67a369755a20ef15f425d1f920bfbd2e1f92c2 /Source | |
parent | 6f148e4a48f3f879998e67d9bb30de07f5cf5608 (diff) | |
download | CMake-647488570bfe7ce210bfd0675df0eb5147e36ab6.zip CMake-647488570bfe7ce210bfd0675df0eb5147e36ab6.tar.gz CMake-647488570bfe7ce210bfd0675df0eb5147e36ab6.tar.bz2 |
cmTarget: Replace PolicyStatus members with PolicyMap.
sizeof(cmTarget) goes from 856 to 840 with GNU libstdc++ 5.1.
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmTarget.cxx | 17 | ||||
-rw-r--r-- | Source/cmTarget.h | 11 |
2 files changed, 4 insertions, 24 deletions
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 5e866ef..daf5282 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -239,13 +239,6 @@ cmTargetInternals::~cmTargetInternals() //---------------------------------------------------------------------------- cmTarget::cmTarget() { -#define INITIALIZE_TARGET_POLICY_MEMBER(POLICY) \ - this->PolicyStatus ## POLICY = cmPolicies::WARN; - - CM_FOR_EACH_TARGET_POLICY(INITIALIZE_TARGET_POLICY_MEMBER) - -#undef INITIALIZE_TARGET_POLICY_MEMBER - this->Makefile = 0; #if defined(_WIN32) && !defined(__CYGWIN__) this->LinkLibrariesForVS6Analyzed = false; @@ -440,20 +433,14 @@ void cmTarget::SetMakefile(cmMakefile* mf) } // Record current policies for later use. -#define CAPTURE_TARGET_POLICY(POLICY) \ - this->PolicyStatus ## POLICY = \ - this->Makefile->GetPolicyStatus(cmPolicies::POLICY); - - CM_FOR_EACH_TARGET_POLICY(CAPTURE_TARGET_POLICY) - -#undef CAPTURE_TARGET_POLICY + this->Makefile->RecordPolicies(this->PolicyMap); if (this->TargetTypeValue == INTERFACE_LIBRARY) { // This policy is checked in a few conditions. The properties relevant // to the policy are always ignored for INTERFACE_LIBRARY targets, // so ensure that the conditions don't lead to nonsense. - this->PolicyStatusCMP0022 = cmPolicies::NEW; + this->PolicyMap.Set(cmPolicies::CMP0022, cmPolicies::NEW); } if (this->GetType() != INTERFACE_LIBRARY && this->GetType() != UTILITY) diff --git a/Source/cmTarget.h b/Source/cmTarget.h index 0cbb575..cade7ab 100644 --- a/Source/cmTarget.h +++ b/Source/cmTarget.h @@ -144,7 +144,7 @@ public: #define DECLARE_TARGET_POLICY(POLICY) \ cmPolicies::PolicyStatus GetPolicyStatus ## POLICY () const \ - { return this->PolicyStatus ## POLICY; } + { return this->PolicyMap.Get(cmPolicies::POLICY); } CM_FOR_EACH_TARGET_POLICY(DECLARE_TARGET_POLICY) @@ -828,14 +828,7 @@ private: // The cmMakefile instance that owns this target. This should // always be set. cmMakefile* Makefile; - - // Policy status recorded when target was created. -#define TARGET_POLICY_MEMBER(POLICY) \ - cmPolicies::PolicyStatus PolicyStatus ## POLICY; - - CM_FOR_EACH_TARGET_POLICY(TARGET_POLICY_MEMBER) - -#undef TARGET_POLICY_MEMBER + cmPolicies::PolicyMap PolicyMap; // Internal representation details. friend class cmTargetInternals; |