2002-08-31 00:01:48 +04:00
|
|
|
/*=========================================================================
|
|
|
|
|
2002-10-24 02:03:27 +04:00
|
|
|
Program: CMake - Cross-Platform Makefile Generator
|
2002-08-31 00:01:48 +04:00
|
|
|
Module: $RCSfile$
|
|
|
|
Language: C++
|
|
|
|
Date: $Date$
|
|
|
|
Version: $Revision$
|
|
|
|
|
2002-10-24 02:03:27 +04:00
|
|
|
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
|
|
|
|
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
|
2002-08-31 00:01:48 +04:00
|
|
|
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
|
|
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
|
|
PURPOSE. See the above copyright notices for more information.
|
|
|
|
|
|
|
|
=========================================================================*/
|
2002-09-10 23:40:41 +04:00
|
|
|
|
2002-08-31 00:01:48 +04:00
|
|
|
#include "cmGlobalUnixMakefileGenerator.h"
|
|
|
|
#include "cmLocalUnixMakefileGenerator.h"
|
|
|
|
#include "cmMakefile.h"
|
2002-09-06 21:06:23 +04:00
|
|
|
#include "cmake.h"
|
2002-08-31 00:01:48 +04:00
|
|
|
|
2002-12-05 21:44:11 +03:00
|
|
|
cmGlobalUnixMakefileGenerator::cmGlobalUnixMakefileGenerator()
|
|
|
|
{
|
|
|
|
m_FindMakeProgramFile = "CMakeUnixFindMake.cmake";
|
|
|
|
}
|
|
|
|
|
2002-08-31 00:01:48 +04:00
|
|
|
void cmGlobalUnixMakefileGenerator::EnableLanguage(const char* lang,
|
|
|
|
cmMakefile *mf)
|
|
|
|
{
|
2002-12-06 23:35:22 +03:00
|
|
|
mf->AddDefinition("CMAKE_CFG_INTDIR",".");
|
2002-12-05 21:44:11 +03:00
|
|
|
this->cmGlobalGenerator::EnableLanguage(lang, mf);
|
2002-12-20 19:20:49 +03:00
|
|
|
if(!lang)
|
|
|
|
{
|
|
|
|
lang = "CXX";
|
|
|
|
}
|
|
|
|
if(lang[0] == 'C')
|
|
|
|
{
|
|
|
|
if(!mf->GetDefinition("CMAKE_C_COMPILER"))
|
|
|
|
{
|
|
|
|
cmSystemTools::Error("CMAKE_C_COMPILER not set, after EnableLanguage");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
std::string path = cmSystemTools::FindProgram(mf->GetDefinition("CMAKE_C_COMPILER"));
|
|
|
|
if(path.size() == 0)
|
|
|
|
{
|
|
|
|
std::string message = "your C compiler: ";
|
|
|
|
message += mf->GetDefinition("CMAKE_C_COMPILER");
|
|
|
|
message += " was not found in your path. "
|
|
|
|
"For CMake to correctly use try compile commands, the compiler must "
|
|
|
|
"be in your path. Please add the compiler to your PATH environment,"
|
|
|
|
" and re-run CMake.";
|
|
|
|
cmSystemTools::Error(message.c_str());
|
|
|
|
}
|
|
|
|
if(strcmp(lang, "CXX") == 0)
|
|
|
|
{
|
|
|
|
path = cmSystemTools::FindProgram(mf->GetDefinition("CMAKE_CXX_COMPILER"));
|
|
|
|
if(path.size() == 0)
|
|
|
|
{
|
|
|
|
std::string message = "your C++ compiler: ";
|
|
|
|
message += mf->GetDefinition("CMAKE_CXX_COMPILER");
|
|
|
|
message += " was not found in your path. "
|
|
|
|
"For CMake to correctly use try compile commands, the compiler must "
|
|
|
|
"be in your path. Please add the compiler to your PATH environment,"
|
|
|
|
" and re-run CMake.";
|
|
|
|
cmSystemTools::Error(message.c_str());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2002-08-31 00:01:48 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
///! Create a local generator appropriate to this Global Generator
|
|
|
|
cmLocalGenerator *cmGlobalUnixMakefileGenerator::CreateLocalGenerator()
|
|
|
|
{
|
|
|
|
cmLocalGenerator *lg = new cmLocalUnixMakefileGenerator;
|
|
|
|
lg->SetGlobalGenerator(this);
|
|
|
|
return lg;
|
|
|
|
}
|
|
|
|
|