I've encountered a problem with OSX framework detection, I think exposed due to 
updating to Xcode 4.3.3 (was previously using 4.3.2), though I'm sure the real 
issue is actually in my cmake-files.

It appears that /Library/Frameworks is no longer searched by default (this 
makes sense for better SDK support), but the code in the XCode project 
generator to transform include paths to framework search paths isn't being 
invoked due to how I'm detecting the paths (i.e logic starting around line 1928 
of cmGlobalXCodeGenerator)

I have a custom framework /Library/Frameworks/ALUT.framework, and a 
FindALUT.cmake module which is very similar to other equivalents (eg, 
FindOpenAL.cmake from the official distribution). The include path is being 
detected as '/Library/Frameworks/ALUT.framework/Headers', which is why the 
include isn't being transformed to a framework search path - 
'cmSystemTools::IsPathToFramework' is only considering paths which /end/ in 
.framework.

My guess is this all worked before because XCode automatically searched 
/Library/Frameworks, hiding the issue. If I edit the project search paths in 
XCode manually to include /Library/Frameworks, I can compile as before.

I think my bug is in my FindALUT.cmake module, in that the detected include 
path ends in Headers/ - the relevant fragment is below:

========

FIND_PATH(ALUT_INCLUDE_DIR alut.h
  HINTS
  $ENV{ALUTDIR}
  PATH_SUFFIXES include/AL include/ALUT include
  PATHS
  ~/Library/Frameworks
  /Library/Frameworks
  /usr/local
  /usr
  /opt
)

====

If it's relevant, my FindALUT.cmake already detects ALUT.framework using 
FIND_LIBRARY, and finds the correct framework path. I could special case on if 
(APPLE) in my FindALUT module, but none of the built-in modules do anything 
like that - they simply use FIND_LIBRARY & FIND_PATH and apparently work. (But 
maybe because they're always detecting frameworks deployed inside /System?)

This is tested with both cmake 2.8.7 and 2.8.8

Regards,
James



--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to