From 5fd67e1f88ff86cd3280b47bf99a40f572045bb4 Mon Sep 17 00:00:00 2001 From: Lucian Petrut Date: Fri, 28 Jul 2023 11:27:56 +0000 Subject: [PATCH] build: globally set FMT_USE_TZSET=0 for Windows MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit We're currently setting FMT_USE_TZSET=0 when building libfmt in order to avoid the _tzset function, which is unavailable under Mingw: https://github.com/ceph/ceph/commit/aa5769ecf1d80fc9824280d2e90fd4c61a0e7769 The issue is that it still gets used by fmt/chrono.h, which is why we'll move this definition to the top level cmake file. Note that the Windows build is currently failing as a result of a recent change: https://github.com/ceph/ceph/pull/52590/files In file included from ceph/src/common/ceph_time.h:22, from ceph/src/include/encoding.h:31, from ceph/src/include/uuid.h:9, from ceph/src/include/types.h:21, from ceph/src/crush/CrushWrapper.h:14, from ceph/src/crush/CrushCompiler.h:7, from ceph/src/crush/CrushCompiler.cc:4: ceph/src/fmt/include/fmt/chrono.h: In lambda function: ceph/src/fmt/include/fmt/chrono.h:953:5: error: ‘_tzset’ was not declared in this scope; did you mean ‘tzset’? 953 | _tzset(); | ^~~~~~ | tzset Signed-off-by: Lucian Petrut --- CMakeLists.txt | 1 + src/CMakeLists.txt | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2852a7488acb4..1778a7202649a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,6 +46,7 @@ if(WIN32) # https://github.com/msys2/MINGW-packages/issues/3319 add_definitions( -D_WIN32_WINNT=${WIN32_WINNT} + -DFMT_USE_TZSET=0 -DBOOST_THREAD_PROVIDES_GENERIC_SHARED_MUTEX_ON_WIN -DBOOST_THREAD_V2_SHARED_MUTEX ) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 25af73a28aea0..2d2d7f67ee41a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -337,8 +337,6 @@ else() add_subdirectory(fmt) set(BUILD_SHARED_LIBS ${old_BUILD_SHARED_LIBS}) unset(old_BUILD_SHARED_LIBS) - target_compile_definitions(fmt PUBLIC - $<$:FMT_USE_TZSET=0>) include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/src/fmt/include") endif() -- 2.39.5