summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Modules/CMakeMinGWFindMake.cmake8
-rw-r--r--Source/cmake.cxx3
2 files changed, 9 insertions, 2 deletions
diff --git a/Modules/CMakeMinGWFindMake.cmake b/Modules/CMakeMinGWFindMake.cmake
index 1973d0f..42d1624 100644
--- a/Modules/CMakeMinGWFindMake.cmake
+++ b/Modules/CMakeMinGWFindMake.cmake
@@ -1,2 +1,8 @@
FIND_PROGRAM(CMAKE_MAKE_PROGRAM mingw32-make.exe PATHS c:/MinGW/bin /MinGW/bin)
-MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM)
+FIND_PROGRAM(CMAKE_SH sh.exe )
+MARK_AS_ADVANCED(CMAKE_MAKE_PROGRAM CMAKE_SH)
+IF(CMAKE_SH)
+ MESSAGE(FATAL_ERROR "sh.exe was found in your PATH, here:\n${CMAKE_SH}\nFor MinGW make to work correctly sh.exe must NOT be in your path.\nRun cmake from a shell that does not have sh.exe in your PATH.\nIf you want to use a UNIX shell, then use MSYS Makefiles.\n")
+ SET(CMAKE_MAKE_PROGRAM NOTFOUND)
+ENDIF(CMAKE_SH)
+
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 8313750..6033565 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -1376,7 +1376,8 @@ int cmake::Configure()
// user can select another.
m_CacheManager->RemoveCacheEntry("CMAKE_GENERATOR");
}
- if ( !m_ScriptMode )
+ // only save the cache if there were no fatal errors
+ if ( !m_ScriptMode && !cmSystemTools::GetFatalErrorOccured() )
{
this->m_CacheManager->SaveCache(this->GetHomeOutputDirectory());
}