注意

此包已弃用。

请参阅 OpenSwiftUIProject/OpenGraph#17OpenSwiftUIProject/OpenSwiftUI#36

OpenFoundation

该包为跨平台 SwiftPM C 目标提供类似 CF 的宏。

您只能在 Darwin 平台的 C 目标上导入 CoreFoundation。

用法

首先,在您的 Package.swift 中添加依赖项并添加相应的 Clang 标志。

let package = Package(
    name: "DemoKit",
    products: [
        .library(name: "DemoKit", targets: ["DemoKit"]),
    ],
    dependencies: [
        .package(url: "https://github.com/OpenSwiftUIProject/OpenFoundation", from: "0.0.1"),
    ],
    targets: [
        .target(
            name: "DemoKit",
            dependencies: [
                .product(name: "OpenFoundation", package: "OpenFoundation")
            ],
            // Upstream issue llvm/llvm-project#48757
            cSettings: [
                .unsafeFlags(["-Wno-elaborated-enum-base"]),
            ]
        ),
    ]
)

然后,在您的 C 代码中,您可以在非 Darwin 平台上包含 OpenFoundation/OpenFoundation.h

#include <OpenFoundation/OpenFoundation.h>

许可

大部分代码来自 apple/swift-corelibs-foundation,并进行了少量修改。

此仓库在 Apache 许可下发布。 有关详细信息,请参阅 LICENSE

致谢