Skip to content

Add Metal 4 Deployment Target #625

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
5ce5042
[Swift C++ Interop] Propagate hardening build setting to Swift
susmonteiro May 7, 2025
f564f04
Update automerger PR workflow
owenv May 28, 2025
724c104
Merge pull request #533 from swiftlang/owenv/automerge-update
owenv May 28, 2025
a76b0aa
Update swift-system to 1.5.0
jakepetroules May 28, 2025
be93573
Simplify fallback developer directory calculation
jakepetroules May 28, 2025
a1db446
Merge pull request #498 from swiftlang/susmonteiro/enable-hardening-s…
egorzhdan May 29, 2025
4bb431e
Add swift version file to record the Swift toolchain to use
bkhouri May 15, 2025
bce6ce7
Correct reference to wrong OS in XCFramework tests
jakepetroules May 29, 2025
0d89241
Enforce VALID_ARCHS for simulator platforms
jakepetroules May 29, 2025
e723b35
Improve task backtraces for dynamic tasks
owenv May 30, 2025
0506bb2
Enforce a minimum Xcode version for Open Source testing workflows
jakepetroules May 29, 2025
b81c518
License header check should ignore .swift-version
owenv Jun 2, 2025
6160b62
Merge pull request #543 from swiftlang/owenv/license-ignore
owenv Jun 2, 2025
561e474
Revert "Update the swift-llbuild in Package.swift to release/6.2 bran…
owenv Jun 2, 2025
b51f812
Revert "[6.2] Update the swift-driver to release/6.2 branch (#407)"
owenv Jun 2, 2025
475fde5
Introduce a new `MODULE_DEPENDENCIES` build setting
neonichu May 28, 2025
b572273
Merge pull request #544 from swiftlang/automerge/merge-main-2025-06-0…
owenv Jun 2, 2025
60b27cb
Improve printed descriptions of task backtraces
owenv Jun 3, 2025
76735f3
Support Cancellation in AsyncOperationQueue
plemarquand Jun 3, 2025
4f0c40a
Merge pull request #542 from swiftlang/owenv/single-use-backtraces
owenv Jun 3, 2025
3a5f0ec
Expose DYLIB_INSTALL_NAME_BASE and SWIFT_INDEX_STORE_ENABLE in PIF API
owenv May 26, 2025
a6b2109
SWIFT_SYSTEM_INCLUDE_PATHS doesn't work everywhere SWIFT_INCLUDE_PATH…
ian-twilightcoder Jun 2, 2025
7e6a0b8
Merge pull request #548 from swiftlang/owenv/backtrace-descriptions
owenv Jun 3, 2025
0135fdb
Add support for generated unit test runners with xctest discovery
owenv May 26, 2025
2209fd2
Merge pull request #546 from ian-twilightcoder/SWIFT_SYSTEM_INCLUDE_P…
ian-twilightcoder Jun 3, 2025
d435ca6
Fix BuildRequest encoding of the recordBuildBacktraces key
owenv Jun 3, 2025
b82337a
Merge pull request #550 from swiftlang/owenv/fix-request-encoding
owenv Jun 3, 2025
7e6e3bd
Unskip tests blocked by requireThreadSafeWorkingDirectory
jakepetroules Jun 2, 2025
eca9ed5
Initial support for tracking locations for assigned values in XCConfi…
neonichu Jun 4, 2025
3047927
Test the Isystem flag before using -Isystem
ian-twilightcoder Jun 4, 2025
9626e28
Merge pull request #553 from ian-twilightcoder/Isystem-feature-flag
ian-twilightcoder Jun 4, 2025
50d4c9c
Merge pull request #499 from swiftlang/owenv/test-discovery
owenv Jun 4, 2025
c1f1cf3
Revert "XCTest discovery support for non-Darwin platforms"
owenv Jun 4, 2025
db41e13
Track value locations in XCConfigs per assignment (#552)
neonichu Jun 4, 2025
5974348
Merge pull request #556 from swiftlang/revert-499-owenv/test-discovery
owenv Jun 4, 2025
b78e04a
Fix handling of multi-line XCConfig assignments (#559)
neonichu Jun 5, 2025
b133772
Ignore `-no_exported_symbols` when the debug dylib is used (rdar://15…
jonathanpenn Jun 5, 2025
8502138
Improve error message when build description attachment saving failswq
owenv Jun 6, 2025
5bbe231
Add FreeBSD support
jakepetroules Feb 14, 2025
c45116a
Merge pull request #563 from swiftlang/owenv/attachment-error
owenv Jun 6, 2025
89c1983
Remove references to obsolete '.swiftPlaceholder' module type. This i…
artemcm Jun 6, 2025
a43d0e3
Revert "Revert "XCTest discovery support for non-Darwin platforms""
owenv Jun 4, 2025
86a22ec
Fix issue due to duplicated indexstore bindings in Swift Build and TSC
owenv Jun 4, 2025
99ab50b
Merge pull request #564 from artemcm/RemoveSwiftPlaceholderModules
artemcm Jun 6, 2025
380f251
Add settings to control frame pointer omission
owenv Jun 7, 2025
9b55842
Merge pull request #567 from swiftlang/owenv/frame-pointers
owenv Jun 9, 2025
24b6435
Simplify implementation of Dispatch-async bridge
jakepetroules Jun 9, 2025
f8e4dd1
Merge pull request #558 from swiftlang/revert-556-revert-499-owenv/te…
owenv Jun 9, 2025
0b3c028
Adapt test code to SE-0481
owenv Jun 10, 2025
caf6b9f
Merge pull request #571 from swiftlang/owenv/adapt-481
owenv Jun 10, 2025
427374a
Update LocalFS to use FileManager for all operations
daveinglis Jun 6, 2025
50e386e
Merge pull request #569 from plemarquand/async-operation-queue
plemarquand Jun 10, 2025
e357809
Ensure the path to Swift Testing's macro plugin is specified correctl…
stmontgomery Jun 11, 2025
1b2d827
Merge pull request #565 from daveinglis/localfs_updates
owenv Jun 11, 2025
18fcc44
Fixup cross platform specs handling of DEAD_CODE_STRIPPING
owenv Jun 11, 2025
4963400
Merge branch 'main' into automerge/merge-main-2025-06-12_03-56
jakepetroules Jun 12, 2025
590f502
Merge pull request #576 from swiftlang/owenv/dead-strip
owenv Jun 12, 2025
d015784
Merge pull request #579 from swiftlang/automerge/merge-main-2025-06-1…
jakepetroules Jun 12, 2025
6c6309e
[Preview] Fix preview support for swift caching build (#562)
cachemeifyoucan Jun 12, 2025
62bd4c6
Merge pull request #536 from swiftlang/eng/PR-swiftsystem
owenv Jun 12, 2025
02eb8cb
Add a new VALIDATE_MODULE_DEPENDENCIES setting
bob-wilson Jun 16, 2025
c639a7f
Lookup unix fallback toolchain relative to SWIFT_EXEC when set
owenv Jun 16, 2025
2957dd1
Skip Windows tests triggering hangs in CI
owenv Jun 18, 2025
949387f
Merge pull request #594 from swiftlang/windows-bisect
owenv Jun 18, 2025
a4b0186
Cleanup compilation caching feature availability flags
owenv Jun 16, 2025
f3098de
Merge pull request #589 from swiftlang/toolchain-logging
owenv Jun 18, 2025
4986e11
Merge pull request #592 from swiftlang/owenv/cache-availability-cleanup
owenv Jun 18, 2025
972a844
Merge pull request #591 from bob-wilson/bwilson/dependency-validation…
bob-wilson Jun 20, 2025
46faa85
Support invoking the API digester in API mode in addition to ABI mode
owenv Jun 20, 2025
e2311ff
Fix the criteria for enabling modulewrap in release builds
owenv Jun 22, 2025
a35b067
Define an RPATH_ORIGIN variable for constructing valid cross-platform…
owenv Jun 22, 2025
4e914cb
Merge branch 'main' into automerge/merge-main-2025-06-23_09-03
owenv Jun 23, 2025
a7a9630
Merge pull request #604 from swiftlang/owenv/rpath-origin
owenv Jun 23, 2025
40c31b6
Merge pull request #603 from swiftlang/owenv/modulewrap-fix
owenv Jun 23, 2025
d2b22f0
Merge pull request #601 from swiftlang/owenv/api-digester
owenv Jun 23, 2025
ab3abb2
Merge pull request #605 from swiftlang/automerge/merge-main-2025-06-2…
owenv Jun 23, 2025
71507d0
Don't attempt to generate DSYMs on non-darwin platforms
owenv Jun 23, 2025
035d5a6
Lookup swift-api-digester relative to the swiftc in use
owenv Jun 24, 2025
eb6551d
Merge pull request #607 from swiftlang/owenv/linux-dsym-fix
owenv Jun 24, 2025
f741881
Merge pull request #612 from swiftlang/owenv/digester-lookup
owenv Jun 25, 2025
96b61d0
[swift] Get correct ExitStatus if swift tasks receives signal (#581)
cachemeifyoucan Jun 25, 2025
731296e
Enable compilation caching for Swift packages
jansvoboda11 Jun 25, 2025
c4d6059
Fix toolchain stack equality checks when checking if specialized targ…
owenv Jun 26, 2025
01a7c3d
Don't require objc in modulemaps generated for Swift compatibility he…
xymus Jun 26, 2025
f204167
Merge pull request #615 from swiftlang/owenv/specialization-toolchain…
owenv Jun 26, 2025
6988bf1
Merge pull request #613 from swiftlang/jan_svoboda/swift-package-comp…
jansvoboda11 Jun 27, 2025
675cd2b
Allow downgrading API breakage errors to warnings
owenv Jun 28, 2025
b860b49
Allow setting LINKER_DRIVER=auto to choose an appropriate value for t…
owenv Jun 29, 2025
9612ab4
Merge pull request #623 from swiftlang/automerge/merge-main-2025-06-3…
owenv Jun 30, 2025
78e7e1c
Merge pull request #622 from swiftlang/owenv/auto-linker-driver
owenv Jun 30, 2025
8888752
Merge pull request #616 from xymus/c-compat-modulemaps
xymus Jun 30, 2025
1aece47
Merge pull request #621 from swiftlang/owenv/digester-downgrade
owenv Jun 30, 2025
51fc69e
Add Metal 4 Deployment Target
stephenverderame Jul 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/automerge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ jobs:
name: Create PR to merge main into release branch
uses: swiftlang/github-workflows/.github/workflows/create_automerge_pr.yml@main
with:
base_branch: release/6.2
head_branch: release/6.2
base_branch: main
permissions:
contents: write
pull-requests: write
Expand Down
1 change: 1 addition & 0 deletions .licenseignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@
**/Package.swift
.dir-locals.el
.editorconfig
.swift-version
CODEOWNERS
Package.swift
1 change: 1 addition & 0 deletions .swift-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
6.1.0
10 changes: 5 additions & 5 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ let package = Package(
"SWBBuildSystem",
"SWBServiceCore",
"SWBTaskExecution",
.product(name: "SystemPackage", package: "swift-system", condition: .when(platforms: [.linux, .android, .windows])),
.product(name: "SystemPackage", package: "swift-system", condition: .when(platforms: [.linux, .openbsd, .android, .windows, .custom("freebsd")])),
],
exclude: ["CMakeLists.txt"],
swiftSettings: swiftSettings(languageMode: .v5)),
Expand Down Expand Up @@ -201,7 +201,7 @@ let package = Package(
"SWBCSupport",
"SWBLibc",
.product(name: "ArgumentParser", package: "swift-argument-parser"),
.product(name: "SystemPackage", package: "swift-system", condition: .when(platforms: [.linux, .android, .windows])),
.product(name: "SystemPackage", package: "swift-system", condition: .when(platforms: [.linux, .openbsd, .android, .windows, .custom("freebsd")])),
],
exclude: ["CMakeLists.txt"],
swiftSettings: swiftSettings(languageMode: .v5)),
Expand Down Expand Up @@ -369,7 +369,7 @@ let package = Package(
// Perf tests
.testTarget(
name: "SWBBuildSystemPerfTests",
dependencies: ["SWBBuildSystem", "SWBTestSupport"],
dependencies: ["SWBBuildSystem", "SWBTestSupport", "SwiftBuildTestSupport"],
swiftSettings: swiftSettings(languageMode: .v6)),
.testTarget(
name: "SWBCASPerfTests",
Expand Down Expand Up @@ -455,11 +455,11 @@ if useLocalDependencies {
}
} else {
package.dependencies += [
.package(url: "https://github.com/swiftlang/swift-driver.git", branch: "release/6.2"),
.package(url: "https://github.com/swiftlang/swift-driver.git", branch: "main"),
.package(url: "https://github.com/apple/swift-system.git", .upToNextMajor(from: "1.5.0")),
.package(url: "https://github.com/apple/swift-argument-parser.git", from: "1.0.3"),
]
if !useLLBuildFramework {
package.dependencies += [.package(url: "https://github.com/swiftlang/swift-llbuild.git", branch: "release/6.2"),]
package.dependencies += [.package(url: "https://github.com/swiftlang/swift-llbuild.git", branch: "main"),]
}
}
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ When building SwiftPM from sources which include Swift Build integration, passin

### With Xcode

Changes to swift-build can also be tested in Xcode using the `launch-xcode` command plugin provided by the package. Run `swift package --disable-sandbox launch-xcode` from your checkout of swift-build to launch a copy of the currently `xcode-select`ed Xcode.app configured to use your modified copy of the build system service. This workflow is currently supported when using Xcode 16.2.
Changes to swift-build can also be tested in Xcode using the `launch-xcode` command plugin provided by the package. Run `swift package --disable-sandbox launch-xcode` from your checkout of swift-build to launch a copy of the currently `xcode-select`ed Xcode.app configured to use your modified copy of the build system service. This workflow is generally only supported when using the latest available Xcode version.

### With xcodebuild

Changes to swift-build can also be tested in xcodebuild using the `run-xcodebuild` command plugin provided by the package. Run `swift package --disable-sandbox run-xcodebuild` from your checkout of swift-build to run xcodebuild from the currently `xcode-select`ed Xcode.app configured to use your modified copy of the build system service. Arguments followed by `--` will be forwarded to xcodebuild unmodified. This workflow is currently supported when using Xcode 16.2.
Changes to swift-build can also be tested in xcodebuild using the `run-xcodebuild` command plugin provided by the package. Run `swift package --disable-sandbox run-xcodebuild` from your checkout of swift-build to run xcodebuild from the currently `xcode-select`ed Xcode.app configured to use your modified copy of the build system service. Arguments followed by `--` will be forwarded to xcodebuild unmodified. This workflow is generally only supported when using the latest available Xcode version.

### Debugging

Expand Down
2 changes: 1 addition & 1 deletion Sources/SWBApplePlatform/AssetCatalogCompiler.swift
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public final class ActoolCompilerSpec : GenericCompilerSpec, SpecIdentifierType,
}

private func assetTagCombinations(catalogInputs inputs: [FileToBuild], _ cbc: CommandBuildContext, _ delegate: any TaskGenerationDelegate) async throws -> Set<Set<String>> {
return try await executeExternalTool(cbc, delegate, commandLine: [resolveExecutablePath(cbc, cbc.scope.actoolExecutablePath()).str, "--print-asset-tag-combinations", "--output-format", "xml1"] + inputs.map { $0.absolutePath.str }, workingDirectory: cbc.producer.defaultWorkingDirectory, environment: environmentFromSpec(cbc, delegate).bindingsDictionary, executionDescription: "Compute asset tag combinations") { output in
return try await executeExternalTool(cbc, delegate, commandLine: [resolveExecutablePath(cbc, cbc.scope.actoolExecutablePath(), delegate: delegate).str, "--print-asset-tag-combinations", "--output-format", "xml1"] + inputs.map { $0.absolutePath.str }, workingDirectory: cbc.producer.defaultWorkingDirectory, environment: environmentFromSpec(cbc, delegate).bindingsDictionary, executionDescription: "Compute asset tag combinations") { output in
struct AssetCatalogToolOutput: Decodable {
struct Diagnostic: Decodable {
let description: String
Expand Down
4 changes: 2 additions & 2 deletions Sources/SWBApplePlatform/InterfaceBuilderCompiler.swift
Original file line number Diff line number Diff line change
Expand Up @@ -171,8 +171,8 @@ public final class IbtoolCompilerSpecStoryboard: IbtoolCompilerSpec, SpecIdentif
}
}

override public func commandLineFromTemplate(_ cbc: CommandBuildContext, _ delegate: any TaskGenerationDelegate, optionContext: (any DiscoveredCommandLineToolSpecInfo)?, specialArgs: [String] = [], lookup: ((MacroDeclaration) -> MacroExpression?)? = nil) -> [CommandLineArgument] {
var commandLine = super.commandLineFromTemplate(cbc, delegate, optionContext: optionContext, specialArgs: specialArgs, lookup: lookup)
override public func commandLineFromTemplate(_ cbc: CommandBuildContext, _ delegate: any TaskGenerationDelegate, optionContext: (any DiscoveredCommandLineToolSpecInfo)?, specialArgs: [String] = [], lookup: ((MacroDeclaration) -> MacroExpression?)? = nil) async -> [CommandLineArgument] {
var commandLine = await super.commandLineFromTemplate(cbc, delegate, optionContext: optionContext, specialArgs: specialArgs, lookup: lookup)
guard let primaryOutput = evaluatedOutputs(cbc, delegate)?.first else {
delegate.error("Unable to determine primary output for storyboard compilation")
return []
Expand Down
2 changes: 1 addition & 1 deletion Sources/SWBApplePlatform/MiGCompiler.swift
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public final class MigCompilerSpec : CompilerSpec, SpecIdentifierType, @unchecke
return cbc.scope.migExecutablePath().str
}

public override func resolveExecutablePath(_ cbc: CommandBuildContext, _ path: Path) -> Path {
public override func resolveExecutablePath(_ cbc: CommandBuildContext, _ path: Path, delegate: any CoreClientTargetDiagnosticProducingDelegate) async -> Path {
return resolveExecutablePath(cbc.producer, Path(computeExecutablePath(cbc)))
}

Expand Down
4 changes: 2 additions & 2 deletions Sources/SWBApplePlatform/OpenCLCompiler.swift
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ final class OpenCLCompilerSpec : CompilerSpec, SpecIdentifierType, GCCCompatible

let executionDescription = "Create \(arch) bitcode for \(filePath.basename)"

var commandLine = [resolveExecutablePath(cbc, Path(openclc)).str]
var commandLine = [await resolveExecutablePath(cbc, Path(openclc), delegate: delegate).str]
commandLine += ["-x", "cl", compilerVersionFlag]
optimizationLevelFlag.map{ commandLine.append($0) }
commandLine += preprocessorDefinitionsFlags
Expand Down Expand Up @@ -101,7 +101,7 @@ final class OpenCLCompilerSpec : CompilerSpec, SpecIdentifierType, GCCCompatible

let ruleInfo = ["Compile", filePath.str]

var commandLine = [resolveExecutablePath(cbc, Path(openclc)).str]
var commandLine = [await resolveExecutablePath(cbc, Path(openclc), delegate: delegate).str]
commandLine += ["-x", "cl", compilerVersionFlag]
if scope.evaluate(BuiltinMacros.OPENCL_MAD_ENABLE) {
commandLine.append("-cl-mad-enable")
Expand Down
4 changes: 2 additions & 2 deletions Sources/SWBApplePlatform/ResMergerLinkerSpec.swift
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public final class ResMergerLinkerSpec : GenericLinkerSpec, SpecIdentifierType,

let environment: EnvironmentBindings = environmentFromSpec(cbc, delegate)
do {
var commandLine = [resolveExecutablePath(cbc, Path("ResMerger")).str]
var commandLine = [await resolveExecutablePath(cbc, Path("ResMerger"), delegate: delegate).str]

commandLine += BuiltinMacros.ifSet(BuiltinMacros.MACOS_TYPE, in: cbc.scope) { ["-fileType", $0] }
commandLine += BuiltinMacros.ifSet(BuiltinMacros.MACOS_CREATOR, in: cbc.scope) { ["-fileCreator", $0] }
Expand Down Expand Up @@ -64,7 +64,7 @@ public final class ResMergerLinkerSpec : GenericLinkerSpec, SpecIdentifierType,
outputPath = outputPath.join(cbc.scope.evaluate(BuiltinMacros.PRODUCT_NAME) + ".rsrc")
}

var commandLine = [resolveExecutablePath(cbc, Path("ResMerger")).str]
var commandLine = [await resolveExecutablePath(cbc, Path("ResMerger"), delegate: delegate).str]
commandLine.append(tmpOutputPath.str)

commandLine += BuiltinMacros.ifSet(BuiltinMacros.MACOS_TYPE, in: cbc.scope) { ["-fileType", $0] }
Expand Down
13 changes: 13 additions & 0 deletions Sources/SWBApplePlatform/Specs/DarwinProductTypes.xcspec
Original file line number Diff line number Diff line change
Expand Up @@ -461,4 +461,17 @@
);
Platforms = (driverkit);
},
{
_Domain = darwin;
Type = ProductType;
Identifier = com.apple.product-type.tool.swiftpm-test-runner;
Name = "SwiftPM Unit Test Runner";
Description = "SwiftPM Unit Test Runner";
DefaultBuildProperties = {
__SKIP_BUILD = YES;
};
PackageTypes = (
com.apple.package-type.mach-o-executable
);
},
)
3 changes: 3 additions & 0 deletions Sources/SWBApplePlatform/Specs/MetalCompiler.xcspec
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,7 @@
Metal30,
Metal31,
Metal32,
Metal40,
);
Category = BuildOptions;
},
Expand All @@ -272,6 +273,7 @@
Metal30,
Metal31,
Metal32,
Metal40,
);
CommandLineArgs = {
UseDeploymentTarget = ( );
Expand All @@ -286,6 +288,7 @@
Metal30 = ( "-std=metal3.0", );
Metal31 = ( "-std=metal3.1", );
Metal32 = ( "-std=metal3.2", );
Metal40 = ( "-std=metal4.0", );
};
},
{
Expand Down
1 change: 1 addition & 0 deletions Sources/SWBApplePlatform/Specs/MetalLinker.xcspec
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@
Metal30 = ( "-std=metal3.0", );
Metal31 = ( "-std=metal3.1", );
Metal32 = ( "-std=metal3.2", );
Metal40 = ( "-std=metal4.0", );
};
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,8 @@
"[MTL_LANGUAGE_REVISION]-description-[Metal31]" = "Metal 3.1";
"[MTL_LANGUAGE_REVISION]-value-[Metal32]" = "Metal 3.2";
"[MTL_LANGUAGE_REVISION]-description-[Metal32]" = "Metal 3.2";
"[MTL_LANGUAGE_REVISION]-value-[Metal40]" = "Metal 4.0";
"[MTL_LANGUAGE_REVISION]-description-[Metal40]" = "Metal 4.0";

"[MTL_ENABLE_DEBUG_INFO]-name" = "Produce Debugging Information";
"[MTL_ENABLE_DEBUG_INFO]-description" = "Debugging information is required for shader debugging and profiling.";
Expand Down
6 changes: 3 additions & 3 deletions Sources/SWBApplePlatform/XCStringsCompiler.swift
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public final class XCStringsCompilerSpec: GenericCompilerSpec, SpecIdentifierTyp
}

if shouldGenerateSymbols(cbc) {
constructSymbolGenerationTask(cbc, delegate)
await constructSymbolGenerationTask(cbc, delegate)
}

if shouldCompileCatalog(cbc) {
Expand Down Expand Up @@ -138,10 +138,10 @@ public final class XCStringsCompilerSpec: GenericCompilerSpec, SpecIdentifierTyp
}

/// Generates a task for generating code symbols for strings.
private func constructSymbolGenerationTask(_ cbc: CommandBuildContext, _ delegate: any TaskGenerationDelegate) {
private func constructSymbolGenerationTask(_ cbc: CommandBuildContext, _ delegate: any TaskGenerationDelegate) async {
// The template spec file contains fields suitable for the compilation step.
// But here we construct a custom command line for symbol generation.
let execPath = resolveExecutablePath(cbc, Path("xcstringstool"))
let execPath = await resolveExecutablePath(cbc, Path("xcstringstool"), delegate: delegate)
var commandLine = [execPath.str, "generate-symbols"]

// For now shouldGenerateSymbols only returns true if there are Swift sources.
Expand Down
14 changes: 7 additions & 7 deletions Sources/SWBBuildSystem/BuildOperation.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2304,9 +2304,9 @@ internal final class OperationSystemAdaptor: SWBLLBuild.BuildSystemDelegate, Act
private func inputNounPhraseForBuildKey(_ inputKey: BuildKey) -> String {
switch inputKey {
case is BuildKey.Command, is BuildKey.CustomTask:
return "the producer"
return "the task producing"
case is BuildKey.DirectoryContents, is BuildKey.FilteredDirectoryContents, is BuildKey.DirectoryTreeSignature, is BuildKey.Node:
return "an input"
return "an input of"
case is BuildKey.Target, is BuildKey.Stat:
return "<unexpected build key>"
default:
Expand Down Expand Up @@ -2343,15 +2343,15 @@ internal final class OperationSystemAdaptor: SWBLLBuild.BuildSystemDelegate, Act
previousFrameID = nil
case .signatureChanged:
category = .ruleSignatureChanged
description = "signature of \(descriptionForBuildKey(rule)) changed"
description = "arguments, environment, or working directory of \(descriptionForBuildKey(rule)) changed"
previousFrameID = nil
case .invalidValue:
category = .ruleHadInvalidValue
previousFrameID = nil
if let command = rule as? BuildKey.Command, let task = lookupTask(TaskIdentifier(rawValue: command.name)), task.alwaysExecuteTask {
description = "\(descriptionForBuildKey(rule)) is configured to run in every incremental build"
description = "\(descriptionForBuildKey(rule)) was configured to run in every incremental build"
} else if rule is BuildKey.Command || rule is BuildKey.CustomTask {
description = "\(descriptionForBuildKey(rule)) did not have up-to-date outputs"
description = "outputs of \(descriptionForBuildKey(rule)) were missing or modified"
} else {
description = "\(descriptionForBuildKey(rule)) changed"
}
Expand All @@ -2361,7 +2361,7 @@ internal final class OperationSystemAdaptor: SWBLLBuild.BuildSystemDelegate, Act
if isTriggerNode(rule), let mutatedNodeDescription = descriptionOfInputMutatedByBuildKey(inputRule) {
description = "\(descriptionForBuildKey(inputRule)) mutated \(mutatedNodeDescription)"
} else {
description = "\(inputNounPhraseForBuildKey(inputRule)) of \(descriptionForBuildKey(rule)) \(rebuiltVerbPhraseForBuildKey(inputRule))"
description = "\(inputNounPhraseForBuildKey(inputRule)) \(descriptionForBuildKey(rule)) \(rebuiltVerbPhraseForBuildKey(inputRule))"
}
previousFrameID = previousFrameIdentifier
} else {
Expand All @@ -2370,7 +2370,7 @@ internal final class OperationSystemAdaptor: SWBLLBuild.BuildSystemDelegate, Act
}
case .forced:
category = .ruleForced
description = "\(descriptionForBuildKey(rule)) was forced to run"
description = "\(descriptionForBuildKey(rule)) was forced to run to break a cycle in the build graph"
previousFrameID = nil
@unknown default:
category = .none
Expand Down
4 changes: 2 additions & 2 deletions Sources/SWBBuildSystem/DependencyCycleFormatter.swift
Original file line number Diff line number Diff line change
Expand Up @@ -379,7 +379,7 @@ struct DependencyCycleFormatter {
message = "Target '\(previousTargetName)' has an explicit dependency on Target '\(targetName)'"
case let .implicitBuildPhaseLinkage(filename, _, buildPhase)?:
message = "Target '\(previousTargetName)' has an implicit dependency on Target '\(targetName)' because '\(previousTargetName)' references the file '\(filename)' in the build phase '\(buildPhase)'"
case let .implicitBuildSettingLinkage(settingName, options)?:
case let .implicitBuildSetting(settingName, options)?:
message = "Target '\(previousTargetName)' has an implicit dependency on Target '\(targetName)' because '\(previousTargetName)' defines the option '\(options.joined(separator: " "))' in the build setting '\(settingName)'"
case let .impliedByTransitiveDependencyViaRemovedTargets(intermediateTargetName: intermediateTargetName):
message = "Target '\(previousTargetName)' has a dependency on Target '\(targetName)' via its transitive dependency through '\(intermediateTargetName)'"
Expand Down Expand Up @@ -501,7 +501,7 @@ struct DependencyCycleFormatter {
suffix = " via the “Target Dependencies“ build phase"
case let .implicitBuildPhaseLinkage(filename, _, buildPhase)?:
suffix = " because the scheme has implicit dependencies enabled and the Target '\(lastTargetsName)' references the file '\(filename)' in the build phase '\(buildPhase)'"
case let .implicitBuildSettingLinkage(settingName, options)?:
case let .implicitBuildSetting(settingName, options)?:
suffix = " because the scheme has implicit dependencies enabled and the Target '\(lastTargetsName)' defines the options '\(options.joined(separator: " "))' in the build setting '\(settingName)'"
case let .impliedByTransitiveDependencyViaRemovedTargets(intermediateTargetName: intermediateTargetName):
suffix = " via its transitive dependency through '\(intermediateTargetName)'"
Expand Down
Loading
Loading