blob: 5c77330e4fabd4085867d87e7fb96a9f4c95f97c [file] [edit]
if(BUILD_FUZZTEST)
add_subdirectory(fuzztest)
elseif(BUILD_TESTS)
# fuzztest includes gtest, but if we're not building fuzztest, build gtest ourselves.
add_library(gtest STATIC googletest/googletest/src/gtest-all.cc)
add_library(gtest_main STATIC googletest/googletest/src/gtest_main.cc)
target_compile_options(gtest PRIVATE "-fno-rtti")
target_compile_options(gtest_main PRIVATE "-fno-rtti")
include_directories(
googletest/googletest
googletest/googletest/include
)
endif()
if(BUILD_LLVM_DWARF)
add_subdirectory(llvm-project)
endif()
if(BUILD_MIMALLOC)
# Match static/dynamic linking between libbinaryen and mimalloc
set(MI_BUILD_SHARED ${BUILD_SHARED_LIBS})
if (BUILD_SHARED_LIBS)
set(MI_BUILD_STATIC OFF)
endif()
set(MI_BUILD_OBJECT OFF)
set(MI_BUILD_TESTS OFF)
set(MI_INSTALL_TOPLEVEL ON)
# Without this flag the resulting arm64 binary won't run on arm8-a devices
# such as the Raspberry Pi 4.
# This should probably be `MI_OPT_ARCH OFF` but that doesn't currently seem to
# work. See: https://github.com/microsoft/mimalloc/issues/1095
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64|armv[89].?|ARM64)$")
set(MI_NO_OPT_ARCH ON)
endif()
# Do not show debug and warning messages of the allocator by default.
# (They can still be enabled via MIMALLOC_VERBOSE=1 wasm-opt ...)
add_compile_definitions(MI_DEBUG=0)
if(BUILD_SHARED_LIBS)
add_subdirectory(mimalloc)
else()
# No need to install libmimalloc.a when it's linked statically into the tools.
add_subdirectory(mimalloc EXCLUDE_FROM_ALL)
endif()
endif()