install fails - imagekit protocol declarations cannot be found

Issue #149 resolved
Davis Thames
created an issue

While running python2.7 pyobjc/install.py:

...
gcc -fno-strict-aliasing -I/Users/***/anaconda/include -arch x86_64 -DNDEBUG -g -fwrapv
 -O3 -Wall -Wstrict-prototypes -I/Users/***/anaconda/include/python2.7 -c Modules/
_imagekit.m -o build/temp.macosx-10.5-x86_64-2.7/Modules/_imagekit.o 
-DPyObjC_BUILD_RELEASE=1011 -isysroot /
In file included from Modules/_imagekit.m:9:
Modules/_ImageKit_protocols.m:11:28: error: cannot find protocol declaration for
      'IKCameraDeviceViewDelegate'
    p = PyObjC_IdToPython(@protocol(IKCameraDeviceViewDelegate)); Py_XDECREF(p);
                           ^
Modules/_ImageKit_protocols.m:12:28: error: cannot find protocol declaration for
      'IKDeviceBrowserViewDelegate'
    p = PyObjC_IdToPython(@protocol(IKDeviceBrowserViewDelegate)); Py_XDECREF(p);
                           ^
Modules/_ImageKit_protocols.m:13:28: error: cannot find protocol declaration for
      'IKScannerDeviceViewDelegate'
    p = PyObjC_IdToPython(@protocol(IKScannerDeviceViewDelegate)); Py_XDECREF(p);
                           ^
3 errors generated.
error: command 'gcc' failed with exit status 1
Installing 'pyobjc-framework-Quartz' failed (status 1)

I have anaconda python 2.7; El Capital 10.11.3; most recent xcode & CLT update. I have cloned the most recent version of the library... and this is pretty new to me.

pyobjc-framework-Quartz/Modules contains _ImageKit_protocols.m, which appears to result in the included protocol references being brought into _imagekit.m, but something is not being found after that.

IKCameraDeviceView.h is located at /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers

IKDeviceBrowserView.h is also located at /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers

and

IKScannerDeviceView.h is located at /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers

Each of these files defined the "...Delegate" protocol (for example, /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.framework/Versions/A/Headers/IKDeviceBrowserView.h defines the @protocol IKCameraDeviceViewDelegate).

It seems that pyobjc/pyobjc-framework-Quartz/Lib/Quartz/ImageKit/__init__.py is looking for the framework at objc.pathForFramework("/System/Library/Frameworks/Quartz.framework/Frameworks/ImageKit.framework")

I can ls /System/Library/Frameworks/Quartz.framework/Frameworks/ImageKit.framework/Headers and see the header files.

Comments (3)

  1. Log in to comment