PiP icon indicating copy to clipboard operation
PiP copied to clipboard

Build failed

Open Skeeve opened this issue 9 months ago • 3 comments

I'm not an XCode User so I'm a bit lost with this message:

/Users/skeeve/Projects/pip/pip.xcodeproj: warning: The macOS deployment target 'MACOSX_DEPLOYMENT_TARGET' is set to 10.12, but the range of supported deployment target versions is 10.13 to 15.2.99. (in target 'airplay' from project 'pip')
** BUILD FAILED **


The following build commands failed:
	CompileC /Users/skeeve/Projects/pip/build/pip.build/Release/PiP.build/Objects-normal/arm64/window.o /Users/skeeve/Projects/pip/pip/window.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target 'PiP' from project 'pip')
(1 failure)

Skeeve avatar Mar 18 '25 08:03 Skeeve

This issue is not directly related to the App but related to the the build environment. And hence should be handled by the build machine.

As stated in the message you can chnage the MACOSX_DEPLOYMENT_TARGET to a desired value to overcome the build failure. Alternatively you can refer to the instructions to build and run without xcode. run.sh uses cmake (includes airplay) if available else it will fallback to inline clang command (without airplay).

amitv87 avatar Mar 19 '25 08:03 amitv87

I have no clue, what possible "desired values" are. So I ran ./run.sh.

% ./run.sh
cmake not found, building inline without airplay
pip/window.m:222:36: error: 'CGWindowListCreateImage' is unavailable: obsoleted in macOS 15.0 - Please use ScreenCaptureKit instead.
  222 |   if(!window_image) window_image = CGWindowListCreateImage(CGRectNull, kCGWindowListOptionIncludingWindow, wid, kCGWindowImageNominalResolution | kCGWindowImageBoundsIgnoreFraming);
      |                                    ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGWindow.h:271:33: note: 'CGWindowListCreateImage' has been explicitly marked unavailable here
  271 | CG_EXTERN CGImageRef __nullable CGWindowListCreateImage(CGRect screenBounds,
      |                                 ^
pip/window.m:825:102: error: 'CGDisplayCreateImage' is unavailable: obsoleted in macOS 15.0 - Please use ScreenCaptureKit instead.
  825 |   CGImageRef window_image = window_id >= 0 ? CaptureWindow(window_id, is_hidpi) : (display_id >= 0 ? CGDisplayCreateImage(display_id) : NULL);
      |                                                                                                      ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGDirectDisplay.h:383:33: note: 'CGDisplayCreateImage' has been explicitly marked unavailable here
  383 | CG_EXTERN CGImageRef __nullable CGDisplayCreateImage(CGDirectDisplayID displayID)
      |                                 ^
pip/window.m:1086:3: error: 'CGDisplayStreamStop' is unavailable: obsoleted in macOS 15.0 - Please use ScreenCaptureKit instead.
 1086 |   CGDisplayStreamStop(display_stream);
      |   ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGDisplayStream.h:284:19: note: 'CGDisplayStreamStop' has been explicitly marked unavailable here
  284 | CG_EXTERN CGError CGDisplayStreamStop(CGDisplayStreamRef cg_nullable displayStream)
      |                   ^
pip/window.m:1113:28: error: 'kCGDisplayStreamMinimumFrameTime' is unavailable: obsoleted in macOS 15.0 - Please use ScreenCaptureKit instead.
 1113 |       (__bridge NSString *)kCGDisplayStreamMinimumFrameTime : @(1.0f / refreshRate),
      |                            ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGDisplayStream.h:188:30: note: 'kCGDisplayStreamMinimumFrameTime' has been explicitly marked unavailable here
  188 | CG_EXTERN const CFStringRef  kCGDisplayStreamMinimumFrameTime SCREEN_CAPTURE_OBSOLETE(10.8,14.0,15.0);    /* CFNumber in seconds, defaults to zero. */
      |                              ^
pip/window.m:1114:28: error: 'kCGDisplayStreamShowCursor' is unavailable: obsoleted in macOS 15.0 - Please use ScreenCaptureKit instead.
 1114 |       (__bridge NSString *)kCGDisplayStreamShowCursor : [(NSNumber*)getPref(@"mouse_capture") intValue] > 0 ? @YES : @NO,
      |                            ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGDisplayStream.h:194:30: note: 'kCGDisplayStreamShowCursor' has been explicitly marked unavailable here
  194 | CG_EXTERN const CFStringRef  kCGDisplayStreamShowCursor SCREEN_CAPTURE_OBSOLETE(10.8,14.0,15.0);  /* CFBoolean - defaults to false */
      |                              ^
pip/window.m:1117:22: error: 'CGDisplayStreamCreateWithDispatchQueue' is unavailable: obsoleted in macOS 15.0 - Please use ScreenCaptureKit instead.
 1117 |     display_stream = CGDisplayStreamCreateWithDispatchQueue(display_id, width, height, kCVPixelFormatType_32BGRA,  (__bridge CFDictionaryRef)opts, dispatch_get_main_queue(), ^(CGDisplayStreamFrameStatus status, uint64_t displayTime, IOSurfaceRef frameSurface, CGDisplayStreamUpdateRef updateRef) {
      |                      ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGDisplayStream.h:261:41: note: 'CGDisplayStreamCreateWithDispatchQueue' has been explicitly marked unavailable here
  261 | CG_EXTERN CGDisplayStreamRef __nullable CGDisplayStreamCreateWithDispatchQueue(CGDirectDisplayID display,
      |                                         ^
pip/window.m:1121:5: error: 'CGDisplayStreamStart' is unavailable: obsoleted in macOS 15.0 - Please use ScreenCaptureKit instead.
 1121 |     CGDisplayStreamStart(display_stream);
      |     ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGDisplayStream.h:272:19: note: 'CGDisplayStreamStart' has been explicitly marked unavailable here
  272 | CG_EXTERN CGError CGDisplayStreamStart(CGDisplayStreamRef cg_nullable displayStream)
      |                   ^
7 errors generated.

Skeeve avatar Mar 20 '25 06:03 Skeeve

The run.sh script uses the host macos version as deployment target by default. Doing so on macOS 15.0 fails because certain apis used by the pip app are unavailable. There should be some flag to explicitly mention this to clang but I am not sure about it.

Try building with MACOSX_DEPLOYMENT_TARGET set to 10.13 with xcode.

amitv87 avatar Mar 20 '25 11:03 amitv87