我正在开发一个 Swift 软件包,该软件包仅在桌面(MacOS 或 Linux)上依赖于 GLFW,但不适用于 iOS,因为 GLFW 不是为 iOS 构建的。
我该如何解决这个问题?
我有一个像这样定义的系统库:
import PackageDescription
let package = Package(
name: "GLFWSystemLibrary",
products: [
.library(name: "CGLFW3", targets: ["CGLFW3"]),
],
dependencies: [],
targets: [
.systemLibrary(
name: "CGLFW3",
pkgConfig: "glfw3",
providers: [
.brew(["glfw"]),
.apt(["libglfw3"])
]
)
]
)
当我尝试将其包含在 iOS 项目中时,我的构建失败了。
在依赖于此的库中有条件地包含 CGLFW
就足够了,否则我如何在 Swift Package Manager 中创建有条件的依赖项?
即我可以做这样的事情吗?
#if !os(iOS)
import CGLFW
#endif
否则我该如何实现这一目标?
最佳答案
你的代码完全有效!此外,您还可以使用:
#if canImport(AppKit)
#endif
或者甚至:
#if canImport(CGLFW)
#endif
这取决于你的喜好!
关于swift - 与 iOS 相比,我如何有条件地依赖桌面系统库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73176908/