Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 0 additions & 1 deletion .github/workflows/compatibility_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ jobs:
runs-on: ${{ matrix.os }}
env:
OPENATTRIBUTEGRAPH_WERROR: 1
OPENATTRIBUTEGRAPH_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH: 1
OPENATTRIBUTEGRAPH_COMPATIBILITY_TEST: 1
OPENATTRIBUTEGRAPH_USE_LOCAL_DEPS: 1
OPENATTRIBUTEGRAPH_TARGET_RELEASE: 2024
Expand Down
9 changes: 2 additions & 7 deletions .github/workflows/compute.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,10 @@ jobs:
swift_version: ["6.2"]
runs-on: ubuntu-22.04
env:
# -Wno-elaborated-enum-base is not working for Compute dependency. Disable warnings-as-errors for now to unblock CI. We should fix the underlying issue and re-enable warnings-as-errors in the future.
# OPENATTRIBUTEGRAPH_WERROR: 1
OPENATTRIBUTEGRAPH_WERROR: 0
OPENATTRIBUTEGRAPH_WERROR: 1
OPENATTRIBUTEGRAPH_OPENATTRIBUTESHIMS_COMPUTE: 1
OPENATTRIBUTEGRAPH_OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY: 0
OPENATTRIBUTEGRAPH_USE_LOCAL_DEPS: 1
OPENATTRIBUTEGRAPH_COMPATIBILITY_TEST: 0
container: swift:${{ matrix.swift_version }}-jammy
steps:
- uses: actions/checkout@v4
Expand All @@ -45,7 +42,6 @@ jobs:
OPENATTRIBUTEGRAPH_WERROR: 1
OPENATTRIBUTEGRAPH_OPENATTRIBUTESHIMS_COMPUTE: 1
OPENATTRIBUTEGRAPH_OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY: 1
OPENATTRIBUTEGRAPH_COMPATIBILITY_TEST: 0
steps:
- uses: actions/checkout@v4
- name: Setup Xcode
Expand Down Expand Up @@ -73,7 +69,6 @@ jobs:
OPENATTRIBUTEGRAPH_WERROR: 1
OPENATTRIBUTEGRAPH_OPENATTRIBUTESHIMS_COMPUTE: 1
OPENATTRIBUTEGRAPH_OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY: 1
OPENATTRIBUTEGRAPH_COMPATIBILITY_TEST: 0
steps:
- uses: actions/checkout@v4
- name: Setup Xcode
Expand All @@ -86,7 +81,7 @@ jobs:
run: |
xcodebuild build \
-workspace .swiftpm/xcode/package.xcworkspace \
-scheme OpenAttributeGraph-Package \
-scheme OpenAttributeGraph \
-configuration Debug \
-destination "platform=iOS Simulator,OS=${{ matrix.ios-version }},name=${{ matrix.ios-simulator-name }}" \
-derivedDataPath .build-debug \
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ jobs:
runs-on: ${{ matrix.os }}
env:
OPENATTRIBUTEGRAPH_WERROR: 1
OPENATTRIBUTEGRAPH_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH: 0
OPENATTRIBUTEGRAPH_COMPATIBILITY_TEST: 0
OPENATTRIBUTEGRAPH_USE_LOCAL_DEPS: 1
OPENATTRIBUTEGRAPH_TARGET_RELEASE: 2024
DARWINPRIVATEFRAMEWORKS_TARGET_RELEASE: 2024
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ jobs:
runs-on: ${{ matrix.os }}
env:
OPENATTRIBUTEGRAPH_WERROR: 1
OPENATTRIBUTEGRAPH_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH: 0
OPENATTRIBUTEGRAPH_COMPATIBILITY_TEST: 0
OPENATTRIBUTEGRAPH_USE_LOCAL_DEPS: 1
OPENATTRIBUTEGRAPH_TARGET_RELEASE: 2024
DARWINPRIVATEFRAMEWORKS_TARGET_RELEASE: 2024
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ jobs:
runs-on: ubuntu-22.04
env:
OPENATTRIBUTEGRAPH_WERROR: 1
OPENATTRIBUTEGRAPH_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH: 0
OPENATTRIBUTEGRAPH_COMPATIBILITY_TEST: 0
container: swift:${{ matrix.swift_version }}-jammy
steps:
- uses: actions/checkout@v4
Expand Down
11 changes: 1 addition & 10 deletions Package.resolved

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

97 changes: 57 additions & 40 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ let compatibilityTestCondition = envBoolValue("COMPATIBILITY_TEST", default: fal

let useLocalDeps = envBoolValue("USE_LOCAL_DEPS")
let computeCondition = envBoolValue("OPENATTRIBUTESHIMS_COMPUTE", default: false)
let attributeGraphCondition = envBoolValue("OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH", default: buildForDarwinPlatform && !isSPIBuild)
let attributeGraphCondition = envBoolValue("OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH", default: false)

// MARK: - Shared Settings

Expand Down Expand Up @@ -276,16 +276,14 @@ let swiftClonePlugin = Target.plugin(
// MARK: - Targets

let platformTarget = Target.target(
// Avoid target collision with Compute package
name: "OpenAttributeGraphPlatform",
name: "Platform",
path: "Sources/Platform",
cSettings: sharedCSettings + [
.define("_GNU_SOURCE", .when(platforms: [.linux])),
]
)
let utilitiesTarget = Target.target(
// Avoid target collision with Compute package
name: "OpenAttributeGraphUtilities",
name: "Utilities",
dependencies: [
.target(name: platformTarget.name),
],
Expand Down Expand Up @@ -372,20 +370,13 @@ let openAttributeGraphCompatibilityTestsTarget = Target.testTarget(
let package = Package(
name: "OpenAttributeGraph",
products: [
.library(name: "OpenAttributeGraph", type: .dynamic, targets: [openAttributeGraphTarget.name, openAttributeGraphCxxTarget.name]),
.library(name: "OpenAttributeGraphShims", type: .dynamic, targets: [openAttributeGraphShimsTarget.name]),
],
dependencies: [
.package(url: "https://github.com/apple/swift-numerics", from: "1.0.2"),
],
targets: [
swiftClonePlugin,
platformTarget,
utilitiesTarget,
openAttributeGraphTarget,
openAttributeGraphCxxTarget,
openAttributeGraphShimsTarget,
.library(
name: "OpenAttributeGraphShims",
type: .dynamic,
targets: [openAttributeGraphShimsTarget.name]
)
],
targets: [openAttributeGraphShimsTarget],
cxxLanguageStandard: .cxx20
)

Expand Down Expand Up @@ -413,33 +404,18 @@ func setupDPFDependency() {
}
}

if compatibilityTestCondition {
setupDPFDependency()
openAttributeGraphCompatibilityTestsTarget.addAGSettings()
} else {
package.targets += [
utilitiesTestsTarget,
openAttributeGraphCxxTestsTarget,
openAttributeGraphShimsTestsTarget,
]
}

if buildForDarwinPlatform {
package.targets.append(openAttributeGraphCompatibilityTestsTarget)
}

if computeCondition {
let computeBinary = envBoolValue("OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY", default: false)
if computeBinary {
let computeVersion = envStringValue("OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY_VERSION", default: "0.0.1")
let version = envStringValue("OPENATTRIBUTESHIMS_COMPUTE_BINARY_VERSION", default: "0.0.1")
// TODO: Use upstream link when avaiable. Tracked on https://github.com/jcmosc/Compute/issues/20
let computeURL = envStringValue("OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY_URL", default: "https://github.com/Kyle-Ye/Compute/releases/download/\(computeVersion)/Compute.xcframework.zip")
let computeChecksum = envStringValue("OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY_CHECKSUM", default: "95a256da2055d7c73184aeb9be088ba7019f7ea79b8a31e2dd930526c5ccbe8f")
let url = envStringValue("OPENATTRIBUTESHIMS_COMPUTE_BINARY_URL", default: "https://github.com/Kyle-Ye/Compute/releases/download/\(version)/Compute.xcframework.zip")
let checksum = envStringValue("OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY_CHECKSUM", default: "95a256da2055d7c73184aeb9be088ba7019f7ea79b8a31e2dd930526c5ccbe8f")
package.targets.append(
.binaryTarget(
name: "Compute",
url: computeURL,
checksum: computeChecksum
url: url,
checksum: checksum
)
)
} else {
Expand All @@ -454,10 +430,51 @@ if computeCondition {
}
openAttributeGraphShimsTarget.addComputeSettings()
package.platforms = [.iOS(.v18), .macOS(.v15), .macCatalyst(.v18), .tvOS(.v18), .watchOS(.v10), .visionOS(.v2)]
} else if attributeGraphCondition {
} else if attributeGraphCondition, buildForDarwinPlatform {
setupDPFDependency()
openAttributeGraphShimsTarget.addAGSettings()
} else {
let oagBinary = envBoolValue("OPENATTRIBUTESHIMS_OAG_USE_BINARY", default: false)
if oagBinary {
let version = envStringValue("OPENATTRIBUTESHIMS_OAG_BINARY_VERSION", default: "0.4.0")
let url = envStringValue("OPENATTRIBUTESHIMS_OAG_BINARY_URL", default: "https://github.com/OpenSwiftUIProject/OpenAttributeGraph/releases/download/\(version)/OpenAttributeGraph.xcframework.zip")
let checksum = envStringValue("OPENATTRIBUTESHIMS_COMPUTE_USE_BINARY_CHECKSUM", default: "a539f876625288d4af7c7d1dccc80fd8e936058791b8071e0d534f5ec1a8a068")
let target = Target.binaryTarget(
name: openAttributeGraphTarget.name,
url: url,
checksum: checksum
)
package.targets.append(target)
} else {
package.targets.append(contentsOf: [
swiftClonePlugin,
platformTarget,
utilitiesTarget,
openAttributeGraphTarget,
openAttributeGraphCxxTarget,
])
}
openAttributeGraphShimsTarget.dependencies.append(.target(name: openAttributeGraphTarget.name))
package.platforms = [.iOS(.v13), .macOS(.v10_15), .macCatalyst(.v13), .tvOS(.v13), .watchOS(.v5)]

if buildForDarwinPlatform {
package.targets.append(openAttributeGraphCompatibilityTestsTarget)
package.dependencies.append(
.package(url: "https://github.com/apple/swift-numerics", from: "1.1.1")
)
}

package.products.append(
.library(name: "OpenAttributeGraph", type: .dynamic, targets: [openAttributeGraphTarget.name, openAttributeGraphCxxTarget.name])
)
if compatibilityTestCondition, buildForDarwinPlatform {
setupDPFDependency()
openAttributeGraphCompatibilityTestsTarget.addAGSettings()
} else {
package.targets += [
utilitiesTestsTarget,
openAttributeGraphCxxTestsTarget,
openAttributeGraphShimsTestsTarget,
]
package.platforms = [.iOS(.v13), .macOS(.v10_15), .macCatalyst(.v13), .tvOS(.v13), .watchOS(.v5)]
}
}