summaryrefslogtreecommitdiff
path: root/sci-libs/cantera
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-12-11 02:01:11 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-12-11 02:01:11 +0000
commit494ca58c9f5243dd4b56557aa8c41bce76e95ec3 (patch)
treeb699beb74ae3071c865d4f2e95ed7f376f99214a /sci-libs/cantera
parent59437d191de3ff33f9bfa37f8656d849184fcaf0 (diff)
gentoo auto-resync : 11:12:2024 - 02:01:11
Diffstat (limited to 'sci-libs/cantera')
-rw-r--r--sci-libs/cantera/Manifest8
-rw-r--r--sci-libs/cantera/cantera-3.0.1-r1.ebuild (renamed from sci-libs/cantera/cantera-3.0.1.ebuild)2
-rw-r--r--sci-libs/cantera/cantera-3.0.1-r2.ebuild (renamed from sci-libs/cantera/cantera-3.0.0-r1.ebuild)11
-rw-r--r--sci-libs/cantera/files/cantera-3.0.0_enable_python-3.12.patch75
-rw-r--r--sci-libs/cantera/files/cantera-3.0.1_add_fmt11_support.patch46
-rw-r--r--sci-libs/cantera/files/cantera-3.0.1_fix_fmt_with_c++20.patch323
6 files changed, 380 insertions, 85 deletions
diff --git a/sci-libs/cantera/Manifest b/sci-libs/cantera/Manifest
index 62e741b6cb60..6e7b2e8f262f 100644
--- a/sci-libs/cantera/Manifest
+++ b/sci-libs/cantera/Manifest
@@ -1,7 +1,7 @@
-AUX cantera-3.0.0_enable_python-3.12.patch 3182 BLAKE2B 30d2af004ee4d5097bf114fc1f8cd8e5589c9a0d643d87da544a9de0d824df1c04f461f89415dfc6b27c385e520c9b8f53ce82fcc7c4ca5dbb59f03a4a443544 SHA512 65261a618d93f0f84a3ba9a2aad8cccfee8490c78a44acddc4cc7c8ff3065bbde2370b6fcf06e8c1091efa9f244553a3810d362553194699104b19fed8647aea
AUX cantera-3.0.0_env.patch 1439 BLAKE2B 8f4cd901f24f0b526887501ba16a0552acf8572f154f8494d66d3dd8096434621d6f2baaa57f905233919fc1b7872993bada9f373950330663c8315075d507b9 SHA512 065cdbcf620a3036c1bb0bb8b79503f76dbe7e6b2522e9f53fc582c15e5e10f1790f1b40cf0315d64cab4f858764446f4094370124bb9b5c4ee6dbcfd5e61b87
-DIST cantera-3.0.0.tar.gz 2451103 BLAKE2B 094d7a4f0b8fd0f1a45d9f8c13e1390cf7fc62110e424e1287030e97382c1cdc016a5119adc4d5c7bbc222420a3b447db93fee8350643cb3a0907a838fbc1ddf SHA512 dffd696628210ae5c7b08e394e9a97262cfa6aa07ac2e6faa48591ecfee5bb11e7c2b6928563007fd581a1fd9cae999f7c1414ab5d5a312a823e155573df7aca
+AUX cantera-3.0.1_add_fmt11_support.patch 1465 BLAKE2B 42130ee99361fab47f3fd41e3bec8f4994f503daffee1a6ecbb0dfd75cce2429c6020061ec27eda5078ff67e4613d95b635c4bfc1a39fc76a2c8abed096f0251 SHA512 dd929eaf899564f8d06263b45eec1ec33245090c2c5a5128098ab2b9ec35eaa36f5025cce1726ceede0e35a8f9cca3fe279199ac083473d0ee2c72e8e63a864c
+AUX cantera-3.0.1_fix_fmt_with_c++20.patch 13515 BLAKE2B e32655074dc2780ad765d96f297957c54ced57279b6f1b90e968b408b628cb46f688a21720f0738fbaef815ab72e0f04ecc359a5dfe1c236b7569026f8b7ada4 SHA512 7ca318959f86be4436d9923bc7611fb0b0f17ebeaea1c919df2282858ba2a51946cbb7dfcfc3a9ab5098d15fac0a9bc0169b20f9072cbc0177d81898a8037941
DIST cantera-3.0.1.tar.gz 2451841 BLAKE2B b05771021a81d5266dfed382e2a6357e5b70653c6d9cfb5f03a6755095f4f8f4e7c0f78b79e0bf131c01fefce46bbc647c790ee412b6457c515cda39d4fc3054 SHA512 fa993b33867c6c0a0ca539f52116c4cdea739dfcd30deb5d2f66042f290f7f2f60112d7a37c38fbd8a38a119e5af00a7a85fd80b6e36388202b666be0ddd7715
-EBUILD cantera-3.0.0-r1.ebuild 3450 BLAKE2B 60c406b5ed46e5d42373711fe0fe33e8e8afcecf480b76dea6084bd14c9b776994752e3d7ba643558b89da35f537e7863d919395038b6a9b7ec215ea0129a1f4 SHA512 0e3c295bbf671195b607d08f19227a6b6e9e161c25dcd297b09bf6f199f61b20a743b7fd6880680671a8062c7e592aaf4b54152d1012f09e1867edc9be6fcf56
-EBUILD cantera-3.0.1.ebuild 3412 BLAKE2B e6a31765ee38637e24c73f803a071c89898116a022a02a56f586ff9a8112924dc291b9138ed12faaa831bea1dfbecfd4807fbd800b6ebee8fe0668ab759d8555 SHA512 3b28b36c905cfd63af476c63a5e1103946396bcf8404a02e2fc9c529650531bc5992e5f82f8d18c09e7d7ff711da51938620c50deb430809bf3826b9909360d6
+EBUILD cantera-3.0.1-r1.ebuild 3416 BLAKE2B 67c638a33afe183ed672426bb38b8a91128ea8e6910fa39c0df986bfcb0842ac9f2f209f4bfb350f7cd40de6d88314b51d22e980a9fd38003783fefebca8b0a0 SHA512 53cec4ecb207e97faa92e204dea3a180c65b23aec570b5b261c0bc753900954165c4c5cb98ee973629e1332a407d9a3d3b616ddacd34c4aa7f29e498df7671d2
+EBUILD cantera-3.0.1-r2.ebuild 3502 BLAKE2B d05ab5655059653d2f6db34b82dcac637adb29ca57426c96b810ffa2269f4a861a6270a8c29545ea5def545fc8f794e31a10e450b8a93d36a08ff6f4a8c02613 SHA512 daa644d36c411ae0ed67e9de1f5373bb7432d2b3aac10da51051f61fc60be3ce36c96689fc55077b47404cf09b2b47cbc5143607a61405a465807aef27769ab7
MISC metadata.xml 884 BLAKE2B 0f67510f6c09c58b0af3b820c9b38b88b0c60b0adb28c64148550f07df085cd8ea3d46f5afb59105c56bb7ccf2ca3fee4f2000bee2592ebafb835b9cf415b660 SHA512 0cdbc4cbd0dfdc90bb74c79f06d5f5d28a4edd0dcfacbddcc83ed804c592694eba27f337ce20a2a57248dd0456517bab2298faa22b78154f03e9369973fc174b
diff --git a/sci-libs/cantera/cantera-3.0.1.ebuild b/sci-libs/cantera/cantera-3.0.1-r1.ebuild
index 581e7d48888d..e1291d9791a8 100644
--- a/sci-libs/cantera/cantera-3.0.1.ebuild
+++ b/sci-libs/cantera/cantera-3.0.1-r1.ebuild
@@ -45,7 +45,7 @@ DEPEND="
${RDEPEND}
dev-cpp/eigen:3
dev-libs/boost:=
- dev-libs/libfmt
+ <dev-libs/libfmt-11
python? (
$(python_gen_cond_dep '
dev-python/cython[${PYTHON_USEDEP}]
diff --git a/sci-libs/cantera/cantera-3.0.0-r1.ebuild b/sci-libs/cantera/cantera-3.0.1-r2.ebuild
index c6b3ec2711e1..ffa880c04646 100644
--- a/sci-libs/cantera/cantera-3.0.0-r1.ebuild
+++ b/sci-libs/cantera/cantera-3.0.1-r2.ebuild
@@ -3,7 +3,7 @@
EAPI=8
-PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_COMPAT=( python3_{10..13} )
FORTRAN_NEEDED=fortran
FORTRAN_STANDARD="77 90"
@@ -16,7 +16,7 @@ SRC_URI="https://github.com/Cantera/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 ~x86"
+KEYWORDS="~amd64 ~x86"
IUSE="fortran hdf5 lapack +python test"
RESTRICT="!test? ( test )"
@@ -66,8 +66,9 @@ DEPEND="
"
PATCHES=(
- "${FILESDIR}/${P}_env.patch"
- "${FILESDIR}/${P}_enable_python-3.12.patch"
+ "${FILESDIR}/${PN}-3.0.0_env.patch"
+ "${FILESDIR}/${P}_fix_fmt_with_c++20.patch"
+ "${FILESDIR}/${P}_add_fmt11_support.patch"
)
pkg_setup() {
@@ -87,7 +88,7 @@ src_configure() {
CC="$(tc-getCC)"
CXX="$(tc-getCXX)"
cc_flags="${CXXFLAGS}"
- cxx_flags="-std=c++17"
+ cxx_flags="-std=c++20"
debug="no"
FORTRAN="$(tc-getFC)"
FORTRANFLAGS="${FCFLAGS}"
diff --git a/sci-libs/cantera/files/cantera-3.0.0_enable_python-3.12.patch b/sci-libs/cantera/files/cantera-3.0.0_enable_python-3.12.patch
deleted file mode 100644
index 8efa7b0df9c5..000000000000
--- a/sci-libs/cantera/files/cantera-3.0.0_enable_python-3.12.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 27f8362f537fc313f8fdb5c07649ef0d92e3b7f6 Mon Sep 17 00:00:00 2001
-From: "Mark E. Fuller" <mark.e.fuller@gmx.de>
-Date: Sat, 26 Aug 2023 01:04:03 +0300
-Subject: [PATCH] mods to enable python3.12
-
----
- .github/workflows/main.yml | 2 +-
- interfaces/cython/setup.cfg.in | 1 +
- interfaces/python_minimal/setup.cfg.in | 1 +
- interfaces/python_sdist/setup.cfg.in | 1 +
- src/base/application.h | 2 +-
- 5 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
-index 60822189bb..366ddd8435 100644
---- a/.github/workflows/main.yml
-+++ b/.github/workflows/main.yml
-@@ -65,7 +65,7 @@ jobs:
- timeout-minutes: 60
- strategy:
- matrix:
-- python-version: ['3.8', '3.10', '3.11']
-+ python-version: ['3.8', '3.10', '3.11', '3.12']
- os: ['ubuntu-20.04', 'ubuntu-22.04']
- fail-fast: false
- env:
-diff --git a/interfaces/cython/setup.cfg.in b/interfaces/cython/setup.cfg.in
-index 1a0358a77d..fd3c0b53c4 100644
---- a/interfaces/cython/setup.cfg.in
-+++ b/interfaces/cython/setup.cfg.in
-@@ -27,6 +27,7 @@ classifiers =
- Programming Language :: Python :: 3.9
- Programming Language :: Python :: 3.10
- Programming Language :: Python :: 3.11
-+ Programming Language :: Python :: 3.12
- Programming Language :: Python :: Implementation :: CPython
- Topic :: Scientific/Engineering :: Chemistry
- Topic :: Scientific/Engineering :: Physics
-diff --git a/interfaces/python_minimal/setup.cfg.in b/interfaces/python_minimal/setup.cfg.in
-index 2d96c75eda..753b619ede 100644
---- a/interfaces/python_minimal/setup.cfg.in
-+++ b/interfaces/python_minimal/setup.cfg.in
-@@ -23,6 +23,7 @@ classifiers =
- Programming Language :: Python :: 3.9
- Programming Language :: Python :: 3.10
- Programming Language :: Python :: 3.11
-+ Programming Language :: Python :: 3.12
- Topic :: Scientific/Engineering :: Chemistry
- Topic :: Scientific/Engineering :: Physics
- project_urls =
-diff --git a/interfaces/python_sdist/setup.cfg.in b/interfaces/python_sdist/setup.cfg.in
-index 219e53a3f0..e356b422b8 100644
---- a/interfaces/python_sdist/setup.cfg.in
-+++ b/interfaces/python_sdist/setup.cfg.in
-@@ -27,6 +27,7 @@ classifiers =
- Programming Language :: Python :: 3.9
- Programming Language :: Python :: 3.10
- Programming Language :: Python :: 3.11
-+ Programming Language :: Python :: 3.12
- Programming Language :: Python :: Implementation :: CPython
- Topic :: Scientific/Engineering :: Chemistry
- Topic :: Scientific/Engineering :: Physics
-diff --git a/src/base/application.h b/src/base/application.h
-index 76a6c671a2..b03c049f14 100644
---- a/src/base/application.h
-+++ b/src/base/application.h
-@@ -434,7 +434,7 @@ class Application
- vector<string> inputDirs;
-
- //! Versions of Python to consider when attempting to load user extensions
-- vector<string> m_pythonSearchVersions = {"3.11", "3.10", "3.9", "3.8"};
-+ vector<string> m_pythonSearchVersions = {"3.12", "3.11", "3.10", "3.9", "3.8"};
-
- //! Set of deprecation warnings that have been emitted (to suppress duplicates)
- set<string> warnings;
diff --git a/sci-libs/cantera/files/cantera-3.0.1_add_fmt11_support.patch b/sci-libs/cantera/files/cantera-3.0.1_add_fmt11_support.patch
new file mode 100644
index 000000000000..7e0d5333a105
--- /dev/null
+++ b/sci-libs/cantera/files/cantera-3.0.1_add_fmt11_support.patch
@@ -0,0 +1,46 @@
+This is upstream patch with removed changes for "doc/sphinx/develop/compiling/dependencies.md" file
+Upstream issue: https://github.com/Cantera/cantera/issues/1735
+Gentoo issue: https://bugs.gentoo.org/945800
+
+From c8f190928fd7a074944f0f4c58661f84a282a35e Mon Sep 17 00:00:00 2001
+From: Ray Speth <speth@mit.edu>
+Date: Wed, 24 Jul 2024 20:12:18 -0400
+Subject: [PATCH] Add support for fmt 11.0
+
+Resolves #1735
+---
+ SConstruct | 2 +-
+ doc/sphinx/develop/compiling/dependencies.md | 2 +-
+ include/cantera/base/fmt.h | 8 ++++++++
+ 3 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 3863fe3a32..0b607ac891 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -216,7 +216,7 @@ config_options = [
+ options with spaces, for example, "cxx_flags='-g -Wextra -O3 --std=c++14'"
+ """,
+ {
+- "cl": "/EHsc /std:c++17",
++ "cl": "/EHsc /std:c++17 /utf-8",
+ "default": "-std=c++17"
+ }),
+ Option(
+diff --git a/include/cantera/base/fmt.h b/include/cantera/base/fmt.h
+index 1e0b3a0423..6b4d734fe3 100644
+--- a/include/cantera/base/fmt.h
++++ b/include/cantera/base/fmt.h
+@@ -42,4 +42,12 @@ void fmt_append(fmt::memory_buffer& b, const std::string& tmpl, Args... args) {
+ }
+ #endif
+
++#if FMT_VERSION > 100000
++ #if CT_USE_SYSTEM_FMT
++ #include <fmt/ranges.h>
++ #else
++ #include <fmt/join.h>
++ #endif
++#endif
++
+ #endif
diff --git a/sci-libs/cantera/files/cantera-3.0.1_fix_fmt_with_c++20.patch b/sci-libs/cantera/files/cantera-3.0.1_fix_fmt_with_c++20.patch
new file mode 100644
index 000000000000..3b6b3da50a53
--- /dev/null
+++ b/sci-libs/cantera/files/cantera-3.0.1_fix_fmt_with_c++20.patch
@@ -0,0 +1,323 @@
+This is upstream patch.
+Upstream issue: https://github.com/Cantera/cantera/issues/1711
+
+From edc8243577020b7dd6cd0fd85285cc8ca043b5ea Mon Sep 17 00:00:00 2001
+From: Ray Speth <speth@mit.edu>
+Date: Wed, 19 Jun 2024 00:09:02 -0400
+Subject: [PATCH] Fix usage of fmt when compiling in C++20 mode
+
+Resolves #1711
+---
+ include/cantera/base/AnyMap.h | 6 ++--
+ include/cantera/base/ctexceptions.h | 2 +-
+ include/cantera/base/fmt.h | 8 ++---
+ include/cantera/base/global.h | 8 ++---
+ src/base/AnyMap.cpp | 4 +--
+ src/base/SolutionArray.cpp | 51 ++++++++++++++++-------------
+ src/thermo/PureFluidPhase.cpp | 2 +-
+ src/thermo/ThermoPhase.cpp | 2 +-
+ 8 files changed, 46 insertions(+), 37 deletions(-)
+
+diff --git a/include/cantera/base/AnyMap.h b/include/cantera/base/AnyMap.h
+index 81ac0071a7..b1f0747f33 100644
+--- a/include/cantera/base/AnyMap.h
++++ b/include/cantera/base/AnyMap.h
+@@ -746,7 +746,8 @@ class InputFileError : public CanteraError
+ : CanteraError(
+ procedure,
+ formatError(
+- (sizeof...(args) == 0) ? message : fmt::format(message, args...),
++ (sizeof...(args) == 0) ? message
++ : fmt::format(fmt::runtime(message), args...),
+ node.m_line, node.m_column, node.m_metadata))
+ {
+ }
+@@ -761,7 +762,8 @@ class InputFileError : public CanteraError
+ : CanteraError(
+ procedure,
+ formatError2(
+- (sizeof...(args) == 0) ? message : fmt::format(message, args...),
++ (sizeof...(args) == 0) ? message
++ : fmt::format(fmt::runtime(message), args...),
+ node1.m_line, node1.m_column, node1.m_metadata,
+ node2.m_line, node2.m_column, node2.m_metadata))
+ {
+diff --git a/include/cantera/base/ctexceptions.h b/include/cantera/base/ctexceptions.h
+index fb21d3ef22..476e16bf46 100644
+--- a/include/cantera/base/ctexceptions.h
++++ b/include/cantera/base/ctexceptions.h
+@@ -86,7 +86,7 @@ class CanteraError : public std::exception
+ if (sizeof...(args) == 0) {
+ msg_ = msg;
+ } else {
+- msg_ = fmt::format(msg, args...);
++ msg_ = fmt::format(fmt::runtime(msg), args...);
+ }
+ }
+
+diff --git a/include/cantera/base/fmt.h b/include/cantera/base/fmt.h
+index 8341be115e..f613e17b31 100644
+--- a/include/cantera/base/fmt.h
++++ b/include/cantera/base/fmt.h
+@@ -26,13 +26,13 @@
+
+ #if FMT_VERSION < 80000
+ template <typename... Args>
+-void fmt_append(fmt::memory_buffer& b, Args... args) {
+- format_to(b, args...);
++void fmt_append(fmt::memory_buffer& b, const std::string& tmpl, Args... args) {
++ format_to(b, tmpl, args...);
+ }
+ #else
+ template <typename... Args>
+-void fmt_append(fmt::memory_buffer& b, Args... args) {
+- format_to(fmt::appender(b), args...);
++void fmt_append(fmt::memory_buffer& b, const std::string& tmpl, Args... args) {
++ format_to(fmt::appender(b), fmt::runtime(tmpl), args...);
+ }
+ #endif
+
+diff --git a/include/cantera/base/global.h b/include/cantera/base/global.h
+index c0092c43ee..aa0f636754 100644
+--- a/include/cantera/base/global.h
++++ b/include/cantera/base/global.h
+@@ -176,7 +176,7 @@ void writelog(const string& fmt, const Args&... args) {
+ if (sizeof...(args) == 0) {
+ writelog_direct(fmt);
+ } else {
+- writelog_direct(fmt::format(fmt, args...));
++ writelog_direct(fmt::format(fmt::runtime(fmt), args...));
+ }
+ }
+
+@@ -228,7 +228,7 @@ void warn_deprecated(const string& method, const string& msg, const Args&... arg
+ if (sizeof...(args) == 0) {
+ _warn_deprecated(method, msg);
+ } else {
+- _warn_deprecated(method, fmt::format(msg, args...));
++ _warn_deprecated(method, fmt::format(fmt::runtime(msg), args...));
+ }
+ }
+
+@@ -253,7 +253,7 @@ void warn(const string& warning, const string& method,
+ if (sizeof...(args) == 0) {
+ _warn(warning, method, msg);
+ } else {
+- _warn(warning, method, fmt::format(msg, args...));
++ _warn(warning, method, fmt::format(fmt::runtime(msg), args...));
+ }
+ }
+
+@@ -268,7 +268,7 @@ void warn_user(const string& method, const string& msg, const Args&... args) {
+ if (sizeof...(args) == 0) {
+ _warn("Cantera", method, msg);
+ } else {
+- _warn("Cantera", method, fmt::format(msg, args...));
++ _warn("Cantera", method, fmt::format(fmt::runtime(msg), args...));
+ }
+ }
+
+diff --git a/src/base/AnyMap.cpp b/src/base/AnyMap.cpp
+index 84d74c1358..b35aabb8c3 100644
+--- a/src/base/AnyMap.cpp
++++ b/src/base/AnyMap.cpp
+@@ -164,7 +164,7 @@ string formatDouble(double x, long int precision)
+ size_t last;
+ string s0;
+ if (useExp) {
+- s0 = fmt::format(fmt::format("{:.{}e}", x, precision));
++ s0 = fmt::format(fmt::runtime(fmt::format("{:.{}e}", x, precision)));
+ // last digit of significand
+ last = s0.size() - 5;
+ if (s0[last + 1] == 'e') {
+@@ -195,7 +195,7 @@ string formatDouble(double x, long int precision)
+ if (s0[last - 1] == '0') {
+ s1 = s0; // Recycle original string
+ } else if (useExp) {
+- s1 = fmt::format(fmt::format("{:.{}e}", x, precision - 2));
++ s1 = fmt::format(fmt::runtime(fmt::format("{:.{}e}", x, precision - 2)));
+ } else {
+ s1 = fmt::format("{:.{}f}", x, precision - log10x - 2);
+ }
+diff --git a/src/base/SolutionArray.cpp b/src/base/SolutionArray.cpp
+index 4819aaa756..986c3e2373 100644
+--- a/src/base/SolutionArray.cpp
++++ b/src/base/SolutionArray.cpp
+@@ -232,17 +232,19 @@ vector<string> doubleColumn(string name, const vector<double>& comp,
+ if (csize <= rows) {
+ for (const auto& val : comp) {
+ data.push_back(val);
+- raw.push_back(boost::trim_copy(fmt::format(notation, val)));
++ raw.push_back(boost::trim_copy(fmt::format(fmt::runtime(notation), val)));
+ }
+ } else {
+ dots = (rows + 1) / 2;
+ for (int row = 0; row < dots; row++) {
+ data.push_back(comp[row]);
+- raw.push_back(boost::trim_copy(fmt::format(notation, comp[row])));
++ raw.push_back(boost::trim_copy(
++ fmt::format(fmt::runtime(notation), comp[row])));
+ }
+ for (int row = csize - rows / 2; row < csize; row++) {
+ data.push_back(comp[row]);
+- raw.push_back(boost::trim_copy(fmt::format(notation, comp[row])));
++ raw.push_back(boost::trim_copy(
++ fmt::format(fmt::runtime(notation), comp[row])));
+ }
+ }
+
+@@ -292,17 +294,17 @@ vector<string> doubleColumn(string name, const vector<double>& comp,
+ // all entries are integers
+ notation = fmt::format(" {{:>{}.0f}}", over + maxLen);
+ }
+- maxLen = fmt::format(notation, 0.).size();
++ maxLen = fmt::format(fmt::runtime(notation), 0.).size();
+
+ // assemble output
+ string section = fmt::format("{{:>{}}}", maxLen);
+- vector<string> col = {fmt::format(section, name)};
++ vector<string> col = {fmt::format(fmt::runtime(section), name)};
+ int count = 0;
+ for (const auto& val : data) {
+- col.push_back(fmt::format(notation, val));
++ col.push_back(fmt::format(fmt::runtime(notation), val));
+ count++;
+ if (count == dots) {
+- col.push_back(fmt::format(section, "..."));
++ col.push_back(fmt::format(fmt::runtime(section), "..."));
+ }
+ }
+ return col;
+@@ -320,7 +322,8 @@ vector<string> integerColumn(string name, const vector<long int>& comp,
+ if (csize <= rows) {
+ for (const auto& val : comp) {
+ data.push_back(val);
+- string formatted = boost::trim_copy(fmt::format(notation, val));
++ string formatted = boost::trim_copy(
++ fmt::format(fmt::runtime(notation), val));
+ if (formatted[0] == '-') {
+ formatted = formatted.substr(1);
+ }
+@@ -330,7 +333,8 @@ vector<string> integerColumn(string name, const vector<long int>& comp,
+ dots = (rows + 1) / 2;
+ for (int row = 0; row < dots; row++) {
+ data.push_back(comp[row]);
+- string formatted = boost::trim_copy(fmt::format(notation, comp[row]));
++ string formatted = boost::trim_copy(
++ fmt::format(fmt::runtime(notation), comp[row]));
+ if (formatted[0] == '-') {
+ formatted = formatted.substr(1);
+ }
+@@ -338,7 +342,8 @@ vector<string> integerColumn(string name, const vector<long int>& comp,
+ }
+ for (int row = csize - rows / 2; row < csize; row++) {
+ data.push_back(comp[row]);
+- string formatted = boost::trim_copy(fmt::format(notation, comp[row]));
++ string formatted = boost::trim_copy(
++ fmt::format(fmt::runtime(notation), comp[row]));
+ if (formatted[0] == '-') {
+ formatted = formatted.substr(1);
+ }
+@@ -356,13 +361,13 @@ vector<string> integerColumn(string name, const vector<long int>& comp,
+ }
+
+ // assemble output
+- vector<string> col = {fmt::format(notation, name)};
++ vector<string> col = {fmt::format(fmt::runtime(notation), name)};
+ int count = 0;
+ for (const auto& val : data) {
+- col.push_back(fmt::format(notation, val));
++ col.push_back(fmt::format(fmt::runtime(notation), val));
+ count++;
+ if (count == dots) {
+- col.push_back(fmt::format(notation, ".."));
++ col.push_back(fmt::format(fmt::runtime(notation), ".."));
+ }
+ }
+ return col;
+@@ -381,31 +386,33 @@ vector<string> stringColumn(string name, const vector<string>& comp,
+ for (const auto& val : comp) {
+ data.push_back(val);
+ maxLen = std::max(maxLen,
+- boost::trim_copy(fmt::format(notation, val)).size());
++ boost::trim_copy(fmt::format(fmt::runtime(notation), val)).size());
+ }
+ } else {
+ dots = (rows + 1) / 2;
+ for (int row = 0; row < dots; row++) {
+ data.push_back(comp[row]);
+ maxLen = std::max(maxLen,
+- boost::trim_copy(fmt::format(notation, comp[row])).size());
++ boost::trim_copy(
++ fmt::format(fmt::runtime(notation), comp[row])).size());
+ }
+ for (int row = csize - rows / 2; row < csize; row++) {
+ data.push_back(comp[row]);
+ maxLen = std::max(maxLen,
+- boost::trim_copy(fmt::format(notation, comp[row])).size());
++ boost::trim_copy(
++ fmt::format(fmt::runtime(notation), comp[row])).size());
+ }
+ }
+
+ // assemble output
+ notation = fmt::format(" {{:>{}}}", maxLen);
+- vector<string> col = {fmt::format(notation, name)};
++ vector<string> col = {fmt::format(fmt::runtime(notation), name)};
+ int count = 0;
+ for (const auto& val : data) {
+- col.push_back(fmt::format(notation, val));
++ col.push_back(fmt::format(fmt::runtime(notation), val));
+ count++;
+ if (count == dots) {
+- col.push_back(fmt::format(notation, "..."));
++ col.push_back(fmt::format(fmt::runtime(notation), "..."));
+ }
+ }
+ return col;
+@@ -443,8 +450,8 @@ vector<string> formatColumn(string name, const AnyValue& comp, int rows, int wid
+
+ // assemble output
+ string notation = fmt::format(" {{:>{}}}", maxLen);
+- repr = fmt::format(notation, repr);
+- vector<string> col = {fmt::format(notation, name)};
++ repr = fmt::format(fmt::runtime(notation), repr);
++ vector<string> col = {fmt::format(fmt::runtime(notation), name)};
+ if (size <= rows) {
+ for (int row = 0; row < size; row++) {
+ col.push_back(repr);
+@@ -454,7 +461,7 @@ vector<string> formatColumn(string name, const AnyValue& comp, int rows, int wid
+ for (int row = 0; row < dots; row++) {
+ col.push_back(repr);
+ }
+- col.push_back(fmt::format(notation, "..."));
++ col.push_back(fmt::format(fmt::runtime(notation), "..."));
+ for (int row = size - rows / 2; row < size; row++) {
+ col.push_back(repr);
+ }
+diff --git a/src/thermo/PureFluidPhase.cpp b/src/thermo/PureFluidPhase.cpp
+index 65e27c52d7..3e45009422 100644
+--- a/src/thermo/PureFluidPhase.cpp
++++ b/src/thermo/PureFluidPhase.cpp
+@@ -393,7 +393,7 @@ string PureFluidPhase::report(bool show_thermo, double threshold) const
+
+ string one_property = fmt::format("{{:>{}}} {{:<.5g}} {{}}\n", name_width);
+
+- string two_prop_header = "{} {:^15} {:^15}\n";
++ constexpr auto two_prop_header = "{} {:^15} {:^15}\n";
+ string kg_kmol_header = fmt::format(
+ two_prop_header, blank_leader, "1 kg", "1 kmol"
+ );
+diff --git a/src/thermo/ThermoPhase.cpp b/src/thermo/ThermoPhase.cpp
+index 31b2c0ee9f..2b3993be35 100644
+--- a/src/thermo/ThermoPhase.cpp
++++ b/src/thermo/ThermoPhase.cpp
+@@ -1291,7 +1291,7 @@ string ThermoPhase::report(bool show_thermo, double threshold) const
+
+ string one_property = fmt::format("{{:>{}}} {{:<.5g}} {{}}\n", name_width);
+
+- string two_prop_header = "{} {:^15} {:^15}\n";
++ constexpr auto two_prop_header = "{} {:^15} {:^15}\n";
+ string kg_kmol_header = fmt::format(
+ two_prop_header, blank_leader, "1 kg", "1 kmol"
+ );