Summary: | spdlog/fmt/bundled/core.h missing after upgrade to 1.5.0 | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Andrew Vasilyev <andy> |
Component: | libspdlog-devel | Assignee: | Vitaly Lipatov <lav> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P5 | CC: | andy, lav |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Andrew Vasilyev
2020-01-30 14:27:31 MSK
This is due to the following addition in spec: -%cmake +%cmake -DSPDLOG_BUILD_SHARED=ON \ + -DSPDLOG_FMT_EXTERNAL=ON Is there real need for having SPDLOG_FMT_EXTERNAL=ON ? Опишите, в чём проблема у вас при сборке с новой версией spdlog. As a result the building of lizardfs failed with the following error: make[2]: Entering directory '/usr/src/RPM/BUILD/lizardfs-3.13.0/BUILD' [ 0%] Building CXX object src/protocol/CMakeFiles/lzfsprotocol.dir/packet.cc.o In file included from /usr/include/spdlog/common.h:38, from /usr/include/spdlog/spdlog.h:12, from /usr/src/RPM/BUILD/lizardfs-3.13.0/src/common/slogger.h:29, from /usr/src/RPM/BUILD/lizardfs-3.13.0/src/common/massert.h:28, from /usr/src/RPM/BUILD/lizardfs-3.13.0/src/common/serialization.h:37, from /usr/src/RPM/BUILD/lizardfs-3.13.0/src/protocol/packet.h:28, from /usr/src/RPM/BUILD/lizardfs-3.13.0/src/protocol/packet.cc:20: /usr/include/spdlog/fmt/fmt.h:22:10: fatal error: spdlog/fmt/bundled/core.h: No such file or directory 22 | #include <spdlog/fmt/bundled/core.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [src/protocol/CMakeFiles/lzfsprotocol.dir/build.make:63: src/protocol/CMakeFiles/lzfsprotocol.dir/packet.cc.o] Error 1 From /usr/include/spdlog/fmt/fmt.h: #if !defined(SPDLOG_FMT_EXTERNAL) #ifdef SPDLOG_HEADER_ONLY #ifndef FMT_HEADER_ONLY #define FMT_HEADER_ONLY #endif #endif #ifndef FMT_USE_WINDOWS_H #define FMT_USE_WINDOWS_H 0 #endif #include <spdlog/fmt/bundled/core.h> #include <spdlog/fmt/bundled/format.h> #else // SPDLOG_FMT_EXTERNAL is defined - use external fmtlib #include <fmt/core.h> #include <fmt/format.h> #endif The problem caused by missed definition of macros SPDLOG_FMT_EXTERNAL, which should be probably defined in libspdlog-devel includes when built with external libfmt. There is /usr/include/spdlog/tweakme.h with SPDLOG_FMT_EXTERNAL comment out. If define SPDLOG_FMT_EXTERNAL while building lizardfs, the compilation succeeds. But it is not the right solution, isn't it? (Ответ для Andrew Vasilyev на комментарий #3) ... > There is /usr/include/spdlog/tweakme.h with SPDLOG_FMT_EXTERNAL comment > out. > > If define SPDLOG_FMT_EXTERNAL while building lizardfs, the compilation > succeeds. But it is not the right solution, isn't it? Хорошо, я проверяю, чтобы этот макрос был раскомментирован в пакете. spdlog-1.5.0-alt2 -> sisyphus: Thu Jan 30 2020 Vitaly Lipatov <lav@altlinux.ru> 1.5.0-alt2 - patch tweakme.h to use external libfmt for the library clients (ALT bug 37969) Спасибо! |