2

默认情况下,SPM 使用与包含其main.swift. 如何让它用不同的文件名构建二进制文件?我在SPM 手册上找不到任何说明。

4

3 回答 3

5

使用 Swift 4,给定 DemoProject 创建用swift package init --type executable,对 Package.swift 进行更改(添加products部分)。

// swift-tools-version:4.0
import PackageDescription

let package = Package(
    name: "DemoProject",
    products: [
        .executable(name: "demo", targets: ["DemoProject"]),
    ],
    dependencies: [],
    targets: [
        .target(
            name: "DemoProject",
            dependencies: []),
    ]
)

这将创建一个名为demo.

于 2017-12-14T15:15:07.780 回答
0

更改可执行文件名称

在 SPM 5.4 中,您可以executableproducts.

.executable(name: "ExecutableName", targets: ["ExecutableTargetName"])

直接构建可执行产品

如果您想直接构建可执行文件,请尝试命令swift build --product ExecutableName

您也可以使用--show-bin-path参数获取构建结果的位置

例如swift build --product ExecutableName --show-bin-path

演示包.swift

// swift-tools-version:5.4

import PackageDescription

let package = Package(
  name: "PackageName",
  platforms: [
    .iOS(.v11),
    .macOS(.v10_15),
  ],
  products: [
    .library(name: "LibraryName", targets: ["LibraryTarget"]),
    .executable(name: "ExecutableName", targets: ["ExecutableTargetName"])
  ],
  dependencies: [...],
  targets: [
    .target(
      name: "LibraryTarget",
      dependencies: [...],
      path: "Sources/..."
    ),
    .executableTarget(
      name: "ExecutableTargetName",
      dependencies: [...],
      path: "Sources/..."
    ),
  ]
)

于 2021-07-23T09:56:14.940 回答
-2

我赞成使用另一个构建系统,例如make,在swift build. 目前,swift build不允许定义自定义“挂钩”来实现各种构建自动化任务 - 生成代码、复制资源、部署可执行文件等。一旦使用make,您就可以定义所需的任何任务,特别是重命名二进制文件。

于 2017-03-25T07:48:56.533 回答