// swift-tools-version:6.1
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
    name: "ResgenSwift",
    platforms: [.macOS(.v14), .iOS(.v15)],
    dependencies: [
        // Dependencies declare other packages that this package depends on.
        .package(
            url: "https://github.com/apple/swift-argument-parser",
            from: "1.5.0"
        ),
        .package(
            url: "https://github.com/jpsim/Yams.git",
            from: "5.0.1"
        ),
        .package(
            url: "https://github.com/lukepistrol/SwiftLintPlugin",
            exact: "0.60.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.
        .executableTarget(
            name: "ResgenSwift",
            dependencies: [
                "ToolCore",
                "Yams",
                .product(
                    name: "ArgumentParser",
                    package: "swift-argument-parser"
                )
            ],
            plugins: [
                // .plugin(name: "SwiftLint", package: "SwiftLintPlugin")
            ]
        ),
        
        // Helper targets
        .target(
            name: "ToolCore",
            dependencies: [
                .product(
                    name: "ArgumentParser",
                    package: "swift-argument-parser"
                )
            ]
        ),
        
        // Test targets
        .testTarget(
            name: "ResgenSwiftTests",
            dependencies: ["ResgenSwift"]),
    ]
)
