if(MSVC)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
# Link MINGW runtime statically.
- elseif(WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL GNU)
- list(APPEND CCACHE_EXTRA_LIBS -static-libgcc -static-libstdc++ -static -lwinpthread -dynamic)
- # Link WIN32 clang libs statically.
- elseif(WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL Clang)
- list(APPEND CCACHE_EXTRA_LIBS -Wl,-Bstatic -lc++ -lunwind -Wl,-Bdynamic)
+ elseif(WIN32)
+ if((CMAKE_CXX_COMPILER_ID STREQUAL GNU) OR (CMAKE_CXX_COMPILER_ID STREQUAL Clang))
+ list(APPEND CCACHE_EXTRA_LIBS -static-libgcc -static-libstdc++ -static -lwinpthread -dynamic)
+ endif()
+ if(CMAKE_CXX_COMPILER_ID STREQUAL Clang)
+ list(APPEND CCACHE_EXTRA_LIBS -fuse-ld=lld)
+ endif()
endif()
endif()
// Seconds.
const double k_min_sleep_time = 0.010;
const double k_max_sleep_time = 0.050;
+#ifndef _WIN32
const double k_staleness_limit = 2;
const double k_keep_alive_interval = k_staleness_limit / 4;
const auto k_keep_alive_interval_ms = std::chrono::milliseconds{
static_cast<uint64_t>(k_keep_alive_interval * 1000)};
+#endif
namespace {