mirror of
https://github.com/reactos/CMake.git
synced 2025-02-08 21:09:48 +00:00
BUG: fix for bug 116 platform files can now specify directories that should not be added by CMAKE
This commit is contained in:
parent
e539cf9f7c
commit
a6b60841db
@ -25,3 +25,5 @@ SET(CMAKE_C_CREATE_SHARED_MODULE
|
|||||||
"<CMAKE_C_COMPILER> <CMAKE_SHARED_MODULE_CREATE_C_FLAGS> <LINK_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
|
"<CMAKE_C_COMPILER> <CMAKE_SHARED_MODULE_CREATE_C_FLAGS> <LINK_FLAGS> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
|
||||||
|
|
||||||
INCLUDE(${CMAKE_ROOT}/Modules/Platform/gcc.cmake)
|
INCLUDE(${CMAKE_ROOT}/Modules/Platform/gcc.cmake)
|
||||||
|
|
||||||
|
SET(CMAKE_PLATFORM_IMPLICIT_INCLUDE_DIRECTORIES /usr/local/include)
|
||||||
|
@ -2487,13 +2487,26 @@ void cmLocalUnixMakefileGenerator::OutputMakeVariables(std::ostream& fout)
|
|||||||
std::vector<std::string>::iterator i;
|
std::vector<std::string>::iterator i;
|
||||||
fout << "-I" <<
|
fout << "-I" <<
|
||||||
this->ConvertToOutputForExisting(m_Makefile->GetStartDirectory()) << " ";
|
this->ConvertToOutputForExisting(m_Makefile->GetStartDirectory()) << " ";
|
||||||
|
std::map<cmStdString, cmStdString> implicitIncludes;
|
||||||
|
implicitIncludes["/usr/include"] = "/usr/include";
|
||||||
|
if(m_Makefile->GetDefinition("CMAKE_PLATFORM_IMPLICIT_INCLUDE_DIRECTORIES"))
|
||||||
|
{
|
||||||
|
std::string arg = m_Makefile->GetDefinition("CMAKE_PLATFORM_IMPLICIT_INCLUDE_DIRECTORIES");
|
||||||
|
std::vector<std::string> implicitIncludeVec;
|
||||||
|
cmSystemTools::ExpandListArgument(arg, implicitIncludeVec);
|
||||||
|
for(int k =0; k < implicitIncludeVec.size(); k++)
|
||||||
|
{
|
||||||
|
implicitIncludes[implicitIncludeVec[k]] = implicitIncludeVec[k];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for(i = includes.begin(); i != includes.end(); ++i)
|
for(i = includes.begin(); i != includes.end(); ++i)
|
||||||
{
|
{
|
||||||
std::string include = *i;
|
std::string include = *i;
|
||||||
// Don't output a -I for the standard include path "/usr/include".
|
// Don't output a -I for the standard include path "/usr/include".
|
||||||
// This can cause problems with certain standard library
|
// This can cause problems with certain standard library
|
||||||
// implementations because the wrong headers may be found first.
|
// implementations because the wrong headers may be found first.
|
||||||
if(include != "/usr/include")
|
if(implicitIncludes.find(include) == implicitIncludes.end())
|
||||||
{
|
{
|
||||||
fout << "-I" << this->ConvertToOutputForExisting(i->c_str()) << " ";
|
fout << "-I" << this->ConvertToOutputForExisting(i->c_str()) << " ";
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user