summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2006-02-15 03:03:16 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2006-02-15 03:03:16 (GMT)
commit14cbc9571a7986617877fed0d2f04899d981d4ea (patch)
tree7c382f875e2c60330a1c104ef76416fa710aae28
parentaea456a91a49bca5da485f25e113de340a4dac20 (diff)
downloadCMake-14cbc9571a7986617877fed0d2f04899d981d4ea.zip
CMake-14cbc9571a7986617877fed0d2f04899d981d4ea.tar.gz
CMake-14cbc9571a7986617877fed0d2f04899d981d4ea.tar.bz2
ENH: do not allow mingw makefiles to generate if sh.exe is in the path, also do not write CMakeCache.txt if there is a fatal error.
-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());
}