diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2004-04-28 17:21:56 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2004-04-28 17:21:56 (GMT) |
commit | a6b60841dbc56b896380435e4e190cbdc6e1a25a (patch) | |
tree | bd7b0971e37170049b5c13a6979360042e4683b1 | |
parent | e539cf9f7c39b2c25b5566925e0c43a39f2ee868 (diff) | |
download | CMake-a6b60841dbc56b896380435e4e190cbdc6e1a25a.zip CMake-a6b60841dbc56b896380435e4e190cbdc6e1a25a.tar.gz CMake-a6b60841dbc56b896380435e4e190cbdc6e1a25a.tar.bz2 |
BUG: fix for bug 116 platform files can now specify directories that should not be added by CMAKE
-rw-r--r-- | Modules/Platform/Darwin.cmake | 2 | ||||
-rw-r--r-- | Source/cmLocalUnixMakefileGenerator.cxx | 15 |
2 files changed, 16 insertions, 1 deletions
diff --git a/Modules/Platform/Darwin.cmake b/Modules/Platform/Darwin.cmake index 8c8dc3a..8a1fd17 100644 --- a/Modules/Platform/Darwin.cmake +++ b/Modules/Platform/Darwin.cmake @@ -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>") INCLUDE(${CMAKE_ROOT}/Modules/Platform/gcc.cmake) + +SET(CMAKE_PLATFORM_IMPLICIT_INCLUDE_DIRECTORIES /usr/local/include) diff --git a/Source/cmLocalUnixMakefileGenerator.cxx b/Source/cmLocalUnixMakefileGenerator.cxx index 80dd767..9e221cc 100644 --- a/Source/cmLocalUnixMakefileGenerator.cxx +++ b/Source/cmLocalUnixMakefileGenerator.cxx @@ -2487,13 +2487,26 @@ void cmLocalUnixMakefileGenerator::OutputMakeVariables(std::ostream& fout) std::vector<std::string>::iterator i; fout << "-I" << 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) { std::string include = *i; // Don't output a -I for the standard include path "/usr/include". // This can cause problems with certain standard library // 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()) << " "; } |