| 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) | |
| add_library(gmock STATIC googletest/googlemock/src/gmock-all.cc) | |
| add_library(gmock_main STATIC googletest/googlemock/src/gmock_main.cc) | |
| target_compile_options(gtest PRIVATE "-fno-rtti") | |
| target_compile_options(gtest_main PRIVATE "-fno-rtti") | |
| target_compile_options(gmock PRIVATE "-fno-rtti") | |
| target_compile_options(gmock_main PRIVATE "-fno-rtti") | |
| include_directories( | |
| googletest/googletest | |
| googletest/googletest/include | |
| googletest/googlemock | |
| googletest/googlemock/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() |