I experimented a bit with translating the swift run
invocation from your readme into corresponding build settings in the package manifest. This is the result.
Here's the swift run
command (note that I replaced the ImageMagick version number with what's installed on my system):
swift run \
-Xswiftc -I/usr/local/Cellar/imagemagick/7.0.8-43/include/ImageMagick-7 \
-Xlinker -L/usr/local/Cellar/imagemagick/7.0.8-43/lib \
-Xlinker -lMagickWand-7.Q16HDRI \
-Xlinker -lMagickCore-7.Q16HDRI \
-Xcc -DMAGICKCORE_HDRI_ENABLE=0 \
-Xcc -DMAGICKCORE_QUANTUM_DEPTH=16
And here's the Package.swift
I came up with:
// swift-tools-version:5.0
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "MagickBird",
products: [
.library(name: "MagickBird", targets: ["MagickBird"])
],
dependencies: [
],
targets: [
.target(
name: "MagickBirdSample", dependencies: ["MagickBird"]),
.target(
name: "MagickBird",
dependencies: ["MagickWand"],
cxxSettings: [
.define("MAGICKCORE_HDRI_ENABLE", to: "0"),
.define("MAGICKCORE_QUANTUM_DEPTH", to: "16"),
],
swiftSettings: [
.unsafeFlags([
"-I/usr/local/Cellar/imagemagick/7.0.8-43/include/ImageMagick-7",
]),
],
linkerSettings: [
.unsafeFlags([
"-L/usr/local/Cellar/imagemagick/7.0.8-43/lib",
"-lMagickWand-7.Q16HDRI",
"-lMagickCore-7.Q16HDRI",
]),
]),
.systemLibrary(name: "MagickWand"),
]
)
Unfortunately, I get an error when typing swift run
now:
$ swift run
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "/usr/local/opt/imagemagick/include/ImageMagick-7/MagickCore/MagickCore.h"
^
/usr/local/opt/imagemagick/include/ImageMagick-7/MagickCore/MagickCore.h:29:12: error: 'MagickCore/magick-config.h' file not found
# include "MagickCore/magick-config.h"
^
<unknown>:0: error: could not build Objective-C module 'MagickWand'
But maybe this helps you get on the right track?