Reputation: 6451
I created a new Package with Xcode and incorporated a dependency, however when I try to use it, I get an error.
How do I use the dependency in the Package sources? In a normal project, I can easily import and use AgileDB.
Here's the Package:
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "DBCore",
products: [
// Products define the executables and libraries a package produces, and make them visible to other packages.
.library(
name: "DBCore",
targets: ["DBCore"]),
],
dependencies: [
.package(url: "https://github.com/AaronBratcher/AgileDB", from: "6.4.0")
],
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 this package depends on.
.target(
name: "DBCore",
dependencies: []),
.testTarget(
name: "DBCoreTests",
dependencies: ["DBCore"]),
]
)
Perhaps the AgileDB package as a dependency in the target? I tried copying that and it won't recognize it.
Upvotes: 3
Views: 3447
Reputation: 2656
In my case I had to specify both package and product. E.g. for swift-math-parser, the Package.swift
states:
let package = Package(
name: "swift-math-parser",
// ...
products: [
.library(
name: "MathParser",
targets: ["MathParser"]
)
],
// ...
So I had to specify the dependency in my own Package.swift
as:
let package = Package(
// ...
targets: [
.target(
name: "MyPackage",
dependencies: [
.product(name: "MathParser", package: "swift-math-parser"),
]
),
// ...
Upvotes: 0
Reputation: 6451
Found my answer.
In the target dependencies, need to include the package name as a string:
// 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 this package depends on.
.target(
name: "DBCore",
dependencies: [
"AgileDB"
]),
.testTarget(
name: "DBCoreTests",
dependencies: ["DBCore"]),
]
Upvotes: 1
Reputation: 1238
Step by step guide:
At this point you should be able to import and use the package in any of the files under this target.
Upvotes: -3