Merge topic 'HandleMacFrameworkIncludeDirs_13465'
a3815e6 -fix line length 9110d0e Eclipse on OSX: improve handling of framework include dirs (#13367) d97b385 Eclipse on OSX: fix handling of framework include dirs (#13464)
This commit is contained in:
commit
e04245e2d5
@ -42,7 +42,10 @@ macro(_DETERMINE_GCC_SYSTEM_INCLUDE_DIRS _lang _resultIncludeDirs _resultDefines
|
|||||||
# split the output into lines and then remove leading and trailing spaces from each of them:
|
# split the output into lines and then remove leading and trailing spaces from each of them:
|
||||||
string(REGEX MATCHALL "[^\n]+\n" _includeLines "${CMAKE_MATCH_1}")
|
string(REGEX MATCHALL "[^\n]+\n" _includeLines "${CMAKE_MATCH_1}")
|
||||||
foreach(nextLine ${_includeLines})
|
foreach(nextLine ${_includeLines})
|
||||||
string(STRIP "${nextLine}" _includePath)
|
# on OSX, gcc says things like this: "/System/Library/Frameworks (framework directory)", strip the last part
|
||||||
|
string(REGEX REPLACE "\\(framework directory\\)" "" nextLineNoFramework "${nextLine}")
|
||||||
|
# strip spaces at the beginning and the end
|
||||||
|
string(STRIP "${nextLineNoFramework}" _includePath)
|
||||||
list(APPEND ${_resultIncludeDirs} "${_includePath}")
|
list(APPEND ${_resultIncludeDirs} "${_includePath}")
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
@ -598,6 +598,16 @@ void cmExtraEclipseCDT4Generator::AppendIncludeDirectories(
|
|||||||
if (!inc->empty())
|
if (!inc->empty())
|
||||||
{
|
{
|
||||||
std::string dir = cmSystemTools::CollapseFullPath(inc->c_str());
|
std::string dir = cmSystemTools::CollapseFullPath(inc->c_str());
|
||||||
|
|
||||||
|
// handle framework include dirs on OSX, the remainder after the
|
||||||
|
// Frameworks/ part has to be stripped
|
||||||
|
// /System/Library/Frameworks/GLUT.framework/Headers
|
||||||
|
cmsys::RegularExpression frameworkRx("(.+/Frameworks)/.+\\.framework/");
|
||||||
|
if(frameworkRx.find(dir.c_str()))
|
||||||
|
{
|
||||||
|
dir = frameworkRx.match(1);
|
||||||
|
}
|
||||||
|
|
||||||
if(emittedDirs.find(dir) == emittedDirs.end())
|
if(emittedDirs.find(dir) == emittedDirs.end())
|
||||||
{
|
{
|
||||||
emittedDirs.insert(dir);
|
emittedDirs.insert(dir);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user