From df1a77260bbdaa38a26a02b99932fcfaae701f96 Mon Sep 17 00:00:00 2001 From: Cyrus Harrison Date: Tue, 17 Nov 2020 10:06:29 -0800 Subject: [PATCH 1/2] install fmt for downstream use --- src/cmake/Setup3rdParty.cmake | 8 ++++++++ src/config/ConduitConfig.cmake.in | 1 + src/config/conduit_config.mk.in | 1 + src/config/conduit_setup_targets.cmake | 1 + src/libs/conduit/conduit_config.h.in | 2 ++ 5 files changed, 13 insertions(+) diff --git a/src/cmake/Setup3rdParty.cmake b/src/cmake/Setup3rdParty.cmake index b57fd13bc..fd6cc7566 100644 --- a/src/cmake/Setup3rdParty.cmake +++ b/src/cmake/Setup3rdParty.cmake @@ -47,8 +47,16 @@ include_directories(thirdparty_builtin/civetweb-0a95342/include) ################################ # Setup includes for fmt ################################ +# this cmake var used to signal fmt support for downstream users +set(CONDUIT_USE_FMT TRUE) + +# setup include dirs used during conduit build include_directories(thirdparty_builtin/fmt-7.1.0/) +# setup install of fmt headers for downstream users +install(DIRECTORY + thirdparty_builtin/fmt-7.1.0/conduit_fmt + DESTINATION include/conduit/) ################################ # Optional Features diff --git a/src/config/ConduitConfig.cmake.in b/src/config/ConduitConfig.cmake.in index 11340e9fb..3f687b7d6 100644 --- a/src/config/ConduitConfig.cmake.in +++ b/src/config/ConduitConfig.cmake.in @@ -28,6 +28,7 @@ if(NOT CONDUIT_FOUND) set(CONDUIT_VERSION "@PROJECT_VERSION@") set(CONDUIT_USE_CXX11 "@CONDUIT_USE_CXX11@") + set(CONDUIT_USE_FMT "@CONDUIT_USE_FMT@") set(CONDUIT_INSTALL_PREFIX "@CONDUIT_INSTALL_PREFIX@") set(CONDUIT_PYTHON_MODULE_DIR "@CONDUIT_INSTALL_PYTHON_MODULE_DIR@") set(CONDUIT_HDF5_DIR "@HDF5_DIR@") diff --git a/src/config/conduit_config.mk.in b/src/config/conduit_config.mk.in index 5b37ba5ec..9199aa99c 100644 --- a/src/config/conduit_config.mk.in +++ b/src/config/conduit_config.mk.in @@ -22,6 +22,7 @@ CONDUIT_DIR = @CONDUIT_INSTALL_PREFIX@ CONDUIT_EXTRA_LIB_FLAGS = @CONDUIT_MAKE_EXTRA_LIBS@ CONDUIT_USE_CXX11 = @CONDUIT_USE_CXX11@ +CONDUIT_USE_FMT = @CONDUIT_USE_FMT@ CONDUIT_SILO_DIR = @SILO_DIR@ CONDUIT_ADIOS_DIR = @ADIOS_DIR@ diff --git a/src/config/conduit_setup_targets.cmake b/src/config/conduit_setup_targets.cmake index ac994dc02..b3017ed76 100644 --- a/src/config/conduit_setup_targets.cmake +++ b/src/config/conduit_setup_targets.cmake @@ -83,6 +83,7 @@ if(NOT Conduit_FIND_QUIETLY) message(STATUS "CONDUIT_VERSION = ${CONDUIT_VERSION}") message(STATUS "CONDUIT_INSTALL_PREFIX = ${CONDUIT_INSTALL_PREFIX}") message(STATUS "CONDUIT_USE_CXX11 = ${CONDUIT_USE_CXX11}") + message(STATUS "CONDUIT_USE_FMT = ${CONDUIT_USE_FMT}") message(STATUS "CONDUIT_INCLUDE_DIRS = ${CONDUIT_INCLUDE_DIRS}") message(STATUS "CONDUIT_FORTRAN_ENABLED = ${CONDUIT_FORTRAN_ENABLED}") message(STATUS "CONDUIT_PYTHON_ENABLED = ${CONDUIT_PYTHON_ENABLED}") diff --git a/src/libs/conduit/conduit_config.h.in b/src/libs/conduit/conduit_config.h.in index 4b6f84be2..5588d2432 100644 --- a/src/libs/conduit/conduit_config.h.in +++ b/src/libs/conduit/conduit_config.h.in @@ -39,6 +39,8 @@ #cmakedefine CONDUIT_FORTRAN_COMPILER "${CONDUIT_FORTRAN_COMPILER}" +#cmakedefine CONDUIT_USE_FMT + #cmakedefine CONDUIT_USE_CXX11 //----------------------------------------------------------------------------- From fd4bd2167f5573f96b651bac620e074e8328c58a Mon Sep 17 00:00:00 2001 From: Cyrus Harrison Date: Tue, 17 Nov 2020 10:08:27 -0800 Subject: [PATCH 2/2] update changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 160b5206d..6840579fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ and this project aspires to adhere to [Semantic Versioning](https://semver.org/s ### Added #### General -- Added a builtin sandboxed version of fmt. The namespace and directory paths were changed to `conduit_fmt` to avoid potential symbol collisions with other codes using fmt. +- Added a builtin sandboxed header-only version of fmt. The namespace and directory paths were changed to `conduit_fmt` to avoid potential symbol collisions with other codes using fmt. Downstream software can use by including `conduit_fmt/conduit_fmt.h`. - Added support for using C++11 initializer lists to set Node and DataArray values from numeric arrays. See C++ tutorial docs (https://llnl-conduit.readthedocs.io/en/latest/tutorial_cpp_numeric.html#c-11-initializer-lists) for more details.