// swift-tools-version: 5.9 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription let package = Package( name: "MyFramework", platforms: [ .iOS(.v17), ], products: [ // Products define the executables and libraries a package produces, making them visible to other packages. .library( name: "MyFramework", type: .dynamic, targets: [ "MyFramework", "ModuleA", "ModuleB", "ModuleC", "ModuleD", "ModuleE", "ModuleF", "WolfSSLC", "ModuleG", "ModuleH", "ModuleI", "ModuleJ", "ModuleK", "ModuleL", "Common", "Logging", ] ), .library(name: "MyFrameworkDevelopment", type: .dynamic, targets: ["MyFrameworkDevelopment"]), ], dependencies: [ .package(url: "https://…”) ], targets: [ // Targets are the basic building blocks of a package, defining a module or a test suite. // Targets can depend on other targets in this package and products from dependencies. .target(name: "MyFrameworkDevelopment", dependencies: [ "MyFramework", "MockServer", ]), .target(name: "MyFramework", dependencies: [ "Logging", "ModuleA", "ModuleG", "ModuleC", "ModuleK", "ModuleL", "CoreBluetoothWrapper", ]), .testTarget(name: "MyFrameworkTests", dependencies: [ "MyFramework", "ModuleI", "TestHelpers", "MyFrameworkDevelopment", ]), .testTarget( name: "MyFrameworkAcceptanceTests", dependencies: [ "MyFramework", "ModuleI", "MockServer", "TestHelpers", ] ), .target( name: "ModuleA", dependencies: [ "ModuleH", "ModuleG", "ModuleJ", "ModuleK", "ModuleL", "Logging", "ModuleB", "ModuleI", .product(name: "X509", package: "ISC_SDK_iOS_Swift_Certificates"), ] ), .testTarget( name: "ModuleATests", dependencies: [ "ModuleA", "TestHelpers", "MockServer", "WolfSSLC", .product(name: "X509", package: "ISC_SDK_iOS_Swift_Certificates"), ] ), .target( name: "ModuleB", dependencies: [ "ModuleI", "ModuleH", "ModuleG", "Logging", "Common", ] ), .testTarget( name: "ModuleBTests", dependencies: [ "ModuleB", "ModuleI", "TestHelpers", ] ), .target( name: "ModuleC", dependencies: [ "ModuleI", "CoreBluetoothWrapper", ] ), .testTarget( name: "ModuleCTests", dependencies: [ "ModuleC", "ModuleI", "TestHelpers", ] ), .target( name: "ModuleD", dependencies: [ "ModuleI", ] ), .testTarget( name: "ModuleDTests", dependencies: [ "ModuleD", "ModuleI", "TestHelpers", ] ), .target( name: "ModuleE", dependencies: [ "ModuleD", "Logging", ] ), .testTarget( name: "ModuleETests", dependencies: [ "ModuleE", "TestHelpers", ] ), .target( name: "ModuleF", dependencies: [ "ModuleE", "ModuleJ", "ModuleL", "Logging", "WolfSSLC", ] ), .testTarget( name: "ModuleFTests", dependencies: [ "ModuleF", "TestHelpers", ] ), .target( name: "WolfSSLC", dependencies: [ "libwolfssl", ] ), .binaryTarget( name: "libwolfssl", path: "libwolfssl.xcframework" ), .target( name: "ModuleG", dependencies: [ "ModuleE", "ModuleF", "Logging", ] ), .testTarget( name: "ModuleGTests", dependencies: [ "ModuleG", "TestHelpers", ] ), .target( name: "ModuleH", dependencies: [ "Common", ] ), .testTarget( name: "ModuleHTests", dependencies: ["ModuleH", "TestHelpers"] ), .target( name: "ModuleI", dependencies: [ "CoreBluetoothWrapper", "Common", ] ), .target( name: "CoreBluetoothWrapper" ), .testTarget( name: "ModuleITests", dependencies: [ "ModuleI", "TestHelpers", ] ), .target( name: "ModuleJ", dependencies: [ "InstallationAuth", "ModuleK", "ModuleL", .product(name: "X509", package: "ISC_SDK_iOS_Swift_Certificates"), "Logging", ] ), .testTarget( name: "ModuleJTests", dependencies: [ "ModuleJ", "TestHelpers", "ModuleK", "ModuleL", ] ), .target( name: "InstallationAuth", dependencies: [ "ModuleK", "ModuleL", ] ), .testTarget( name: "InstallationAuthTests", dependencies: [ "InstallationAuth", "TestHelpers", "ModuleK", "ModuleL", ] ), .target( name: "ModuleK", dependencies: ["Logging"] ), .testTarget( name: "ModuleKTests", dependencies: [ "ModuleK", "TestHelpers", ] ), .target(name: "ModuleL"), .testTarget( name: "ModuleLTests", dependencies: ["ModuleL"] ), .target(name: "Logging"), .target(name: "Common"), .testTarget( name: "CommonTests", dependencies: [ "Common", "TestHelpers", ] ), .testTarget( name: "LoggingTests", dependencies: ["Logging"] ), .target( name: "MockServer", dependencies: [ "ModuleL", .product(name: "X509", package: "ISC_SDK_iOS_Swift_Certificates"), ], path: "Tests/MockServer", resources: [.process("Certs")] ), .target( name: "TestHelpers", dependencies: [ "ModuleI", "MyFramework", "MockServer", "ModuleF", "WolfSSLC", ], path: "Tests/TestHelpers", resources: [.process("WolfSSL/Resources")] ), ] )