Skip to content
Snippets Groups Projects
  • Ben Morgan's avatar
    531114cd
    fmt: Add version 5.3.0 with cxxstd variant support (#11799) · 531114cd
    Ben Morgan authored
    * fmt: Add cxxstd variant, plus cmake/c++ patches
    
    Spack supported versions of fmt default to C++11 for versions
    less than 5, C++14 greater than 5, with fmt implementing
    fallbacks to whatever compiler supports.
    
    To give better ABI compatibility and use of newer standards, provide
    a `cxxstd` variant defaulting to 11 with 98-17 options. Use cmake_args
    to set CMAKE_CXX_STANDARD as appropriate, plus use of `FMT_USE_CPP11`
    option for C++98 builds. Use `conflicts` to disable use of certain
    standards in versions that don't support, or fail the build, with
    those standards.
    
    Add patches to unify use of `CMAKE_CXX_STANDARD` in 3.0 versions,
    remove hard-coding of compiler flags in `fmt-config.cmake`, and
    prevent use of C++11 features in 4.1.0 when in supported C++98
    mode.
    
    Default to not building documents as no dependency on Doxygen is
    yet present, and they are not part of the "all" build.
    
    * Use CMake to enforce C++ standard support
    
    Fail configure step if fmt tries to build with a cxxstd variant
    not supported by the compiler (or known to CMake).
    
    * fmt: New version 5.3.0
    fmt: Add version 5.3.0 with cxxstd variant support (#11799)
    Ben Morgan authored
    * fmt: Add cxxstd variant, plus cmake/c++ patches
    
    Spack supported versions of fmt default to C++11 for versions
    less than 5, C++14 greater than 5, with fmt implementing
    fallbacks to whatever compiler supports.
    
    To give better ABI compatibility and use of newer standards, provide
    a `cxxstd` variant defaulting to 11 with 98-17 options. Use cmake_args
    to set CMAKE_CXX_STANDARD as appropriate, plus use of `FMT_USE_CPP11`
    option for C++98 builds. Use `conflicts` to disable use of certain
    standards in versions that don't support, or fail the build, with
    those standards.
    
    Add patches to unify use of `CMAKE_CXX_STANDARD` in 3.0 versions,
    remove hard-coding of compiler flags in `fmt-config.cmake`, and
    prevent use of C++11 features in 4.1.0 when in supported C++98
    mode.
    
    Default to not building documents as no dependency on Doxygen is
    yet present, and they are not part of the "all" build.
    
    * Use CMake to enforce C++ standard support
    
    Fail configure step if fmt tries to build with a cxxstd variant
    not supported by the compiler (or known to CMake).
    
    * fmt: New version 5.3.0
src NaN GiB