链接到包内静态库

时间:2019-01-16 09:03:49

标签: swift swift-package-manager module-map

我正在尝试使用swift包管理器将C / Go库包装为swift。为此,我目前创建了一个类型为system-module的包。

它当前包含清单(package.swift),模块映射(module.modulemap)以及库的ar文件及其标头。 (有关模块映射和包说明的内容,请参见下文。)

但是,对于构建,我目前需要手动将库的位置添加到链接器搜索路径。这对于该软件包的潜在未来用户不是特别友好,因此我想以一种方式来设置它,使其可以仅使用存储库中的预编译存档,并在没有任何用户干预的情况下进行链接。有可能吗?

作为参考,以下是当前清单和模块图以及目录布局:

目录:

- .git/
- irmac.h
- libirmac.a
- module.modulemap
- Package.swift

清单:

// swift-tools-version:4.2
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
    name: "Cirma",
    dependencies: [
        // Dependencies declare other packages that this package depends on.
        // .package(url: /* package url */, from: "1.0.0"),
    ]
)

模块图:

module Cirma [system] {
  header "irmac.h"
  link "irmac"
  export *
}

0 个答案:

没有答案