Browse Source

Eclipse on OSX: fix handling of framework include dirs (#13464)

On OSX, the output from gcc looks like this:
 /usr/include/c++/4.2.1
 /usr/include/c++/4.2.1/i686-apple-darwin10/x86_64
 /usr/include/c++/4.2.1/backward
 /usr/lib/gcc/i686-apple-darwin10/4.2.1/include
 /usr/include
 /System/Library/Frameworks (framework directory)
 /Library/Frameworks (framework directory)
End of search list.

The "(framework directory)" part needs to be removed so that Eclipse handles it properly

Alex
Alex Neundorf 13 years ago
parent
commit
d97b38529e

+ 4 - 1
Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake

@@ -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:
     string(REGEX MATCHALL "[^\n]+\n" _includeLines "${CMAKE_MATCH_1}")
     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}")
     endforeach()