From 979e7b8709c77e30a6b01345e6541cbb7c03e7a8 Mon Sep 17 00:00:00 2001 From: whitequark Date: Wed, 10 Mar 2021 06:18:42 +0000 Subject: [PATCH] Only depend on Abseil in threaded builds. Abseil has a hard dependency on threads (not just in the build system but in many places in the base libraries), so there is no way to use it on WASI at the moment. --- CMakeLists.txt | 6 ++++-- common/router2.cc | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c8e38a8..b3df6a58 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -274,8 +274,10 @@ foreach (family ${ARCH}) # Include the family-specific CMakeFile include(${family}/family.cmake) foreach (target ${family_targets}) - target_link_libraries(${target} PRIVATE absl::flat_hash_map) - target_link_libraries(${target} PRIVATE absl::flat_hash_set) + if (USE_THREADS) + target_link_libraries(${target} PRIVATE absl::flat_hash_map) + target_link_libraries(${target} PRIVATE absl::flat_hash_set) + endif() # Include family-specific source files to all family targets and set defines appropriately target_include_directories(${target} PRIVATE ${family}/ ${CMAKE_CURRENT_BINARY_DIR}/generated/) diff --git a/common/router2.cc b/common/router2.cc index 0a3a4e94..b145db81 100644 --- a/common/router2.cc +++ b/common/router2.cc @@ -27,7 +27,9 @@ */ #include "router2.h" +#if !defined(NPNR_DISABLE_THREADS) #include +#endif #include #include #include @@ -191,7 +193,11 @@ struct Router2 } } +#if defined(NPNR_DISABLE_THREADS) + std::unordered_map wire_to_idx; +#else absl::flat_hash_map wire_to_idx; +#endif std::vector flat_wires; PerWireData &wire_data(WireId w) { return flat_wires[wire_to_idx.at(w)]; }