summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Cedilnik <andy.cedilnik@kitware.com>2002-09-24 21:58:38 (GMT)
committerAndy Cedilnik <andy.cedilnik@kitware.com>2002-09-24 21:58:38 (GMT)
commitb5de000f26247b6a0be2ac429ead001cbe9da72e (patch)
tree10f950e14d0d3861b72a99117485674364b3b890
parentcabe849c03f210d104b2bc5a2571226d5e4ddcd2 (diff)
downloadCMake-b5de000f26247b6a0be2ac429ead001cbe9da72e.zip
CMake-b5de000f26247b6a0be2ac429ead001cbe9da72e.tar.gz
CMake-b5de000f26247b6a0be2ac429ead001cbe9da72e.tar.bz2
Improve backward compatibility, so that all backward compatibility stuff is in two modules; fix invoking of try_compile; add checking for header files and sizes of types
-rw-r--r--Modules/CMakeBackwardCompatibilityC.cmake22
-rw-r--r--Modules/CMakeBackwardCompatibilityCXX.cmake2
-rw-r--r--Source/cmGlobalUnixMakefileGenerator.cxx38
3 files changed, 53 insertions, 9 deletions
diff --git a/Modules/CMakeBackwardCompatibilityC.cmake b/Modules/CMakeBackwardCompatibilityC.cmake
new file mode 100644
index 0000000..5263941
--- /dev/null
+++ b/Modules/CMakeBackwardCompatibilityC.cmake
@@ -0,0 +1,22 @@
+# Nothing here yet
+
+INCLUDE (${CMAKE_ROOT}/Modules/CheckSizeOf.cmake)
+CHECK_TYPE_SIZE(int CMAKE_SIZEOF_INT)
+CHECK_TYPE_SIZE(long CMAKE_SIZEOF_LONG)
+CHECK_TYPE_SIZE("void*" CMAKE_SIZEOF_VOID_P)
+CHECK_TYPE_SIZE(char CMAKE_SIZEOF_CHAR)
+CHECK_TYPE_SIZE(short CMAKE_SIZEOF_SHORT)
+CHECK_TYPE_SIZE(float CMAKE_SIZEOF_FLOAT)
+CHECK_TYPE_SIZE(double CMAKE_SIZEOF_DOUBLE)
+
+INCLUDE (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
+CHECK_FUNCTION_EXISTS(gethostbyname CMAKE_HAVE_GETHOSTBYNAME)
+CHECK_FUNCTION_EXISTS(connect CMAKE_HAVE_CONNECT)
+CHECK_FUNCTION_EXISTS(remove CMAKE_HAVE_REMOVE)
+CHECK_FUNCTION_EXISTS(shmat CMAKE_HAVE_SHMAT)
+
+INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
+CHECK_INCLUDE_FILE("limits.h" CMAKE_HAVE_LIMITS_H)
+CHECK_INCLUDE_FILE("unistd.h" CMAKE_HAVE_UNISTD_H)
+CHECK_INCLUDE_FILE("sys/prctl.h" CMAKE_HAVE_SYS_PRCTL_H)
+CHECK_INCLUDE_FILE("pthread.h" CMAKE_HAVE_PTHREAD_H)
diff --git a/Modules/CMakeBackwardCompatibilityCXX.cmake b/Modules/CMakeBackwardCompatibilityCXX.cmake
new file mode 100644
index 0000000..2ce99cf
--- /dev/null
+++ b/Modules/CMakeBackwardCompatibilityCXX.cmake
@@ -0,0 +1,2 @@
+#
+INCLUDE(${CMAKE_ROOT}/Modules/TestForANSIStreamHeaders.cmake)
diff --git a/Source/cmGlobalUnixMakefileGenerator.cxx b/Source/cmGlobalUnixMakefileGenerator.cxx
index 5da658d..9314d5f 100644
--- a/Source/cmGlobalUnixMakefileGenerator.cxx
+++ b/Source/cmGlobalUnixMakefileGenerator.cxx
@@ -54,14 +54,29 @@ void cmGlobalUnixMakefileGenerator::EnableLanguage(const char* lang,
putenv(envCC);
#endif
}
- std::string cmd = root;
- cmd += "/Templates/cconfigure";
- cmSystemTools::RunCommand(cmd.c_str(), output,
- cmSystemTools::ConvertToOutputPath(mf->GetHomeOutputDirectory()).c_str());
+ if (!m_CMakeInstance->GetIsInTryCompile())
+ {
+ std::string cmd = root;
+ cmd += "/Templates/cconfigure";
+ cmSystemTools::RunCommand(cmd.c_str(), output,
+ cmSystemTools::ConvertToOutputPath(
+ mf->GetHomeOutputDirectory()).c_str());
+ }
std::string fpath = mf->GetHomeOutputDirectory();
fpath += "/CCMakeSystemConfig.cmake";
mf->ReadListFile(0,fpath.c_str());
this->SetLanguageEnabled("C");
+ if (!m_CMakeInstance->GetIsInTryCompile())
+ {
+ // for old versions of CMake ListFiles
+ const char* versionValue
+ = mf->GetDefinition("CMAKE_MINIMUM_REQUIRED_VERSION");
+ if (!versionValue || atof(versionValue) <= 1.4)
+ {
+ std::string fpath = root + "/Modules/CMakeBackwardCompatibilityC.cmake";
+ mf->ReadListFile(NULL,fpath.c_str());
+ }
+ }
}
// if CXX
if(!this->GetLanguageEnabled("CXX") && strcmp(lang, "CXX") == 0)
@@ -85,26 +100,31 @@ void cmGlobalUnixMakefileGenerator::EnableLanguage(const char* lang,
#endif
}
std::string cmd = root;
- cmd += "/Templates/cxxconfigure";
- cmSystemTools::RunCommand(cmd.c_str(), output,
- cmSystemTools::ConvertToOutputPath(mf->GetHomeOutputDirectory()).c_str());
+ if (!m_CMakeInstance->GetIsInTryCompile())
+ {
+ cmd += "/Templates/cxxconfigure";
+ cmSystemTools::RunCommand(cmd.c_str(), output,
+ cmSystemTools::ConvertToOutputPath(
+ mf->GetHomeOutputDirectory()).c_str());
+ }
std::string fpath = mf->GetHomeOutputDirectory();
fpath += "/CXXCMakeSystemConfig.cmake";
mf->ReadListFile(0,fpath.c_str());
this->SetLanguageEnabled("CXX");
- // for old versions of CMake ListFiles
if (!m_CMakeInstance->GetIsInTryCompile())
{
+ // for old versions of CMake ListFiles
const char* versionValue
= mf->GetDefinition("CMAKE_MINIMUM_REQUIRED_VERSION");
if (!versionValue || atof(versionValue) <= 1.4)
{
- fpath = root + "/Modules/TestForANSIStreamHeaders.cmake";
+ fpath = root + "/Modules/CMakeBackwardCompatibilityCXX.cmake";
mf->ReadListFile(NULL,fpath.c_str());
}
}
}
+
// if we are from the top, always define this
mf->AddDefinition("RUN_CONFIGURE", true);
}