mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
Revert "Improve LibFMT detection"
This reverts commit 9feaa6be07
.
No, we do NOT support fmt 6.x, it formats values differently.
And we MUST use FMT_HEADER_ONLY
This commit is contained in:
parent
2d21917e7d
commit
23bfacf1cc
4 changed files with 9 additions and 45 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -618,4 +618,3 @@ tests/mariadb-client-test
|
|||
versioninfo_dll.rc
|
||||
versioninfo_exe.rc
|
||||
win/packaging/ca/symlinks.cc
|
||||
/_Deparsed_XSubs.pm
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
INCLUDE (CheckCXXSourceCompiles)
|
||||
INCLUDE (ExternalProject)
|
||||
|
||||
SET(WITH_LIBFMT "auto" CACHE STRING
|
||||
"Which libfmt to use (possible values are 'bundled', 'system', or 'auto')")
|
||||
|
@ -10,7 +12,6 @@ MACRO(BUNDLE_LIBFMT)
|
|||
SET(fmt_byproducts BUILD_BYPRODUCTS ${LIBFMT_INCLUDE_DIR}/fmt/format-inl.h)
|
||||
ENDIF()
|
||||
|
||||
INCLUDE (ExternalProject)
|
||||
ExternalProject_Add(
|
||||
libfmt
|
||||
PREFIX "${dir}"
|
||||
|
@ -25,42 +26,17 @@ ENDMACRO()
|
|||
|
||||
MACRO (CHECK_LIBFMT)
|
||||
IF(WITH_LIBFMT STREQUAL "system" OR WITH_LIBFMT STREQUAL "auto")
|
||||
FIND_PACKAGE(fmt)
|
||||
IF(fmt_FOUND)
|
||||
set(HAVE_SYSTEM_LIBFMT ${fmt_FOUND})
|
||||
ENDIF()
|
||||
|
||||
FIND_LIBRARY(FMT_LIB_FOUND fmt)
|
||||
IF(FMT_LIB_FOUND)
|
||||
set(FMT_LIBRARIES fmt CACHE STRING "LibFormat libraries" FORCE)
|
||||
ADD_DEFINITIONS(-DLINK_SYSTEM_LIBFMT)
|
||||
ELSE(FMT_LIB_FOUND)
|
||||
set(FMT_HEADER_ONLY "#define FMT_HEADER_ONLY 1")
|
||||
set(FMT_LIBRARIES "" CACHE STRING "LibFormat libraries" FORCE)
|
||||
ENDIF(FMT_LIB_FOUND)
|
||||
|
||||
INCLUDE (CheckCXXSourceCompiles)
|
||||
CHECK_CXX_SOURCE_COMPILES(
|
||||
"#define FMT_STATIC_THOUSANDS_SEPARATOR ','
|
||||
${FMT_HEADER_ONLY}
|
||||
#define FMT_HEADER_ONLY 1
|
||||
#include <fmt/format-inl.h>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#if FMT_VERSION < 70000
|
||||
using namespace ::fmt::internal;
|
||||
#else
|
||||
using namespace ::fmt::detail;
|
||||
#endif
|
||||
int main() {
|
||||
fmt::format_args::format_arg arg=
|
||||
fmt::detail::make_arg<fmt::format_context>(42);
|
||||
std::cout << fmt::vformat(\"The answer is {}.\",
|
||||
fmt::format_args(&arg, 1));
|
||||
return 0;
|
||||
}" HAVE_SYSTEM_LIBFMT)
|
||||
IF (HAVE_SYSTEM_LIBFMT)
|
||||
ADD_DEFINITIONS(-DHAVE_SYSTEM_LIBFMT)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(NOT HAVE_SYSTEM_LIBFMT OR WITH_LIBFMT STREQUAL "bundled")
|
||||
IF (WITH_LIBFMT STREQUAL "system")
|
||||
|
|
|
@ -208,7 +208,6 @@ MAYBE_DISABLE_IPO(sql)
|
|||
DTRACE_INSTRUMENT(sql)
|
||||
TARGET_LINK_LIBRARIES(sql PUBLIC
|
||||
mysys mysys_ssl dbug strings vio pcre2-8
|
||||
${FMT_LIBRARIES}
|
||||
tpool
|
||||
${LIBWRAP} ${LIBCRYPT} ${CMAKE_DL_LIBS} ${CMAKE_THREAD_LIBS_INIT}
|
||||
${SSL_LIBRARIES}
|
||||
|
@ -278,7 +277,7 @@ IF(MSVC OR CMAKE_SYSTEM_NAME MATCHES AIX)
|
|||
ENDIF()
|
||||
|
||||
ADD_LIBRARY(sql_builtins STATIC ${CMAKE_CURRENT_BINARY_DIR}/sql_builtin.cc)
|
||||
TARGET_LINK_LIBRARIES(sql_builtins PUBLIC ${MYSQLD_STATIC_PLUGIN_LIBS})
|
||||
TARGET_LINK_LIBRARIES(sql_builtins ${MYSQLD_STATIC_PLUGIN_LIBS})
|
||||
|
||||
MYSQL_ADD_EXECUTABLE(mariadbd ${MYSQLD_SOURCE} DESTINATION ${INSTALL_SBINDIR} COMPONENT Server)
|
||||
|
||||
|
|
|
@ -57,18 +57,8 @@ C_MODE_END
|
|||
|
||||
/* fmtlib include (https://fmt.dev/). */
|
||||
#define FMT_STATIC_THOUSANDS_SEPARATOR ','
|
||||
#if !defined(HAVE_SYSTEM_LIBFMT) && !defined(LINK_SYSTEM_LIBFMT)
|
||||
#define FMT_HEADER_ONLY 1
|
||||
#endif
|
||||
|
||||
#include <fmt/format-inl.h>
|
||||
|
||||
#if FMT_VERSION < 70000
|
||||
using namespace ::fmt::internal;
|
||||
#else
|
||||
using namespace ::fmt::detail;
|
||||
#endif
|
||||
|
||||
#include "fmt/format-inl.h"
|
||||
|
||||
size_t username_char_length= USERNAME_CHAR_LENGTH;
|
||||
|
||||
|
@ -1403,14 +1393,14 @@ String *Item_func_sformat::val_str(String *res)
|
|||
switch (args[carg]->result_type())
|
||||
{
|
||||
case INT_RESULT:
|
||||
vargs[carg-1]= make_arg<ctx>(args[carg]->val_int());
|
||||
vargs[carg-1]= fmt::detail::make_arg<ctx>(args[carg]->val_int());
|
||||
break;
|
||||
case DECIMAL_RESULT: // TODO
|
||||
case REAL_RESULT:
|
||||
if (args[carg]->field_type() == MYSQL_TYPE_FLOAT)
|
||||
vargs[carg-1]= make_arg<ctx>((float)args[carg]->val_real());
|
||||
vargs[carg-1]= fmt::detail::make_arg<ctx>((float)args[carg]->val_real());
|
||||
else
|
||||
vargs[carg-1]= make_arg<ctx>(args[carg]->val_real());
|
||||
vargs[carg-1]= fmt::detail::make_arg<ctx>(args[carg]->val_real());
|
||||
break;
|
||||
case STRING_RESULT:
|
||||
if (!(parg= args[carg]->val_str(&val_arg[carg-1])))
|
||||
|
@ -1418,7 +1408,7 @@ String *Item_func_sformat::val_str(String *res)
|
|||
delete [] vargs;
|
||||
return NULL;
|
||||
}
|
||||
vargs[carg-1]= make_arg<ctx>(*parg);
|
||||
vargs[carg-1]= fmt::detail::make_arg<ctx>(*parg);
|
||||
break;
|
||||
case TIME_RESULT: // TODO
|
||||
case ROW_RESULT: // TODO
|
||||
|
|
Loading…
Reference in a new issue