summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2007-12-04 17:14:05 -0500
committerBill Hoffman <bill.hoffman@kitware.com>2007-12-04 17:14:05 -0500
commitbe1d30de55da82284bf05aea8695b03525099712 (patch)
treec63f1fa57f14ed6f5421e6b78cada770bac245f3
parent0a28cfdfbbc162223c1599664738b87658e01f8d (diff)
downloadcmake-be1d30de55da82284bf05aea8695b03525099712.tar.gz
ENH: merge in fixes from main tree
-rw-r--r--CMakeLists.txt2
-rw-r--r--ChangeLog.manual12
-rw-r--r--Source/cmCTest.cxx14
-rw-r--r--Source/cmGlobalUnixMakefileGenerator3.cxx14
-rw-r--r--Source/cmGlobalVisualStudio7Generator.cxx10
-rw-r--r--Source/cmGlobalVisualStudio8Generator.cxx6
-rw-r--r--Source/cmLocalVisualStudio7Generator.cxx3
-rw-r--r--Source/cmTarget.cxx16
8 files changed, 56 insertions, 21 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bb69bcbba8..37968df517 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,7 +7,7 @@ SET(CMake_VERSION_MAJOR 2)
SET(CMake_VERSION_MINOR 4)
SET(CMake_VERSION_PATCH 8)
# for an actual release this should not be defined
-SET(CMake_VERSION_RC 2)
+SET(CMake_VERSION_RC 3)
SET(CMake_VERSION "${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
SET(CMake_VERSION_FULL "${CMake_VERSION}.${CMake_VERSION_PATCH}")
diff --git a/ChangeLog.manual b/ChangeLog.manual
index 9d4365f109..7517158545 100644
--- a/ChangeLog.manual
+++ b/ChangeLog.manual
@@ -1,3 +1,9 @@
+Changes in CMake 2.4.8 RC 3
+* fix for bug 5363: GET_TARGET_PROPERTY(... DEBUG_LOCATION)
+ returns value containing $(OutDir)
+* Better error from ctest if nightly time not set
+* Fix for exception handling flags in VS 2003 and up
+* Avoid relinking exclude-from-all directory targets before install
Changes in CMake 2.4.8 RC 2
* fix for bug 5590 relative paths in windows not working across drives
* fix warning/error with TAR_VERBOSE flag
@@ -22,11 +28,9 @@ Changes in CMake 2.4.8 RC 1
Changes in CMake 2.4.7
--- RC 11 ----
* Fix bug 5238 for cygwin versioned executables
-
-* Allow for platform choice of executable shared libs install
-
+* Fix bug 4805 Allow for platform choice of executable
+ shared libs install
* Fix @ONLY issues with RC 10
-
* Add -E make_directory to cmake executable
--- RC 10 ----
* Fix rebuild problem with makefiles and cmake vs CMakeSetup
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index 4bdac1df11..0749e7994c 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -314,9 +314,12 @@ int cmCTest::Initialize(const char* binary_dir, bool new_tag,
<< " Build name: " << this->GetCTestConfiguration("BuildName")
<< std::endl);
cmCTestLog(this, DEBUG, "Produce XML is on" << std::endl);
- if ( this->GetCTestConfiguration("NightlyStartTime").empty() )
+ if ( this->TestModel == cmCTest::NIGHTLY &&
+ this->GetCTestConfiguration("NightlyStartTime").empty() )
{
- cmCTestLog(this, DEBUG, "No nightly start time" << std::endl);
+ cmCTestLog(this, WARNING,
+ "WARNING: No nightly start time found please set in"
+ " CTestConfig.cmake or DartConfig.cmake" << std::endl);
cmCTestLog(this, DEBUG, "Here: " << __LINE__ << std::endl);
return 0;
}
@@ -1191,6 +1194,13 @@ int cmCTest::RunTest(std::vector<const char*> argv,
//----------------------------------------------------------------------
void cmCTest::StartXML(std::ostream& ostr)
{
+ if(this->CurrentTag.empty())
+ {
+ cmCTestLog(this, ERROR_MESSAGE,
+ "Current Tag empty, this may mean"
+ " NightlStartTime was not set correctly." << std::endl);
+ cmSystemTools::SetFatalErrorOccured();
+ }
ostr << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
<< "<Site BuildName=\"" << this->GetCTestConfiguration("BuildName")
<< "\" BuildStamp=\"" << this->CurrentTag << "-"
diff --git a/Source/cmGlobalUnixMakefileGenerator3.cxx b/Source/cmGlobalUnixMakefileGenerator3.cxx
index 642773ad04..2d05d62d16 100644
--- a/Source/cmGlobalUnixMakefileGenerator3.cxx
+++ b/Source/cmGlobalUnixMakefileGenerator3.cxx
@@ -861,11 +861,15 @@ cmGlobalUnixMakefileGenerator3
lg->WriteMakeRule(ruleFileStream,
"Pre-install relink rule for target.",
localName.c_str(), depends, commands, true);
- depends.clear();
- depends.push_back(localName);
- commands.clear();
- lg->WriteMakeRule(ruleFileStream, "Prepare target for install.",
- "preinstall", depends, commands, true);
+
+ if (!exclude && t->second.IsInAll())
+ {
+ depends.clear();
+ depends.push_back(localName);
+ commands.clear();
+ lg->WriteMakeRule(ruleFileStream, "Prepare target for install.",
+ "preinstall", depends, commands, true);
+ }
}
// add the clean rule
diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx
index db6f9f7974..ac656673b1 100644
--- a/Source/cmGlobalVisualStudio7Generator.cxx
+++ b/Source/cmGlobalVisualStudio7Generator.cxx
@@ -836,7 +836,15 @@ static cmVS7FlagTable cmVS7ExtraFlagTable[] =
{"UsePrecompiledHeader", "Yu", "Use Precompiled Header", "3",
cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue},
{"PrecompiledHeaderThrough", "Yu", "Precompiled Header Name", "",
- cmVS7FlagTable::UserValueRequired},
+ cmVS7FlagTable::UserValueRequired},
+
+ // Exception handling mode. If no entries match, it will be FALSE.
+ {"ExceptionHandling", "GX", "enable c++ exceptions", "TRUE", 0},
+ {"ExceptionHandling", "EHsc", "enable c++ exceptions", "TRUE", 0},
+ // The EHa option does not have an IDE setting. Let it go to false,
+ // and have EHa passed on the command line by leaving out the table
+ // entry.
+
{0,0,0,0,0}
};
cmVS7FlagTable const* cmGlobalVisualStudio7Generator::GetExtraFlagTableVS7()
diff --git a/Source/cmGlobalVisualStudio8Generator.cxx b/Source/cmGlobalVisualStudio8Generator.cxx
index 491d478696..4aec3c31e4 100644
--- a/Source/cmGlobalVisualStudio8Generator.cxx
+++ b/Source/cmGlobalVisualStudio8Generator.cxx
@@ -258,6 +258,12 @@ static cmVS7FlagTable cmVS8ExtraFlagTable[] =
{"PrecompiledHeaderThrough", "Yu", "Precompiled Header Name", "",
cmVS7FlagTable::UserValueRequired},
// There is no YX option in the VS8 IDE.
+
+ // Exception handling mode. If no entries match, it will be FALSE.
+ {"ExceptionHandling", "GX", "enable c++ exceptions", "1", 0},
+ {"ExceptionHandling", "EHsc", "enable c++ exceptions", "1", 0},
+ {"ExceptionHandling", "EHa", "enable SEH exceptions", "2", 0},
+
{0,0,0,0,0}
};
cmVS7FlagTable const* cmGlobalVisualStudio8Generator::GetExtraFlagTableVS8()
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 06d12b0517..023bb7bd05 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -359,9 +359,6 @@ cmVS7FlagTable cmLocalVisualStudio7GeneratorFlagTable[] =
{"EnableFunctionLevelLinking", "Gy",
"EnableFunctionLevelLinking", "TRUE", 0},
{"EnableIntrinsicFunctions", "Oi", "EnableIntrinsicFunctions", "TRUE", 0},
- {"ExceptionHandling", "EHsc", "enable c++ exceptions", "TRUE", 0},
- {"ExceptionHandling", "EHa", "enable c++ exceptions", "2", 0},
- {"ExceptionHandling", "GX", "enable c++ exceptions", "TRUE", 0},
{"GlobalOptimizations", "Og", "Global Optimize", "TRUE", 0},
{"ImproveFloatingPointConsistency", "Op",
"ImproveFloatingPointConsistency", "TRUE", 0},
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 39c540312e..b9bb0b810a 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -915,16 +915,22 @@ const char* cmTarget::GetDirectory(const char* config)
const char* cmTarget::GetLocation(const char* config)
{
- this->Location = this->GetDirectory();
+ this->Location = this->GetDirectory(config);
if(!this->Location.empty())
{
this->Location += "/";
}
- const char* cfgid = this->Makefile->GetDefinition("CMAKE_CFG_INTDIR");
- if(cfgid && strcmp(cfgid, ".") != 0)
+ if(!config)
{
- this->Location += cfgid;
- this->Location += "/";
+ // No specific configuration was given so it will not appear on
+ // the result of GetDirectory. Add a name here to be replaced at
+ // build time.
+ const char* cfgid = this->Makefile->GetDefinition("CMAKE_CFG_INTDIR");
+ if(cfgid && strcmp(cfgid, ".") != 0)
+ {
+ this->Location += cfgid;
+ this->Location += "/";
+ }
}
this->Location += this->GetFullName(config, false);
return this->Location.c_str();