diff options
Diffstat (limited to 'vcpkg/ports/coolprop/fmt-fix.patch')
| -rw-r--r-- | vcpkg/ports/coolprop/fmt-fix.patch | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/vcpkg/ports/coolprop/fmt-fix.patch b/vcpkg/ports/coolprop/fmt-fix.patch new file mode 100644 index 0000000..8054377 --- /dev/null +++ b/vcpkg/ports/coolprop/fmt-fix.patch @@ -0,0 +1,156 @@ +diff --git a/include/CPstrings.h b/include/CPstrings.h +index 711981cd..fda2f055 100644 +--- a/include/CPstrings.h ++++ b/include/CPstrings.h +@@ -6,6 +6,8 @@ + #include <algorithm> + #include <functional> + #include <cctype> ++#include <vector> ++#include <string> + + #if !defined(NO_FMTLIB) + # ifndef FMT_HEADER_ONLY +@@ -74,17 +76,16 @@ inline bool endswith(const std::string& s1, const std::string& s2) { + #if defined(NO_FMTLIB) + // Missing string formatting function, this old guy is needed for ancient gcc compilers on PowerPC for VxWorks + inline std::string format(const char* fmt, ...); ++#elif FMT_VERSION >= 50000 ++template <typename... Args> ++inline std::string format(const char* format_str, const Args&... args) { ++ return fmt::sprintf(format_str, args...); ++} + #else +-// Missing std::string formatting function - provided by the fmtlib library + inline std::string format(const char* format, fmt::ArgList args) { + return fmt::sprintf(format, args); + } + FMT_VARIADIC(std::string, format, const char*) +-// For latest FMTLIB +-/*template <typename... Args> +- inline std::string format(const char *format_str, const Args & ... args) { +- return fmt::sprintf(format_str, args); +- }*/ + #endif + + // Missing string split - like in Python +diff --git a/include/CoolPropFluid.h b/include/CoolPropFluid.h +index 80fb9ff3..093bd294 100644 +--- a/include/CoolPropFluid.h ++++ b/include/CoolPropFluid.h +@@ -562,5 +562,19 @@ class CoolPropFluid + }; + }; + ++#if !defined(NO_FMTLIB) && FMT_VERSION >= 90000 ++static int format_as(ViscosityDiluteVariables::ViscosityDiluteType type) { ++ return fmt::underlying(type); ++} ++ ++static int format_as(TransportPropertyData::ViscosityHardcodedEnum viscosity) { ++ return fmt::underlying(viscosity); ++} ++ ++static int format_as(TransportPropertyData::ConductivityHardcodedEnum conductivity) { ++ return fmt::underlying(conductivity); ++} ++#endif ++ + } /* namespace CoolProp */ + #endif /* COOLPROPFLUID_H_ */ +diff --git a/include/DataStructures.h b/include/DataStructures.h +index 0aebc0b4..5265ac82 100644 +--- a/include/DataStructures.h ++++ b/include/DataStructures.h +@@ -473,5 +473,40 @@ void extract_backend_families(std::string backend_string, backend_families& f1, + void extract_backend_families_string(std::string backend_string, backend_families& f1, std::string& f2); + std::string get_backend_string(backends backend); + ++#if !defined(NO_FMTLIB) && FMT_VERSION >= 90000 ++/// Allows enums to be formatted ++static int format_as(parameters parameter) { ++ return fmt::underlying(parameter); ++} ++ ++static int format_as(phases phase) { ++ return fmt::underlying(phase); ++} ++ ++static int format_as(schemes scheme) { ++ return fmt::underlying(scheme); ++} ++ ++static int format_as(composition_types type) { ++ return fmt::underlying(type); ++} ++ ++static int format_as(fluid_types type) { ++ return fmt::underlying(type); ++} ++ ++static int format_as(input_pairs pair) { ++ return fmt::underlying(pair); ++} ++ ++static int format_as(backend_families family) { ++ return fmt::underlying(family); ++} ++ ++static int format_as(backends backend) { ++ return fmt::underlying(backend); ++} ++#endif ++ + } /* namespace CoolProp */ + #endif /* DATASTRUCTURES_H_ */ +diff --git a/include/IncompressibleFluid.h b/include/IncompressibleFluid.h +index 1ea41775..b641d2e0 100644 +--- a/include/IncompressibleFluid.h ++++ b/include/IncompressibleFluid.h +@@ -44,6 +44,12 @@ struct IncompressibleData + }; + }; + ++#if !defined(NO_FMTLIB) && FMT_VERSION >= 90000 ++static int format_as(IncompressibleData::IncompressibleTypeEnum type) { ++ return fmt::underlying(type); ++} ++#endif ++ + /// A property provider for incompressible solutions and pure fluids + /** + This fluid instance is populated using an entry from a JSON file +diff --git a/src/Backends/Helmholtz/VLERoutines.h b/src/Backends/Helmholtz/VLERoutines.h +index e13c0295..c63d0cbc 100644 +--- a/src/Backends/Helmholtz/VLERoutines.h ++++ b/src/Backends/Helmholtz/VLERoutines.h +@@ -97,6 +97,12 @@ struct saturation_PHSU_pure_options + } + }; + ++#if !defined(NO_FMTLIB) && FMT_VERSION >= 90000 ++static int format_as(saturation_PHSU_pure_options::specified_variable_options option) { ++ return fmt::underlying(option); ++} ++#endif ++ + void saturation_PHSU_pure(HelmholtzEOSMixtureBackend& HEOS, CoolPropDbl specified_value, saturation_PHSU_pure_options& options); + + /* \brief This is a backup saturation_p solver for the case where the Newton solver cannot approach closely enough the solution +diff --git a/src/HumidAirProp.cpp b/src/HumidAirProp.cpp +index 640bd843..eb586a63 100644 +--- a/src/HumidAirProp.cpp ++++ b/src/HumidAirProp.cpp +@@ -76,6 +76,12 @@ enum givens + GIVEN_ISENTROPIC_EXPONENT + }; + ++#if !defined(NO_FMTLIB) && FMT_VERSION >= 90000 ++int format_as(givens given) { ++ return fmt::underlying(given); ++} ++#endif ++ + void _HAPropsSI_inputs(double p, const std::vector<givens>& input_keys, const std::vector<double>& input_vals, double& T, double& psi_w); + double _HAPropsSI_outputs(givens OuputType, double p, double T, double psi_w); + double MoleFractionWater(double, double, int, double); |