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

This commit is contained in:
Andy Cedilnik 2002-09-24 17:58:38 -04:00
parent cabe849c03
commit b5de000f26
3 changed files with 53 additions and 9 deletions

View File

@ -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)

View File

@ -0,0 +1,2 @@
#
INCLUDE(${CMAKE_ROOT}/Modules/TestForANSIStreamHeaders.cmake)

View File

@ -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);
}