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_STATIC ${BUILD_STATIC_LIB}) if (BUILD_STATIC_LIB) set(MI_BUILD_SHARED 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_STATIC_LIB) # No need to install libmimalloc.a when it's linked statically into the tools. add_subdirectory(mimalloc EXCLUDE_FROM_ALL) else() add_subdirectory(mimalloc) endif() endif()