diff options
author | Brad King <brad.king@kitware.com> | 2008-03-07 20:30:35 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2008-03-07 20:30:35 (GMT) |
commit | 5233b75a777b0f3379408291e6f32b0eb15c2f54 (patch) | |
tree | 538d48ac384f0129059e3e1c20f2a46e9a3949cf /Source/cmLocalGenerator.cxx | |
parent | fcce2f3b61ca5a3484d41aa804dc09b39f16f8cf (diff) | |
download | CMake-5233b75a777b0f3379408291e6f32b0eb15c2f54.zip CMake-5233b75a777b0f3379408291e6f32b0eb15c2f54.tar.gz CMake-5233b75a777b0f3379408291e6f32b0eb15c2f54.tar.bz2 |
ENH: Improve handling of old-style compatibility.
- Remove CMP_0001 (no slash in target name) and restore
old CMAKE_BACKWARDS_COMPATIBILITY check for it
- Replace all checks of CMAKE_BACKWARDS_COMPATIBILITY
with cmLocalGenerator::NeedBackwardsCompatibility calls
- Create new CMP_0001 to determine whether or not
CMAKE_BACKWARDS_COMPATIBILITY is used.
(old = use, new = ignore)
- Show CMAKE_BACKWARDS_COMPATIBILITY in cache only when
CMP_0001 is set to OLD or WARN
- Update documentation of cmake_policy and cmake_minimum_required
to indicate their relationship and the 2.4 version boundary
- When no cmake policy version is set in top level makefile
implicitly call cmake_policy(VERSION 2.4) which restores
CMAKE_BACKWARDS_COMPATIBILITY and other 2.4 compatibility
- Fix tests MakeClean and Preprocess to call
cmake_policy(VERSION 2.6) because they depend on new policies
Diffstat (limited to 'Source/cmLocalGenerator.cxx')
-rw-r--r-- | Source/cmLocalGenerator.cxx | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index f96704f..76b843a 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -1195,15 +1195,7 @@ void cmLocalGenerator::GetIncludeDirectories(std::vector<std::string>& dirs, // CMake versions below 2.0 would add the source tree to the -I path // automatically. Preserve compatibility. - const char* versionValue = - this->Makefile->GetDefinition("CMAKE_BACKWARDS_COMPATIBILITY"); - int major = 0; - int minor = 0; - if(versionValue && sscanf(versionValue, "%d.%d", &major, &minor) != 2) - { - versionValue = 0; - } - if(versionValue && major < 2) + if(this->NeedBackwardsCompatibility(1,9)) { includeSourceDir = true; } @@ -2679,6 +2671,28 @@ bool cmLocalGenerator::NeedBackwardsCompatibility(unsigned int major, unsigned int minor, unsigned int patch) { + // Check the policy to decide whether to pay attention to this + // variable. + switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP_0001)) + { + case cmPolicies::WARN: + // WARN is just OLD without warning because user code does not + // always affect whether this check is done. + case cmPolicies::OLD: + // Old behavior is to check the variable. + break; + case cmPolicies::NEW: + // New behavior is to ignore the variable. + return false; + case cmPolicies::REQUIRED_IF_USED: + case cmPolicies::REQUIRED_ALWAYS: + // This will never be the case because the only way to require + // the setting is to require the user to specify version policy + // 2.6 or higher. Once we add that requirement then this whole + // method can be removed anyway. + return false; + } + // Compatibility is needed if CMAKE_BACKWARDS_COMPATIBILITY is set // equal to or lower than the given version. unsigned int actual_compat = this->GetBackwardsCompatibility(); |