Skip to content

Commit c882581

Browse files
Merge pull request #325 from swiftwasm/katei/revert-trait
Effectively revert the trait-based manifest change
2 parents c7d9fe0 + 8d8dada commit c882581

File tree

5 files changed

+31
-127
lines changed

5 files changed

+31
-127
lines changed

Diff for: Examples/Embedded/Package.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
// swift-tools-version:6.1
1+
// swift-tools-version:6.0
22

33
import PackageDescription
44

55
let package = Package(
66
name: "Embedded",
77
dependencies: [
8-
.package(name: "JavaScriptKit", path: "../../", traits: ["Embedded"]),
8+
.package(name: "JavaScriptKit", path: "../../"),
99
.package(url: "https://github.com/swiftwasm/swift-dlmalloc", branch: "0.1.0"),
1010
],
1111
targets: [

Diff for: Examples/Embedded/build.sh

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#!/bin/bash
22
package_dir="$(cd "$(dirname "$0")" && pwd)"
3-
swift package --package-path "$package_dir" \
3+
JAVASCRIPTKIT_EXPERIMENTAL_EMBEDDED_WASM=true \
4+
swift package --package-path "$package_dir" \
45
-c release --triple wasm32-unknown-none-wasm js

Diff for: Package.swift

+22-20
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
// swift-tools-version:6.1
1+
// swift-tools-version:6.0
22

33
import PackageDescription
44

55
// NOTE: needed for embedded customizations, ideally this will not be necessary at all in the future, or can be replaced with traits
6+
let shouldBuildForEmbedded = Context.environment["JAVASCRIPTKIT_EXPERIMENTAL_EMBEDDED_WASM"].flatMap(Bool.init) ?? false
67
let useLegacyResourceBundling =
78
Context.environment["JAVASCRIPTKIT_USE_LEGACY_RESOURCE_BUNDLING"].flatMap(Bool.init) ?? false
89

@@ -15,23 +16,22 @@ let package = Package(
1516
.library(name: "JavaScriptEventLoopTestSupport", targets: ["JavaScriptEventLoopTestSupport"]),
1617
.plugin(name: "PackageToJS", targets: ["PackageToJS"]),
1718
],
18-
traits: [
19-
"Embedded"
20-
],
2119
targets: [
2220
.target(
2321
name: "JavaScriptKit",
2422
dependencies: ["_CJavaScriptKit"],
2523
exclude: useLegacyResourceBundling ? [] : ["Runtime"],
2624
resources: useLegacyResourceBundling ? [.copy("Runtime")] : [],
27-
cSettings: [
28-
.unsafeFlags(["-fdeclspec"], .when(traits: ["Embedded"]))
29-
],
30-
swiftSettings: [
31-
.enableExperimentalFeature("Embedded", .when(traits: ["Embedded"])),
32-
.enableExperimentalFeature("Extern", .when(traits: ["Embedded"])),
33-
.unsafeFlags(["-Xfrontend", "-emit-empty-object-file"], .when(traits: ["Embedded"])),
34-
]
25+
cSettings: shouldBuildForEmbedded
26+
? [
27+
.unsafeFlags(["-fdeclspec"])
28+
] : nil,
29+
swiftSettings: shouldBuildForEmbedded
30+
? [
31+
.enableExperimentalFeature("Embedded"),
32+
.enableExperimentalFeature("Extern"),
33+
.unsafeFlags(["-Xfrontend", "-emit-empty-object-file"]),
34+
] : nil
3535
),
3636
.target(name: "_CJavaScriptKit"),
3737
.testTarget(
@@ -45,10 +45,11 @@ let package = Package(
4545
.target(
4646
name: "JavaScriptBigIntSupport",
4747
dependencies: ["_CJavaScriptBigIntSupport", "JavaScriptKit"],
48-
swiftSettings: [
49-
.enableExperimentalFeature("Embedded", .when(traits: ["Embedded"])),
50-
.unsafeFlags(["-Xfrontend", "-emit-empty-object-file"], .when(traits: ["Embedded"])),
51-
]
48+
swiftSettings: shouldBuildForEmbedded
49+
? [
50+
.enableExperimentalFeature("Embedded"),
51+
.unsafeFlags(["-Xfrontend", "-emit-empty-object-file"]),
52+
] : []
5253
),
5354
.target(name: "_CJavaScriptBigIntSupport", dependencies: ["_CJavaScriptKit"]),
5455
.testTarget(
@@ -59,10 +60,11 @@ let package = Package(
5960
.target(
6061
name: "JavaScriptEventLoop",
6162
dependencies: ["JavaScriptKit", "_CJavaScriptEventLoop"],
62-
swiftSettings: [
63-
.enableExperimentalFeature("Embedded", .when(traits: ["Embedded"])),
64-
.unsafeFlags(["-Xfrontend", "-emit-empty-object-file"], .when(traits: ["Embedded"])),
65-
]
63+
swiftSettings: shouldBuildForEmbedded
64+
? [
65+
.enableExperimentalFeature("Embedded"),
66+
.unsafeFlags(["-Xfrontend", "-emit-empty-object-file"]),
67+
] : []
6668
),
6769
.target(name: "_CJavaScriptEventLoop"),
6870
.testTarget(

Diff for: [email protected]

-104
This file was deleted.

Diff for: Plugins/PackageToJS/Sources/PackageToJSPlugin.swift

+5
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,11 @@ struct PackageToJSPlugin: CommandPlugin {
342342

343343
/// Check if the build is for embedded WebAssembly
344344
private func isBuildingForEmbedded(selfPackage: Package) -> Bool {
345+
if let rawValue = ProcessInfo.processInfo.environment["JAVASCRIPTKIT_EXPERIMENTAL_EMBEDDED_WASM"],
346+
let value = Bool(rawValue), value
347+
{
348+
return true
349+
}
345350
let coreTarget = selfPackage.targets.first { $0.name == "JavaScriptKit" }
346351
guard let swiftTarget = coreTarget as? SwiftSourceModuleTarget else {
347352
return false

0 commit comments

Comments
 (0)