|
1 |
| -// swift-tools-version:5.7 |
| 1 | +// swift-tools-version:5.10 |
2 | 2 |
|
3 | 3 | import PackageDescription
|
4 | 4 |
|
| 5 | +let embeddedSwiftSettings: [SwiftSetting] = [ |
| 6 | + .enableExperimentalFeature("Embedded"), |
| 7 | + .interoperabilityMode(.Cxx), |
| 8 | + .unsafeFlags([ |
| 9 | + "-wmo", "-disable-cmo", |
| 10 | + "-Xfrontend", "-gnone", |
| 11 | + "-Xfrontend", "-disable-stack-protector", |
| 12 | + "-Xfrontend", "-emit-empty-object-file" |
| 13 | + ]) |
| 14 | +] |
| 15 | + |
| 16 | +let embeddedCSettings: [CSetting] = [ |
| 17 | + .unsafeFlags(["-fdeclspec"]) |
| 18 | +] |
| 19 | + |
| 20 | +let linkerSettings: [LinkerSetting] = [ |
| 21 | + .unsafeFlags([ |
| 22 | + "-Xclang-linker", "-nostdlib", |
| 23 | + "-Xlinker", "--no-entry" |
| 24 | + ]) |
| 25 | +] |
| 26 | + |
| 27 | +let libcSettings: [CSetting] = [ |
| 28 | + .define("LACKS_TIME_H"), |
| 29 | + .define("LACKS_SYS_TYPES_H"), |
| 30 | + .define("LACKS_STDLIB_H"), |
| 31 | + .define("LACKS_STRING_H"), |
| 32 | + .define("LACKS_SYS_MMAN_H"), |
| 33 | + .define("LACKS_FCNTL_H"), |
| 34 | + .define("NO_MALLOC_STATS", to: "1"), |
| 35 | + .define("__wasilibc_unmodified_upstream"), |
| 36 | +] |
| 37 | + |
5 | 38 | let package = Package(
|
6 | 39 | name: "JavaScriptKit",
|
7 | 40 | products: [
|
8 | 41 | .library(name: "JavaScriptKit", targets: ["JavaScriptKit"]),
|
9 | 42 | .library(name: "JavaScriptEventLoop", targets: ["JavaScriptEventLoop"]),
|
10 | 43 | .library(name: "JavaScriptBigIntSupport", targets: ["JavaScriptBigIntSupport"]),
|
11 | 44 | .library(name: "JavaScriptEventLoopTestSupport", targets: ["JavaScriptEventLoopTestSupport"]),
|
| 45 | + // Embedded |
| 46 | + .library(name: "JavaScriptKitEmbedded", targets: ["JavaScriptKitEmbedded"]), |
| 47 | + .library(name: "JavaScriptEventLoopEmbedded", targets: ["JavaScriptEventLoopEmbedded"]), |
| 48 | + .library(name: "JavaScriptBigIntSupportEmbedded", targets: ["JavaScriptBigIntSupportEmbedded"]), |
| 49 | + .library(name: "JavaScriptEventLoopTestSupportEmbedded", targets: ["JavaScriptEventLoopTestSupportEmbedded"]), |
| 50 | + ], |
| 51 | + dependencies: [ |
| 52 | + .package(url: "https://github.com/swifweb/String16", branch: "0.1.0") |
12 | 53 | ],
|
13 | 54 | targets: [
|
14 | 55 | .target(
|
@@ -36,11 +77,64 @@ let package = Package(
|
36 | 77 | ),
|
37 | 78 | .target(name: "_CJavaScriptEventLoopTestSupport"),
|
38 | 79 | .testTarget(
|
39 |
| - name: "JavaScriptEventLoopTestSupportTests", |
40 |
| - dependencies: [ |
41 |
| - "JavaScriptKit", |
42 |
| - "JavaScriptEventLoopTestSupport" |
43 |
| - ] |
| 80 | + name: "JavaScriptEventLoopTestSupportTests", |
| 81 | + dependencies: [ |
| 82 | + "JavaScriptKit", |
| 83 | + "JavaScriptEventLoopTestSupport" |
| 84 | + ] |
| 85 | + ), |
| 86 | + // Embedded |
| 87 | + .target( |
| 88 | + name: "JavaScriptKitEmbedded", |
| 89 | + dependencies: [ |
| 90 | + "_CJavaScriptKitEmbedded", |
| 91 | + .product(name: "String16", package: "String16") |
| 92 | + ], |
| 93 | +// resources: [.copy("Runtime")], // FIXME: doesn't work with embedded because trying to import Foundation |
| 94 | + cSettings: embeddedCSettings, |
| 95 | + swiftSettings: embeddedSwiftSettings, |
| 96 | + linkerSettings: linkerSettings |
| 97 | + ), |
| 98 | + .target( |
| 99 | + name: "_CJavaScriptKitEmbedded", |
| 100 | + cSettings: libcSettings |
| 101 | + ), |
| 102 | + .target( |
| 103 | + name: "JavaScriptBigIntSupportEmbedded", |
| 104 | + dependencies: ["_CJavaScriptBigIntSupportEmbedded", "JavaScriptKitEmbedded"], |
| 105 | + cSettings: embeddedCSettings, |
| 106 | + swiftSettings: embeddedSwiftSettings, |
| 107 | + linkerSettings: linkerSettings |
| 108 | + ), |
| 109 | + .target( |
| 110 | + name: "_CJavaScriptBigIntSupportEmbedded", |
| 111 | + dependencies: ["_CJavaScriptKitEmbedded"], |
| 112 | + cSettings: libcSettings |
| 113 | + ), |
| 114 | + .target( |
| 115 | + name: "JavaScriptEventLoopEmbedded", |
| 116 | + dependencies: ["JavaScriptKitEmbedded", "_CJavaScriptEventLoopEmbedded"], |
| 117 | + cSettings: embeddedCSettings, |
| 118 | + swiftSettings: embeddedSwiftSettings, |
| 119 | + linkerSettings: linkerSettings |
| 120 | + ), |
| 121 | + .target( |
| 122 | + name: "_CJavaScriptEventLoopEmbedded", |
| 123 | + cSettings: libcSettings |
| 124 | + ), |
| 125 | + .target( |
| 126 | + name: "JavaScriptEventLoopTestSupportEmbedded", |
| 127 | + dependencies: [ |
| 128 | + "_CJavaScriptEventLoopTestSupportEmbedded", |
| 129 | + "JavaScriptEventLoopEmbedded", |
| 130 | + ], |
| 131 | + cSettings: embeddedCSettings, |
| 132 | + swiftSettings: embeddedSwiftSettings, |
| 133 | + linkerSettings: linkerSettings |
| 134 | + ), |
| 135 | + .target( |
| 136 | + name: "_CJavaScriptEventLoopTestSupportEmbedded", |
| 137 | + cSettings: libcSettings |
44 | 138 | ),
|
45 | 139 | ]
|
46 | 140 | )
|
0 commit comments