@@ -117,12 +117,28 @@ extension PackagingSystem {
117
117
}
118
118
119
119
final class DefaultPackagingSystem : PackagingSystem {
120
+
121
+ private let printWarning : ( String ) -> Void
122
+
123
+ init ( printWarning: @escaping ( String ) -> Void ) {
124
+ self . printWarning = printWarning
125
+ }
126
+
120
127
func npmInstall( packageDir: String ) throws {
121
128
try runCommand ( try which ( " npm " ) , [ " -C " , packageDir, " install " ] )
122
129
}
123
130
131
+ lazy var warnMissingWasmOpt : ( ) = {
132
+ self . printWarning ( " Warning: wasm-opt is not installed, optimizations will not be applied " )
133
+ } ( )
134
+
124
135
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] )
126
142
}
127
143
128
144
private func runCommand( _ command: URL , _ arguments: [ String ] ) throws {
@@ -190,7 +206,7 @@ struct PackagingPlanner {
190
206
configuration: String ,
191
207
triple: String ,
192
208
selfPath: BuildPath = BuildPath ( absolute: #filePath) ,
193
- system: any PackagingSystem = DefaultPackagingSystem ( )
209
+ system: any PackagingSystem
194
210
) {
195
211
self . options = options
196
212
self . packageId = packageId
0 commit comments