mirror of
https://github.com/fmtlib/fmt.git
synced 2026-08-03 20:14:20 +02:00
Add Separate CMake Target for C++20 Modules (#4685)
* Add Separate CMake Target for C++20 Modules In the same vein as there is the `fmt::fmt-header-only`, `fmt::fmt` and `fmt::fmt_c` targets, I propose the addition of a new target `fmt::fmt-module` which will be for the compilation of the FMT_MODULE library option. The new target will have the properties requried for Compiling, Installing and using the C++20 functionality in CMake The `add_module_library` function is marked as deprecated as its functionality is superseded. Updated the logic for setting the FMT_USE_CMAKE_MODULE flag to check the versions for Ninja and MSVC according the CMAKE Documents and setting the FMT_MODULE flag based on this * Add Separate CMake Target for C++20 Modules In the same vein as there is the `fmt::fmt-header-only`, `fmt::fmt` and `fmt::fmt_c` targets, I propose the addition of a new target `fmt::fmt-module` which will be for the compilation of the FMT_MODULE library option. The new target will have the properties requried for Compiling, Installing and using the C++20 functionality in CMake Updated the logic for setting the FMT_USE_CMAKE_MODULE flag to check the versions for Ninja and MSVC according the CMAKE Documents and setting the FMT_MODULE flag based on this Fixed the test/CMakeLists.txt file which used the FMT_MODULE flag to separate the module and non-module library testing, in particular disableing the module version. The module testing still needs to be fixed, but the expected behavior of testing the non-modular version is working. --------- Co-authored-by: Mathew Benson <mathew@benson.co.ke> Co-authored-by: ClausKlein <claus.klein@arcormail.de>
This commit is contained in:
@@ -20,6 +20,12 @@ The {fmt} library API consists of the following components:
|
||||
All functions and types provided by the library reside in namespace `fmt`
|
||||
and macros have prefix `FMT_`.
|
||||
|
||||
## C++ Modules API
|
||||
|
||||
With the new C++ Modules API, all the headers listed above do not need to
|
||||
be explicitly #included. We can instead use the `import fmt;` statement instead.
|
||||
All other functionality, listed below remains the same.
|
||||
|
||||
## Base API
|
||||
|
||||
`fmt/base.h` defines the base API which provides main formatting functions
|
||||
|
||||
Reference in New Issue
Block a user