build: UNITS_USE_LIBFMT support improved

This commit is contained in:
Mateusz Pusz
2021-10-15 17:43:58 +02:00
parent ee70c48b13
commit 5bd7852ae5
3 changed files with 30 additions and 17 deletions

View File

@@ -151,16 +151,6 @@ Additionally, enables project documentation generation when the project is being
CMake Options CMake Options
^^^^^^^^^^^^^ ^^^^^^^^^^^^^
UNITS_DOWNCAST_MODE
+++++++++++++++++++
**Values**: ``OFF``/``ON``/``AUTO``
**Defaulted to**: ``ON``
Equivalent to `downcast_mode`_.
UNITS_AS_SYSTEM_HEADERS UNITS_AS_SYSTEM_HEADERS
+++++++++++++++++++++++ +++++++++++++++++++++++
@@ -171,6 +161,26 @@ UNITS_AS_SYSTEM_HEADERS
Exports library as system headers. Exports library as system headers.
UNITS_BUILD_DOCS
++++++++++++++++
**Values**: ``ON``/``OFF``
**Defaulted to**: ``ON``
Enables project documentation generation.
UNITS_DOWNCAST_MODE
+++++++++++++++++++
**Values**: ``OFF``/``ON``/``AUTO``
**Defaulted to**: ``ON``
Equivalent to `downcast_mode`_.
UNITS_IWYU UNITS_IWYU
++++++++++ ++++++++++
@@ -182,14 +192,14 @@ Enables include-what-you-use when compiling with a clang compiler.
Additionally turns on `UNITS_AS_SYSTEM_HEADERS`_. Additionally turns on `UNITS_AS_SYSTEM_HEADERS`_.
UNITS_BUILD_DOCS UNITS_USE_LIBFMT
++++++++++++++++ ++++++++++++++++
**Values**: ``ON``/``OFF`` **Values**: ``ON``/``OFF``
**Defaulted to**: ``ON`` **Defaulted to**: ``ON``
Enables project documentation generation. Enables usage of `{fmt} <https://github.com/fmtlib/fmt>`_ library instead of the C++20 Standard Library feature.
Installation and Reuse Installation and Reuse

View File

@@ -22,14 +22,13 @@
cmake_minimum_required(VERSION 3.15) cmake_minimum_required(VERSION 3.15)
option(UNITS_USE_LIBFMT "Enables usage of libfmt instead of the one from 'std'" OFF) option(UNITS_USE_LIBFMT "Enables usage of libfmt instead of the one from 'std'" ON)
message(STATUS "UNITS_USE_LIBFMT: ${UNITS_USE_LIBFMT}") message(STATUS "UNITS_USE_LIBFMT: ${UNITS_USE_LIBFMT}")
# find dependencies
find_package(fmt CONFIG REQUIRED)
add_units_module(core-fmt mp-units::core) add_units_module(core-fmt mp-units::core)
target_compile_definitions(mp-units-core-fmt INTERFACE UNITS_USE_LIBFMT=$<BOOL:${UNITS_USE_LIBFMT}>)
if(UNITS_USE_LIBFMT) if(UNITS_USE_LIBFMT)
find_package(fmt CONFIG REQUIRED)
target_link_libraries(mp-units-core-fmt INTERFACE fmt::fmt) target_link_libraries(mp-units-core-fmt INTERFACE fmt::fmt)
target_compile_definitions(mp-units-core-fmt INTERFACE UNITS_USE_LIBFMT)
endif() endif()

View File

@@ -29,6 +29,10 @@
#include <units/bits/external/hacks.h> #include <units/bits/external/hacks.h>
#ifndef UNITS_USE_LIBFMT
#define UNITS_USE_LIBFMT 1
#endif
#if UNITS_USE_LIBFMT #if UNITS_USE_LIBFMT
UNITS_DIAGNOSTIC_PUSH UNITS_DIAGNOSTIC_PUSH