// swift-tools-version:5.9 import PackageDescription let package = Package( name: "GCDWebServer", platforms: [ .iOS(.v16), .tvOS(.v16), .macOS(.v12), ], products: [ .library(name: "GCDWebServer", targets: ["GCDWebServer"]), .library(name: "GCDWebUploader", targets: ["GCDWebUploader"]), .library(name: "GCDWebDAVServer", targets: ["GCDWebDAVServer"]), ], targets: [ .target( name: "GCDWebServer", path: "GCDWebServer", // Public headers are exposed via symlinks in include/ so that GCDWebServerPrivate.h stays private. publicHeadersPath: "include", cSettings: [ // Source files import sibling headers across these subdirectories with quoted #imports. .headerSearchPath("Core"), .headerSearchPath("Requests"), .headerSearchPath("Responses"), ], linkerSettings: [ .linkedLibrary("z"), .linkedFramework("UniformTypeIdentifiers"), .linkedFramework("CoreServices", .when(platforms: [.iOS, .tvOS])), .linkedFramework("CFNetwork", .when(platforms: [.iOS, .tvOS])), .linkedFramework("SystemConfiguration", .when(platforms: [.macOS])), ] ), .target( name: "GCDWebUploader", dependencies: ["GCDWebServer"], path: "GCDWebUploader", exclude: [".DS_Store"], resources: [ .copy("GCDWebUploader.bundle"), ], publicHeadersPath: "include" ), .target( name: "GCDWebDAVServer", dependencies: ["GCDWebServer"], path: "GCDWebDAVServer", publicHeadersPath: ".", linkerSettings: [ .linkedLibrary("xml2"), ] ), ] )