Created
November 25, 2019 17:51
-
-
Save kripken/56fbec00a34be9ed50522a0d5ddb298a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/CMakeLists.txt b/CMakeLists.txt | |
index e987ba311..ec35cd4c2 100644 | |
--- a/CMakeLists.txt | |
+++ b/CMakeLists.txt | |
@@ -184,6 +184,16 @@ ADD_SUBDIRECTORY(src/passes) | |
ADD_SUBDIRECTORY(src/support) | |
ADD_SUBDIRECTORY(src/wasm) | |
+# Object files | |
+SET(binaryen_objs | |
+ $<TARGET_OBJECTS:passes> | |
+ $<TARGET_OBJECTS:wasm> | |
+ $<TARGET_OBJECTS:asmjs> | |
+ $<TARGET_OBJECTS:emscripten-optimizer> | |
+ $<TARGET_OBJECTS:ir> | |
+ $<TARGET_OBJECTS:cfg> | |
+ $<TARGET_OBJECTS:support>) | |
+ | |
# Sources. | |
@@ -191,12 +201,14 @@ SET(binaryen_SOURCES | |
src/binaryen-c.cpp | |
) | |
IF(BUILD_STATIC_LIB) | |
- ADD_LIBRARY(binaryen STATIC ${binaryen_SOURCES}) | |
+ MESSAGE(STATUS "Building libbinaryen as statically linked library.") | |
+ ADD_LIBRARY(binaryen STATIC ${binaryen_SOURCES} ${binaryen_objs}) | |
ADD_DEFINITIONS(-DBUILD_STATIC_LIBRARY) | |
ELSE() | |
- ADD_LIBRARY(binaryen SHARED ${binaryen_SOURCES}) | |
+ MESSAGE(STATUS "Building libbinaryen as shared library.") | |
+ ADD_LIBRARY(binaryen SHARED ${binaryen_SOURCES} ${binaryen_objs}) | |
ENDIF() | |
-TARGET_LINK_LIBRARIES(binaryen PRIVATE passes wasm asmjs emscripten-optimizer ir cfg support) | |
+ | |
INSTALL(TARGETS binaryen DESTINATION ${CMAKE_INSTALL_LIBDIR}) | |
INSTALL(FILES src/binaryen-c.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) | |
@@ -209,10 +221,11 @@ ENDIF() | |
SET(wasm-shell_SOURCES | |
src/tools/wasm-shell.cpp | |
+ ${binaryen_objs} | |
) | |
ADD_EXECUTABLE(wasm-shell | |
${wasm-shell_SOURCES}) | |
-TARGET_LINK_LIBRARIES(wasm-shell wasm asmjs emscripten-optimizer passes ir cfg support wasm) | |
+TARGET_LINK_LIBRARIES(wasm-shell ${CMAKE_THREAD_LIBS_INIT}) | |
SET_PROPERTY(TARGET wasm-shell PROPERTY CXX_STANDARD 14) | |
SET_PROPERTY(TARGET wasm-shell PROPERTY CXX_STANDARD_REQUIRED ON) | |
INSTALL(TARGETS wasm-shell DESTINATION ${CMAKE_INSTALL_BINDIR}) | |
@@ -222,87 +235,95 @@ SET(wasm-opt_SOURCES | |
) | |
ADD_EXECUTABLE(wasm-opt | |
${wasm-opt_SOURCES}) | |
-TARGET_LINK_LIBRARIES(wasm-opt wasm asmjs emscripten-optimizer passes ir cfg support wasm) | |
+TARGET_LINK_LIBRARIES(wasm-opt ${CMAKE_THREAD_LIBS_INIT}) | |
SET_PROPERTY(TARGET wasm-opt PROPERTY CXX_STANDARD 14) | |
SET_PROPERTY(TARGET wasm-opt PROPERTY CXX_STANDARD_REQUIRED ON) | |
INSTALL(TARGETS wasm-opt DESTINATION ${CMAKE_INSTALL_BINDIR}) | |
SET(wasm-metadce_SOURCES | |
src/tools/wasm-metadce.cpp | |
+ ${binaryen_objs} | |
) | |
ADD_EXECUTABLE(wasm-metadce | |
${wasm-metadce_SOURCES}) | |
-TARGET_LINK_LIBRARIES(wasm-metadce wasm asmjs emscripten-optimizer passes ir cfg support wasm) | |
+TARGET_LINK_LIBRARIES(wasm-metadce ${CMAKE_THREAD_LIBS_INIT}) | |
SET_PROPERTY(TARGET wasm-metadce PROPERTY CXX_STANDARD 14) | |
SET_PROPERTY(TARGET wasm-metadce PROPERTY CXX_STANDARD_REQUIRED ON) | |
INSTALL(TARGETS wasm-metadce DESTINATION bin) | |
SET(asm2wasm_SOURCES | |
src/tools/asm2wasm.cpp | |
+ ${binaryen_objs} | |
) | |
ADD_EXECUTABLE(asm2wasm | |
${asm2wasm_SOURCES}) | |
-TARGET_LINK_LIBRARIES(asm2wasm emscripten-optimizer passes wasm asmjs ir cfg support) | |
+TARGET_LINK_LIBRARIES(asm2wasm ${CMAKE_THREAD_LIBS_INIT}) | |
SET_PROPERTY(TARGET asm2wasm PROPERTY CXX_STANDARD 14) | |
SET_PROPERTY(TARGET asm2wasm PROPERTY CXX_STANDARD_REQUIRED ON) | |
INSTALL(TARGETS asm2wasm DESTINATION ${CMAKE_INSTALL_BINDIR}) | |
SET(wasm2js_SOURCES | |
src/tools/wasm2js.cpp | |
+ ${binaryen_objs} | |
) | |
ADD_EXECUTABLE(wasm2js | |
${wasm2js_SOURCES}) | |
-TARGET_LINK_LIBRARIES(wasm2js passes wasm asmjs emscripten-optimizer ir cfg support) | |
+TARGET_LINK_LIBRARIES(wasm2js ${CMAKE_THREAD_LIBS_INIT}) | |
SET_PROPERTY(TARGET wasm2js PROPERTY CXX_STANDARD 14) | |
SET_PROPERTY(TARGET wasm2js PROPERTY CXX_STANDARD_REQUIRED ON) | |
INSTALL(TARGETS wasm2js DESTINATION ${CMAKE_INSTALL_BINDIR}) | |
SET(wasm-emscripten-finalize_SOURCES | |
src/tools/wasm-emscripten-finalize.cpp | |
+ ${binaryen_objs} | |
) | |
ADD_EXECUTABLE(wasm-emscripten-finalize | |
${wasm-emscripten-finalize_SOURCES}) | |
-TARGET_LINK_LIBRARIES(wasm-emscripten-finalize passes wasm asmjs ir cfg support) | |
+TARGET_LINK_LIBRARIES(wasm-emscripten-finalize ${CMAKE_THREAD_LIBS_INIT}) | |
SET_PROPERTY(TARGET wasm-emscripten-finalize PROPERTY CXX_STANDARD 14) | |
SET_PROPERTY(TARGET wasm-emscripten-finalize PROPERTY CXX_STANDARD_REQUIRED ON) | |
INSTALL(TARGETS wasm-emscripten-finalize DESTINATION ${CMAKE_INSTALL_BINDIR}) | |
SET(wasm_as_SOURCES | |
src/tools/wasm-as.cpp | |
+ ${binaryen_objs} | |
) | |
ADD_EXECUTABLE(wasm-as | |
${wasm_as_SOURCES}) | |
-TARGET_LINK_LIBRARIES(wasm-as wasm asmjs passes ir cfg support wasm) | |
+TARGET_LINK_LIBRARIES(wasm-as ${CMAKE_THREAD_LIBS_INIT}) | |
SET_PROPERTY(TARGET wasm-as PROPERTY CXX_STANDARD 14) | |
SET_PROPERTY(TARGET wasm-as PROPERTY CXX_STANDARD_REQUIRED ON) | |
INSTALL(TARGETS wasm-as DESTINATION ${CMAKE_INSTALL_BINDIR}) | |
SET(wasm_dis_SOURCES | |
src/tools/wasm-dis.cpp | |
+ ${binaryen_objs} | |
) | |
ADD_EXECUTABLE(wasm-dis | |
${wasm_dis_SOURCES}) | |
-TARGET_LINK_LIBRARIES(wasm-dis passes wasm asmjs ir cfg support) | |
+TARGET_LINK_LIBRARIES(wasm-dis ${CMAKE_THREAD_LIBS_INIT}) | |
SET_PROPERTY(TARGET wasm-dis PROPERTY CXX_STANDARD 14) | |
SET_PROPERTY(TARGET wasm-dis PROPERTY CXX_STANDARD_REQUIRED ON) | |
INSTALL(TARGETS wasm-dis DESTINATION ${CMAKE_INSTALL_BINDIR}) | |
SET(wasm-ctor-eval_SOURCES | |
src/tools/wasm-ctor-eval.cpp | |
+ ${binaryen_objs} | |
) | |
ADD_EXECUTABLE(wasm-ctor-eval | |
${wasm-ctor-eval_SOURCES}) | |
-TARGET_LINK_LIBRARIES(wasm-ctor-eval emscripten-optimizer passes wasm asmjs ir cfg support) | |
+TARGET_LINK_LIBRARIES(wasm-ctor-eval ${CMAKE_THREAD_LIBS_INIT}) | |
SET_PROPERTY(TARGET wasm-ctor-eval PROPERTY CXX_STANDARD 14) | |
SET_PROPERTY(TARGET wasm-ctor-eval PROPERTY CXX_STANDARD_REQUIRED ON) | |
INSTALL(TARGETS wasm-ctor-eval DESTINATION bin) | |
SET(wasm-reduce_SOURCES | |
src/tools/wasm-reduce.cpp | |
+ ${binaryen_objs} | |
) | |
ADD_EXECUTABLE(wasm-reduce | |
${wasm-reduce_SOURCES}) | |
-TARGET_LINK_LIBRARIES(wasm-reduce wasm asmjs passes wasm ir cfg support) | |
+TARGET_LINK_LIBRARIES(wasm-reduce ${CMAKE_THREAD_LIBS_INIT}) | |
SET_PROPERTY(TARGET wasm-reduce PROPERTY CXX_STANDARD 14) | |
SET_PROPERTY(TARGET wasm-reduce PROPERTY CXX_STANDARD_REQUIRED ON) | |
INSTALL(TARGETS wasm-reduce DESTINATION ${CMAKE_INSTALL_BINDIR}) | |
diff --git a/src/support/CMakeLists.txt b/src/support/CMakeLists.txt | |
index eaf608d58..c8d7632e4 100644 | |
--- a/src/support/CMakeLists.txt | |
+++ b/src/support/CMakeLists.txt | |
@@ -9,4 +9,3 @@ SET(support_SOURCES | |
threads.cpp | |
) | |
ADD_LIBRARY(support OBJECT ${support_SOURCES}) | |
-TARGET_LINK_LIBRARIES(support ${CMAKE_THREAD_LIBS_INIT}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment