Add configuration option to disable the sandbox for SwiftPM operations

Disabling the sandbox is needed to run tests for the Swift VS Code extension in a sandbox.
This commit is contained in:
Alex Hoppen
2024-08-01 09:23:22 -07:00
parent 5c2055d54e
commit 7e2d12a7a0
3 changed files with 20 additions and 3 deletions

View File

@@ -261,7 +261,13 @@ package actor SwiftPMBuildSystem {
fileSystem: fileSystem,
location: location,
configuration: configuration,
customHostToolchain: hostSwiftPMToolchain
customHostToolchain: hostSwiftPMToolchain,
customManifestLoader: ManifestLoader(
toolchain: hostSwiftPMToolchain,
isManifestSandboxEnabled: !(options.swiftPM.disableSandbox ?? false),
cacheDir: location.sharedManifestsCacheDirectory,
importRestrictions: configuration.manifestImportRestrictions
)
)
let buildConfiguration: PackageModel.BuildConfiguration
@@ -378,6 +384,7 @@ extension SwiftPMBuildSystem {
destinationBuildParameters: destinationBuildParameters,
toolsBuildParameters: toolsBuildParameters,
graph: modulesGraph,
disableSandbox: options.swiftPM.disableSandbox ?? false,
fileSystem: fileSystem,
observabilityScope: observabilitySystem.topScope
)
@@ -631,6 +638,9 @@ extension SwiftPMBuildSystem: BuildSystemIntegration.BuildSystem {
"--disable-index-store",
"--target", target.targetID,
]
if options.swiftPM.disableSandbox ?? false {
arguments += ["--disable-sandbox"]
}
if let configuration = options.swiftPM.configuration {
arguments += ["-c", configuration.rawValue]
}