diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b4cf08524d..1f1d97ae046 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -478,9 +478,10 @@ else() add_link_flag("-Bsymbolic") endif() endif() -target_link_libraries(binaryen Threads::Threads) +target_link_libraries(binaryen PUBLIC Threads::Threads) +binaryen_setup_rpath(binaryen) if(BUILD_LLVM_DWARF) - target_link_libraries(binaryen llvm_dwarf) + target_link_libraries(binaryen PRIVATE llvm_dwarf) endif() if(BUILD_MIMALLOC) @@ -489,9 +490,12 @@ if(BUILD_MIMALLOC) endif() message(STATUS "Building with mimalloc allocator.") if(BUILD_STATIC_LIB) - target_link_libraries(binaryen mimalloc-static) + target_link_libraries(binaryen PRIVATE "-Wl,--push-state,--as-needed") + target_link_libraries(binaryen PRIVATE mimalloc-static) + target_link_libraries(binaryen PRIVATE "-Wl,--pop-state") else() - target_link_libraries(binaryen mimalloc) + target_link_options(mimalloc PRIVATE "-Wl,--as-needed") + target_link_libraries(binaryen PRIVATE mimalloc) endif() endif()