116 lines
2.9 KiB
Swift
116 lines
2.9 KiB
Swift
// swift-tools-version:5.3
|
|
// The swift-tools-version declares the minimum version of Swift required to
|
|
// build this package.
|
|
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "Tokamak",
|
|
platforms: [
|
|
.macOS(.v11),
|
|
.iOS(.v13),
|
|
],
|
|
products: [
|
|
// Products define the executables and libraries produced by a package,
|
|
// and make them visible to other packages.
|
|
.executable(
|
|
name: "TokamakDemo",
|
|
targets: ["TokamakDemo"]
|
|
),
|
|
.library(
|
|
name: "TokamakDOM",
|
|
targets: ["TokamakDOM"]
|
|
),
|
|
.library(
|
|
name: "TokamakShim",
|
|
targets: ["TokamakShim"]
|
|
),
|
|
.library(
|
|
name: "TokamakStaticHTML",
|
|
targets: ["TokamakStaticHTML"]
|
|
),
|
|
.executable(
|
|
name: "TokamakStaticDemo",
|
|
targets: ["TokamakStaticDemo"]
|
|
),
|
|
],
|
|
dependencies: [
|
|
// Dependencies declare other packages that this package depends on.
|
|
// .package(url: /* package url */, from: "1.0.0"),
|
|
.package(
|
|
url: "https://github.com/swiftwasm/JavaScriptKit.git",
|
|
.upToNextMinor(from: "0.8.0")
|
|
),
|
|
.package(url: "https://github.com/MaxDesiatov/Runtime.git", from: "2.1.2"),
|
|
.package(url: "https://github.com/TokamakUI/OpenCombine.git", from: "0.12.0-alpha2"),
|
|
.package(url: "https://github.com/swiftwasm/OpenCombineJS.git", from: "0.0.1"),
|
|
],
|
|
targets: [
|
|
// Targets are the basic building blocks of a package. A target can define
|
|
// a module or a test suite.
|
|
// Targets can depend on other targets in this package, and on products
|
|
// in packages which this package depends on.
|
|
.target(
|
|
name: "CombineShim",
|
|
dependencies: [.product(
|
|
name: "OpenCombine",
|
|
package: "OpenCombine",
|
|
condition: .when(platforms: [.wasi, .linux])
|
|
)]
|
|
),
|
|
.target(
|
|
name: "TokamakCore",
|
|
dependencies: ["CombineShim", "Runtime"]
|
|
),
|
|
.target(
|
|
name: "TokamakStaticHTML",
|
|
dependencies: [
|
|
"TokamakCore",
|
|
]
|
|
),
|
|
.target(
|
|
name: "TokamakDOM",
|
|
dependencies: [
|
|
"CombineShim",
|
|
"OpenCombineJS",
|
|
"TokamakCore",
|
|
"TokamakStaticHTML",
|
|
.product(
|
|
name: "JavaScriptKit",
|
|
package: "JavaScriptKit",
|
|
condition: .when(platforms: [.wasi])
|
|
),
|
|
]
|
|
),
|
|
.target(
|
|
name: "TokamakShim",
|
|
dependencies: [.target(name: "TokamakDOM", condition: .when(platforms: [.wasi]))]
|
|
),
|
|
.target(
|
|
name: "TokamakDemo",
|
|
dependencies: [
|
|
"TokamakShim",
|
|
.product(
|
|
name: "JavaScriptKit",
|
|
package: "JavaScriptKit",
|
|
condition: .when(platforms: [.wasi])
|
|
),
|
|
]
|
|
),
|
|
.target(
|
|
name: "TokamakStaticDemo",
|
|
dependencies: [
|
|
"TokamakStaticHTML",
|
|
]
|
|
),
|
|
.target(
|
|
name: "TokamakTestRenderer",
|
|
dependencies: ["TokamakCore"]
|
|
),
|
|
.testTarget(
|
|
name: "TokamakTests",
|
|
dependencies: ["TokamakTestRenderer"]
|
|
),
|
|
]
|
|
)
|