diff --git a/build-check/meson.build b/build-check/meson.build index 9ace8c4e..20918f05 100644 --- a/build-check/meson.build +++ b/build-check/meson.build @@ -5,8 +5,10 @@ cc = meson.get_compiler('c') ignore_unused_args = '-Wno-unused-command-line-argument' -add_global_arguments(ignore_unused_args, language: 'cpp') -add_global_arguments(ignore_unused_args, language: 'c') +if !meson.is_subproject() + add_global_arguments(ignore_unused_args, language: 'cpp') + add_global_arguments(ignore_unused_args, language: 'c') +endif subdir('CPPC') diff --git a/src/include/gridfire/utils/config.h.in b/src/include/gridfire/utils/config.h.in new file mode 100644 index 00000000..838b80ae --- /dev/null +++ b/src/include/gridfire/utils/config.h.in @@ -0,0 +1,26 @@ +#pragma once + +#include + +namespace gridfire { + struct version { + static constexpr int major = #STRINGIFY(GF_VERSION_MAJOR); + static constexpr int minor = #STRINGIFY(GF_VERSION_MINOR); + static constexpr int patch = #STRINGIFY(GF_VERSION_PATCH); + + static constexpr const char* tag = #STRINGIFY(GF_VERSION_TAG); + }; +} + +template <> +struct std::formatter : std::formatter { + auto format(const gridfire::version& v, auto& ctx) { + std::string versionStr = std::to_string(v.major) + "." + + std::to_string(v.minor) + "." + + std::to_string(v.patch); + if (std::string(v.tag) != "") { + versionStr += "-" + std::string(v.tag); + } + return std::formatter::format(versionStr, ctx); + } +}; \ No newline at end of file diff --git a/src/include/gridfire/utils/meson.build b/src/include/gridfire/utils/meson.build new file mode 100644 index 00000000..e69de29b