From bf5b1e0c29fed85713fd4a57bdd11fb39078f71f Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Thu, 5 Jun 2025 18:38:41 +0900 Subject: [PATCH] PackageToJS: Add hint for missing `.enableExperimentalFeature("Extern")` setting --- .../Sources/PackageToJSPlugin.swift | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Plugins/PackageToJS/Sources/PackageToJSPlugin.swift b/Plugins/PackageToJS/Sources/PackageToJSPlugin.swift index e7f74e97..04f4dcd4 100644 --- a/Plugins/PackageToJS/Sources/PackageToJSPlugin.swift +++ b/Plugins/PackageToJS/Sources/PackageToJSPlugin.swift @@ -71,6 +71,27 @@ struct PackageToJSPlugin: CommandPlugin { See https://book.swiftwasm.org/getting-started/setup.html for more information. """ }), + ( + // In case the SwiftPM target using BridgeJS didn't specify `.enableExperimentalFeature("Extern")` + { build, arguments in + guard + build.logText.contains("@_extern requires '-enable-experimental-feature Extern'") + else { + return nil + } + return """ + The SwiftPM target using BridgeJS didn't specify `.enableExperimentalFeature("Extern")`. + Please add it to the target's `swiftSettings` configuration. + + For example: + ```swift + dependencies: [...], + swiftSettings: [ + .enableExperimentalFeature("Extern"), + ] + ``` + """ + }), ] private func emitHintMessage(_ message: String) {