Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/MariaDB/vio/   (MariaDB Server Version 8.1-8.4©)  Datei vom 1.9.2026 mit Größe 3 kB image not shown  

SSL libfmt.cmake  Sprache: unbekannt

 
Spracherkennung für: .cmake vermutete Sprache: Fortran {Fortran[42] Masm[40] Delphi[39]} [Methode: maximale Elemente, drei Dimensionen]

INCLUDE (CheckCXXSourceRuns)
INCLUDE (ExternalProject)

SET(WITH_LIBFMT "auto" CACHE STRING
   "Which libfmt to use (possible values are 'bundled', 'system', or 'auto')")

MACRO(BUNDLE_LIBFMT)
  SET(dir "${CMAKE_BINARY_DIR}/extra/libfmt")
  SET(LIBFMT_INCLUDE_DIR "${dir}/src/libfmt/include")

  IF(CMAKE_VERSION VERSION_GREATER "3.0")
    SET(fmt_byproducts BUILD_BYPRODUCTS ${LIBFMT_INCLUDE_DIR}/fmt/format-inl.h)
  ENDIF()

  IF(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.9")
    # it's for RHEL-7, gcc 4.8.5
    # with newer fmt it complains about missing space in operator""_a()
    SET(source URL "https://github.com/fmtlib/fmt/releases/download/11.0.2/fmt-11.0.2.zip"
               URL_MD5 c622dca45ec3fc95254c48370a9f7a1d)
  ELSE()
    SET(source URL "https://github.com/fmtlib/fmt/releases/download/12.2.0/fmt-12.2.0.zip"
               URL_MD5 6083253772ad29e73a4d5920be08918e)
  ENDIF()

  ExternalProject_Add(
    libfmt
    PREFIX   "${dir}"
    ${source}
    INSTALL_COMMAND ""
    CONFIGURE_COMMAND ""
    BUILD_COMMAND ""
    ${fmt_byproducts}
  )
ENDMACRO()

MACRO (CHECK_LIBFMT)
  IF(WITH_LIBFMT STREQUAL "system" OR WITH_LIBFMT STREQUAL "auto")
    SET(CMAKE_REQUIRED_INCLUDES ${LIBFMT_INCLUDE_DIR})
    CHECK_CXX_SOURCE_RUNS(
    "#define FMT_HEADER_ONLY 1
     #include <fmt/args.h>
     int main() {
       using ArgStore= fmt::dynamic_format_arg_store<fmt::format_context>;
       ArgStore arg_store;
       int answer= 4321;
       arg_store.push_back(answer);
       return fmt::vformat(\"{}\", arg_store).compare(\"4321\");
     }" HAVE_SYSTEM_LIBFMT)
    SET(CMAKE_REQUIRED_INCLUDES)
  ENDIF()
  IF(NOT HAVE_SYSTEM_LIBFMT OR WITH_LIBFMT STREQUAL "bundled")
    IF (WITH_LIBFMT STREQUAL "system")
      MESSAGE(FATAL_ERROR "system libfmt library is not found or unusable")
    ENDIF()
    BUNDLE_LIBFMT()
  ELSE()
    FIND_FILE(Libfmt_core_h fmt/core.h) # for build_depends.cmake
  ENDIF()
ENDMACRO()

MARK_AS_ADVANCED(LIBFMT_INCLUDE_DIR)

[Verzeichnis aufwärts0.510unsichere VerbindungÜbersetzung europäischer Sprachen durch Browser2026-10-08]