From 7415f242b885c89099156bd2cba6c63400f8fa35 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 4 Oct 2026 05:48:03 +0000 Subject: [PATCH 1/2] Initial plan From 59b533b4c1c069a317a4b324f5a98f6814b80e83 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 4 Oct 2026 05:48:55 +0000 Subject: [PATCH 2/2] Apply remaining changes Co-authored-by: gcasa <27943+gcasa@users.noreply.github.com> --- XCode/PBXFrameworksBuildPhase.m | 16 ++++++++++++++++ XCode/PBXNativeTarget.m | 3 +++ XCode/PBXShellScriptBuildPhase.m | 2 +- XCode/xcsystem.m | 2 +- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/XCode/PBXFrameworksBuildPhase.m b/XCode/PBXFrameworksBuildPhase.m index 9f7ce3d6..f00a7a83 100644 --- a/XCode/PBXFrameworksBuildPhase.m +++ b/XCode/PBXFrameworksBuildPhase.m @@ -229,6 +229,22 @@ - (NSString *) linkString linkString = [linkString stringByAppendingString: [NSString stringWithFormat: @"-L%@ ", lpath]]; } + // Other targets' products (e.g. static libraries) live in build//Products. + NSArray *buildSubdirs = [manager contentsOfDirectoryAtPath: @"build" error: NULL]; + en = [[buildSubdirs sortedArrayUsingSelector: @selector(compare:)] objectEnumerator]; + while((lpath = [en nextObject]) != nil) + { + NSString *productsDir = [[@"build" stringByAppendingPathComponent: lpath] + stringByAppendingPathComponent: @"Products"]; + BOOL isDir = NO; + if ([manager fileExistsAtPath: productsDir isDirectory: &isDir] && isDir + && [productsDir isEqualToString: uninstalledProductsDir] == NO) + { + linkString = [linkString stringByAppendingFormat: @"-L%@ ", + [productsDir stringByEscapingSpecialCharacters]]; + } + } + en = [_files objectEnumerator]; while((file = [en nextObject]) != nil) { diff --git a/XCode/PBXNativeTarget.m b/XCode/PBXNativeTarget.m index 10c2ee5d..134b24b2 100644 --- a/XCode/PBXNativeTarget.m +++ b/XCode/PBXNativeTarget.m @@ -122,6 +122,9 @@ - (void) _productWrapper forKey: @"TARGET_BUILD_DIR"]; [context setObject: aname forKey: @"TARGET_NAME"]; + [context setObject: @"derived_src" + forKey: @"PROJECT_DERIVED_FILE_DIR"]; + setenv("PROJECT_DERIVED_FILE_DIR","derived_src",1); [context setObject: uninstalledProductsDir forKey: @"BUILT_PRODUCTS_DIR"]; diff --git a/XCode/PBXShellScriptBuildPhase.m b/XCode/PBXShellScriptBuildPhase.m index a5d74f90..d90d901b 100644 --- a/XCode/PBXShellScriptBuildPhase.m +++ b/XCode/PBXShellScriptBuildPhase.m @@ -152,7 +152,7 @@ - (NSString *) contextString NSString *k = nil; result = [result stringByAppendingString: @"set -eo pipefail\n" - @"shopt -s inherit_errexit\n\n"]; + @"shopt -s inherit_errexit 2>/dev/null || true\n\n"]; while ((k = [en nextObject]) != nil) { diff --git a/XCode/xcsystem.m b/XCode/xcsystem.m index 28773978..02bbf7f0 100644 --- a/XCode/xcsystem.m +++ b/XCode/xcsystem.m @@ -91,7 +91,7 @@ NSInteger xcsystem(NSString *cmd) { NSString *scriptFormat = @"#!/bin/bash\n" @"set -eo pipefail\n" - @"shopt -s inherit_errexit\n\n" + @"shopt -s inherit_errexit 2>/dev/null || true\n\n" @"%@\n\n" @"exit $?\n"; NSString *body = @"";