@@ -117,12 +117,28 @@ extension PackagingSystem {
117117}
118118
119119final class DefaultPackagingSystem : PackagingSystem {
120+
121+ private let printWarning : ( String ) -> Void
122+
123+ init ( printWarning: @escaping ( String ) -> Void ) {
124+ self . printWarning = printWarning
125+ }
126+
120127 func npmInstall( packageDir: String ) throws {
121128 try runCommand ( try which ( " npm " ) , [ " -C " , packageDir, " install " ] )
122129 }
123130
131+ lazy var warnMissingWasmOpt : ( ) = {
132+ self . printWarning ( " Warning: wasm-opt is not installed, optimizations will not be applied " )
133+ } ( )
134+
124135 func wasmOpt( _ arguments: [ String ] , input: String , output: String ) throws {
125- try runCommand ( try which ( " wasm-opt " ) , arguments + [ " -o " , output, input] )
136+ guard let wasmOpt = try ? which ( " wasm-opt " ) else {
137+ _ = warnMissingWasmOpt
138+ try FileManager . default. copyItem ( atPath: input, toPath: output)
139+ return
140+ }
141+ try runCommand ( wasmOpt, arguments + [ " -o " , output, input] )
126142 }
127143
128144 private func runCommand( _ command: URL , _ arguments: [ String ] ) throws {
@@ -190,7 +206,7 @@ struct PackagingPlanner {
190206 configuration: String ,
191207 triple: String ,
192208 selfPath: BuildPath = BuildPath ( absolute: #filePath) ,
193- system: any PackagingSystem = DefaultPackagingSystem ( )
209+ system: any PackagingSystem
194210 ) {
195211 self . options = options
196212 self . packageId = packageId
0 commit comments