| 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, antohami, grenka, lav, nenderus |
| 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) Спасибо! |