       ],
       path: "single-source",
       sources: ["\(x).swift"])
-  } + multiSourceLibraries.map { x in
-    return .target(name: x,
-      dependencies: [
-        .target(name: "TestsUtils")
-      ],
-      path: "multi-source/\(x)")
-  },
-  swiftLanguageVersions: [4]
+}
+targets += multiSourceLibraries.map { x in
+  return .target(name: x,
+    dependencies: [
+      .target(name: "TestsUtils")
+    ],
+    path: "multi-source/\(x)")
+}
+
+let p = Package(
+  name: "swiftbench",
+  products: products,
+  targets: targets,
+  swiftLanguageVersions: [.v4]
 )

// swift-tools-version:4.0

import PackageDescription
import Foundation

  }
}()

var products: [Product] = []
products.append(.library(name: "TestsUtils", type: .static, targets: ["TestsUtils"]))
products.append(.library(name: "DriverUtils", type: .static, targets: ["DriverUtils"]))
products.append(.library(name: "ObjectiveCTests", type: .static, targets: ["ObjectiveCTests"]))
products.append(.executable(name: "SwiftBench", targets: ["SwiftBench"]))
products.append(.library(name: "PrimsSplit", type: .static, targets: ["PrimsSplit"]))
products += singleSourceLibraries.map { .library(name: $0, type: .static, targets: [$0]) }
products += multiSourceLibraries.map { .library(name: $0, type: .static, targets: [$0]) }

var targets: [Target] = []
targets.append(.target(name: "TestsUtils", path: "utils", sources: ["TestsUtils.swift"]))
targets.append(.systemLibrary(name: "LibProc", path: "utils/LibProc"))
targets.append(
  .target(name: "DriverUtils",
    dependencies: [.target(name: "TestsUtils"), "LibProc"],
    path: "utils",
    sources: ["DriverUtils.swift", "ArgParse.swift"]))
targets.append(
    .target(name: "SwiftBench",
    dependencies: [
      .target(name: "TestsUtils"),
      .target(name: "ObjectiveCTests"),
      .target(name: "DriverUtils"),
    ] + singleSourceLibraries.map { .target(name: $0) }
    + multiSourceLibraries.map { .target(name: $0) },
    path: "utils",
    sources: ["main.swift"]))
targets.append(
  .target(name: "ObjectiveCTests",
    path: "utils/ObjectiveCTests",
    publicHeadersPath: "."))
targets += singleSourceLibraries.map { x in
    return .target(name: x,
      dependencies: [
        .target(name: "TestsUtils"),
