@@ -184,19 +184,30 @@ ADD_SUBDIRECTORY(src/passes)
184184ADD_SUBDIRECTORY (src/support )
185185ADD_SUBDIRECTORY (src/wasm )
186186
187+ # Object files
188+ SET (binaryen_objs
189+ $<TARGET_OBJECTS :passes >
190+ $<TARGET_OBJECTS :wasm >
191+ $<TARGET_OBJECTS :asmjs >
192+ $<TARGET_OBJECTS :emscripten -optimizer >
193+ $<TARGET_OBJECTS :ir >
194+ $<TARGET_OBJECTS :cfg >
195+ $<TARGET_OBJECTS :support >)
196+
187197# Sources.
188198
189199
190200SET (binaryen_SOURCES
191201 src/binaryen-c.cpp
192202)
193203IF (BUILD_STATIC_LIB)
194- ADD_LIBRARY (binaryen STATIC ${binaryen_SOURCES} )
204+ MESSAGE (STATUS "Building libbinaryen as statically linked library." )
205+ ADD_LIBRARY (binaryen STATIC ${binaryen_SOURCES} ${binaryen_objs} )
195206 ADD_DEFINITIONS (-DBUILD_STATIC_LIBRARY )
196207ELSE ()
197- ADD_LIBRARY (binaryen SHARED ${binaryen_SOURCES} )
208+ MESSAGE (STATUS "Building libbinaryen as shared library." )
209+ ADD_LIBRARY (binaryen SHARED ${binaryen_SOURCES} ${binaryen_objs} )
198210ENDIF ()
199- TARGET_LINK_LIBRARIES (binaryen passes wasm asmjs emscripten-optimizer ir cfg support )
200211INSTALL (TARGETS binaryen DESTINATION ${CMAKE_INSTALL_LIBDIR} )
201212
202213INSTALL (FILES src/binaryen-c.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} )
@@ -210,99 +221,89 @@ ENDIF()
210221SET (wasm-shell_SOURCES
211222 src/tools/wasm-shell.cpp
212223)
213- ADD_EXECUTABLE (wasm-shell
214- ${wasm-shell_SOURCES} )
215- TARGET_LINK_LIBRARIES (wasm-shell wasm asmjs emscripten-optimizer passes ir cfg support wasm )
224+ ADD_EXECUTABLE (wasm-shell ${wasm-shell_SOURCES} ${binaryen_objs} )
225+ TARGET_LINK_LIBRARIES (wasm-shell ${CMAKE_THREAD_LIBS_INIT} )
216226SET_PROPERTY (TARGET wasm-shell PROPERTY CXX_STANDARD 14 )
217227SET_PROPERTY (TARGET wasm-shell PROPERTY CXX_STANDARD_REQUIRED ON )
218228INSTALL (TARGETS wasm-shell DESTINATION ${CMAKE_INSTALL_BINDIR} )
219229
220230SET (wasm-opt_SOURCES
221231 src/tools/wasm-opt.cpp
222232)
223- ADD_EXECUTABLE (wasm-opt
224- ${wasm-opt_SOURCES} )
225- TARGET_LINK_LIBRARIES (wasm-opt wasm asmjs emscripten-optimizer passes ir cfg support wasm )
233+ ADD_EXECUTABLE (wasm-opt ${wasm-opt_SOURCES} ${binaryen_objs} )
234+ TARGET_LINK_LIBRARIES (wasm-opt ${CMAKE_THREAD_LIBS_INIT} )
226235SET_PROPERTY (TARGET wasm-opt PROPERTY CXX_STANDARD 14 )
227236SET_PROPERTY (TARGET wasm-opt PROPERTY CXX_STANDARD_REQUIRED ON )
228237INSTALL (TARGETS wasm-opt DESTINATION ${CMAKE_INSTALL_BINDIR} )
229238
230239SET (wasm-metadce_SOURCES
231240 src/tools/wasm-metadce.cpp
232241)
233- ADD_EXECUTABLE (wasm-metadce
234- ${wasm-metadce_SOURCES} )
235- TARGET_LINK_LIBRARIES (wasm-metadce wasm asmjs emscripten-optimizer passes ir cfg support wasm )
242+ ADD_EXECUTABLE (wasm-metadce ${wasm-metadce_SOURCES} ${binaryen_objs} )
243+ TARGET_LINK_LIBRARIES (wasm-metadce ${CMAKE_THREAD_LIBS_INIT} )
236244SET_PROPERTY (TARGET wasm-metadce PROPERTY CXX_STANDARD 14 )
237245SET_PROPERTY (TARGET wasm-metadce PROPERTY CXX_STANDARD_REQUIRED ON )
238246INSTALL (TARGETS wasm-metadce DESTINATION bin)
239247
240248SET (asm2wasm_SOURCES
241249 src/tools/asm2wasm.cpp
242250)
243- ADD_EXECUTABLE (asm2wasm
244- ${asm2wasm_SOURCES} )
245- TARGET_LINK_LIBRARIES (asm2wasm emscripten-optimizer passes wasm asmjs ir cfg support )
251+ ADD_EXECUTABLE (asm2wasm ${asm2wasm_SOURCES} ${binaryen_objs} )
252+ TARGET_LINK_LIBRARIES (asm2wasm ${CMAKE_THREAD_LIBS_INIT} )
246253SET_PROPERTY (TARGET asm2wasm PROPERTY CXX_STANDARD 14 )
247254SET_PROPERTY (TARGET asm2wasm PROPERTY CXX_STANDARD_REQUIRED ON )
248255INSTALL (TARGETS asm2wasm DESTINATION ${CMAKE_INSTALL_BINDIR} )
249256
250257SET (wasm2js_SOURCES
251258 src/tools/wasm2js.cpp
252259)
253- ADD_EXECUTABLE (wasm2js
254- ${wasm2js_SOURCES} )
255- TARGET_LINK_LIBRARIES (wasm2js passes wasm asmjs emscripten-optimizer ir cfg support )
260+ ADD_EXECUTABLE (wasm2js ${wasm2js_SOURCES} ${binaryen_objs} )
261+ TARGET_LINK_LIBRARIES (wasm2js ${CMAKE_THREAD_LIBS_INIT} )
256262SET_PROPERTY (TARGET wasm2js PROPERTY CXX_STANDARD 14 )
257263SET_PROPERTY (TARGET wasm2js PROPERTY CXX_STANDARD_REQUIRED ON )
258264INSTALL (TARGETS wasm2js DESTINATION ${CMAKE_INSTALL_BINDIR} )
259265
260266SET (wasm-emscripten-finalize_SOURCES
261267 src/tools/wasm-emscripten-finalize.cpp
262268)
263- ADD_EXECUTABLE (wasm-emscripten-finalize
264- ${wasm-emscripten-finalize_SOURCES} )
265- TARGET_LINK_LIBRARIES (wasm-emscripten-finalize passes wasm asmjs ir cfg support )
269+ ADD_EXECUTABLE (wasm-emscripten-finalize ${wasm-emscripten-finalize_SOURCES} ${binaryen_objs} )
270+ TARGET_LINK_LIBRARIES (wasm-emscripten-finalize ${CMAKE_THREAD_LIBS_INIT} )
266271SET_PROPERTY (TARGET wasm-emscripten-finalize PROPERTY CXX_STANDARD 14 )
267272SET_PROPERTY (TARGET wasm-emscripten-finalize PROPERTY CXX_STANDARD_REQUIRED ON )
268273INSTALL (TARGETS wasm-emscripten-finalize DESTINATION ${CMAKE_INSTALL_BINDIR} )
269274
270275SET (wasm_as_SOURCES
271276 src/tools/wasm-as.cpp
272277)
273- ADD_EXECUTABLE (wasm-as
274- ${wasm_as_SOURCES} )
275- TARGET_LINK_LIBRARIES (wasm-as wasm asmjs passes ir cfg support wasm )
278+ ADD_EXECUTABLE (wasm-as ${wasm_as_SOURCES} ${binaryen_objs} )
279+ TARGET_LINK_LIBRARIES (wasm-as ${CMAKE_THREAD_LIBS_INIT} )
276280SET_PROPERTY (TARGET wasm-as PROPERTY CXX_STANDARD 14 )
277281SET_PROPERTY (TARGET wasm-as PROPERTY CXX_STANDARD_REQUIRED ON )
278282INSTALL (TARGETS wasm-as DESTINATION ${CMAKE_INSTALL_BINDIR} )
279283
280284SET (wasm_dis_SOURCES
281285 src/tools/wasm-dis.cpp
282286)
283- ADD_EXECUTABLE (wasm-dis
284- ${wasm_dis_SOURCES} )
285- TARGET_LINK_LIBRARIES (wasm-dis wasm asmjs emscripten-optimizer passes ir cfg support wasm )
287+ ADD_EXECUTABLE (wasm-dis ${wasm_dis_SOURCES} ${binaryen_objs} )
288+ TARGET_LINK_LIBRARIES (wasm-dis ${CMAKE_THREAD_LIBS_INIT} )
286289SET_PROPERTY (TARGET wasm-dis PROPERTY CXX_STANDARD 14 )
287290SET_PROPERTY (TARGET wasm-dis PROPERTY CXX_STANDARD_REQUIRED ON )
288291INSTALL (TARGETS wasm-dis DESTINATION ${CMAKE_INSTALL_BINDIR} )
289292
290293SET (wasm-ctor-eval_SOURCES
291294 src/tools/wasm-ctor-eval.cpp
292295)
293- ADD_EXECUTABLE (wasm-ctor-eval
294- ${wasm-ctor-eval_SOURCES} )
295- TARGET_LINK_LIBRARIES (wasm-ctor-eval emscripten-optimizer passes wasm asmjs ir cfg support )
296+ ADD_EXECUTABLE (wasm-ctor-eval ${wasm-ctor-eval_SOURCES} ${binaryen_objs} )
297+ TARGET_LINK_LIBRARIES (wasm-ctor-eval ${CMAKE_THREAD_LIBS_INIT} )
296298SET_PROPERTY (TARGET wasm-ctor-eval PROPERTY CXX_STANDARD 14 )
297299SET_PROPERTY (TARGET wasm-ctor-eval PROPERTY CXX_STANDARD_REQUIRED ON )
298300INSTALL (TARGETS wasm-ctor-eval DESTINATION bin)
299301
300302SET (wasm-reduce_SOURCES
301303 src/tools/wasm-reduce.cpp
302304)
303- ADD_EXECUTABLE (wasm-reduce
304- ${wasm-reduce_SOURCES} )
305- TARGET_LINK_LIBRARIES (wasm-reduce wasm asmjs passes wasm ir cfg support )
305+ ADD_EXECUTABLE (wasm-reduce ${wasm-reduce_SOURCES} ${binaryen_objs} )
306+ TARGET_LINK_LIBRARIES (wasm-reduce ${CMAKE_THREAD_LIBS_INIT} )
306307SET_PROPERTY (TARGET wasm-reduce PROPERTY CXX_STANDARD 14 )
307308SET_PROPERTY (TARGET wasm-reduce PROPERTY CXX_STANDARD_REQUIRED ON )
308309INSTALL (TARGETS wasm-reduce DESTINATION ${CMAKE_INSTALL_BINDIR} )
0 commit comments