@@ -230,13 +230,17 @@ extension Target {
230230 self . swiftSettings = swiftSettings
231231 }
232232
233- func addComputeBinarySettings ( ) {
233+ func addComputeSettings ( ) {
234234 dependencies. append (
235235 " Compute " ,
236236 )
237237 var swiftSettings = swiftSettings ?? [ ]
238238 swiftSettings. append ( . define( " OPENATTRIBUTEGRAPH_COMPUTE " ) )
239239 self . swiftSettings = swiftSettings
240+
241+ var linkerSettings = linkerSettings ?? [ ]
242+ linkerSettings. append ( . linkedLibrary( " swiftDemangle " , . when( platforms: . darwinPlatforms) ) )
243+ self . linkerSettings = linkerSettings
240244 }
241245}
242246
@@ -272,16 +276,20 @@ let swiftClonePlugin = Target.plugin(
272276// MARK: - Targets
273277
274278let platformTarget = Target . target (
275- name: " Platform " ,
279+ // Avoid target collision with Compute package
280+ name: " OpenAttributeGraphPlatform " ,
281+ path: " Sources/Platform " ,
276282 cSettings: sharedCSettings + [
277283 . define( " _GNU_SOURCE " , . when( platforms: [ . linux] ) ) ,
278284 ]
279285)
280286let utilitiesTarget = Target . target (
281- name: " Utilities " ,
287+ // Avoid target collision with Compute package
288+ name: " OpenAttributeGraphUtilities " ,
282289 dependencies: [
283290 . target( name: platformTarget. name) ,
284291 ] ,
292+ path: " Sources/Utilities " ,
285293 cxxSettings: sharedCxxSettings
286294)
287295// FIXME: Merge into one target
@@ -365,7 +373,7 @@ let package = Package(
365373 name: " OpenAttributeGraph " ,
366374 products: [
367375 . library( name: " OpenAttributeGraph " , type: . dynamic, targets: [ openAttributeGraphTarget. name, openAttributeGraphCxxTarget. name] ) ,
368- . library( name: " OpenAttributeGraphShims " , type: . dynamic, targets: [ openAttributeGraphTarget . name , openAttributeGraphCxxTarget . name , openAttributeGraphShimsTarget. name] ) ,
376+ . library( name: " OpenAttributeGraphShims " , type: . dynamic, targets: [ openAttributeGraphShimsTarget. name] ) ,
369377 ] ,
370378 dependencies: [
371379 . package ( url: " https://github.com/apple/swift-numerics " , from: " 1.0.2 " ) ,
@@ -421,22 +429,30 @@ if buildForDarwinPlatform {
421429}
422430
423431if computeCondition {
424- let computeBinary = envBoolValue ( " OPENATTRIBUTESHIMS_COMPUTE_BINARY " , default: true )
432+ let computeBinary = envBoolValue ( " OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY " , default: false )
425433 if computeBinary {
426- let computeVersion = envStringValue ( " OPENATTRIBUTESHIMS_COMPUTE_BINARY_VERSION " , default: " 0.0.1 " )
427- let computeURL = envStringValue ( " OPENATTRIBUTESHIMS_COMPUTE_BINARY_URL " , default: " https://github.com/Kyle-Ye/Compute/releases/download/ \( computeVersion) /Compute.xcframework.zip " )
428- let computeChecksum = envStringValue ( " OPENATTRIBUTESHIMS_COMPUTE_BINARY_CHECKSUM " , default: " 95a256da2055d7c73184aeb9be088ba7019f7ea79b8a31e2dd930526c5ccbe8f " )
434+ let computeVersion = envStringValue ( " OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY_VERSION " , default: " 0.0.1 " )
435+ // TODO: Use upstream link when avaiable. Tracked on https://github.com/jcmosc/Compute/issues/20
436+ let computeURL = envStringValue ( " OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY_URL " , default: " https://github.com/Kyle-Ye/Compute/releases/download/ \( computeVersion) /Compute.xcframework.zip " )
437+ let computeChecksum = envStringValue ( " OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY_CHECKSUM " , default: " 95a256da2055d7c73184aeb9be088ba7019f7ea79b8a31e2dd930526c5ccbe8f " )
429438 package . targets. append (
430439 . binaryTarget(
431440 name: " Compute " ,
432441 url: computeURL,
433442 checksum: computeChecksum
434- ) ,
443+ )
435444 )
436- openAttributeGraphShimsTarget. addComputeBinarySettings ( )
437445 } else {
438- // TODO
446+ let computeRepo : Package . Dependency
447+ if useLocalDeps {
448+ computeRepo = Package . Dependency. package ( path: " ../Compute " )
449+ } else {
450+ // TODO: No release tag or branch yet.
451+ computeRepo = Package . Dependency. package ( url: " https://github.com/jcmosc/Compute " , revision: " 34c5af92008a2db18e8b598fb426e3e2872e752c " )
452+ }
453+ package . dependencies. append ( computeRepo)
439454 }
455+ openAttributeGraphShimsTarget. addComputeSettings ( )
440456 package . platforms = [ . iOS( . v18) , . macOS( . v15) , . macCatalyst( . v18) , . tvOS( . v18) , . watchOS( . v10) , . visionOS( . v2) ]
441457} else if attributeGraphCondition {
442458 setupDPFDependency ( )
0 commit comments