【问题标题】:Provide configuration file to Swift Package Manager向 Swift Package Manager 提供配置文件
【发布时间】:2016-10-25 10:31:28
【问题描述】:

我正在尝试结合 swiftpm 和 .xcconfig 文件。

我在我的Package.swift 文件旁边创建了Config.xcconfig 文件,其中包含两行:

LIBRARY_SEARCH_PATHS = $(inherited) $(SRCROOT)/../3rdparty/mylib/.build/
OTHER_LDFLAGS = $(inherited) -lmylibRelease

但我仍然有 120 个链接错误,我的猜测是 swift build 没有看到我的配置文件。

我该怎么办?

【问题讨论】:

    标签: swift swift3 xcconfig swift-package-manager


    【解决方案1】:

    SwiftPM support 自定义 Xcode 配置。调用generate-xcodeproj 命令时,您必须指定自定义配置文件的路径。
    要查看有关generate-xcodeproj 的更多详细信息,请运行swift package generate-xcodeproj -h

    示例

    swift package generate-xcodeproj --xcconfig-overrides Config.xcconfig
    

    【讨论】:

    • 哦,所以我不能使用带有swift build 的配置?只有 XCode?​​span>
    • 是的,没错,这是有道理的。 xcconfig 是一个 Xcode 配置文件,它只能由 Xcode 使用。如果您需要自定义配置,那么您必须生成 Xcode 项目并从那里构建它。
    • 我的问题是我找不到传递其他库搜索路径等的方法。我最终使用了一堆 -Xlinker 的东西,但这毁了整个事情,因为现在它可以了不能用作 SwiftPM 包。
    • @s1ddok 你找到更好的解决方案了吗?我还需要添加一些 LDFLAGS 来快速构建...
    • 警告:Xcode 可以直接打开和构建 Swift 包。 'generate-xcodeproj' 不再需要,很快就会被弃用。 21 年 7 月。
    【解决方案2】:

    指定标头搜索路径和链接器标志的适当方法是使用Package.swift 结构值。它们就是为此目的而提供的。

    对于标题搜索路径,请使用CSetting

    对于链接器标志,使用LinkerSetting

    Package.swift 的完整规范可以在PackageDescription API找到。

    【讨论】:

      【解决方案3】:

      Xcode 11.3 现在支持带有自定义 Xcode 配置的 SPM。

      【讨论】:

      • 您如何为您导入的包设置自定义 Xcode 配置?
      • 标记为不是答案。照原样,这应该是一条评论。
      猜你喜欢
      • 2023-02-10
      • 2021-09-14
      • 2018-09-21
      • 2018-12-08
      • 2017-02-08
      • 2019-04-28
      • 2020-07-26
      • 1970-01-01
      • 2011-03-05
      相关资源
      最近更新 更多