From e9a9fc765385685bdce022c9f21f09847a0ec3cd Mon Sep 17 00:00:00 2001 From: Emily Boudreaux Date: Mon, 9 Nov 2026 13:45:57 -0500 Subject: [PATCH] feat(serif): utility headers (e.g. config, version, etc...) --- src/include/serif/config.hpp.in | 10 ++++++++++ src/include/serif/meson.build | 15 +++++++++++++++ src/include/serif/runtime.hpp | 7 +++++++ src/include/serif/types.hpp | 11 +++++++++++ 4 files changed, 43 insertions(+) create mode 100644 src/include/serif/config.hpp.in create mode 100644 src/include/serif/meson.build create mode 100644 src/include/serif/runtime.hpp create mode 100644 src/include/serif/types.hpp diff --git a/src/include/serif/config.hpp.in b/src/include/serif/config.hpp.in new file mode 100644 index 00000000..5691df28 --- /dev/null +++ b/src/include/serif/config.hpp.in @@ -0,0 +1,10 @@ +#pragma once + + +#define SERIF_VERSION @SERIF_VERSION@ +#define SERIF_VERSION_MAJOR @SERIF_VERSION_MAJOR@ +#define SERIF_BUILD_COMPILER @SERIF_BUILD_COMPILER@ +#define SERIF_BUILD_SYSTEM @SERIF_BUILD_SYSTEM@ +#define SERIF_BUILD_ARCHITECTURE @SERIF_BUILD_ARCHITECTURE@ +#define SERIF_BUILD_TYPE @SERIF_BUILD_TYPE@ +#define SERIF_MFEM_BUILD_VERSION @SERIF_MFEM_BUILD_VERSION@ diff --git a/src/include/serif/meson.build b/src/include/serif/meson.build new file mode 100644 index 00000000..e8399b88 --- /dev/null +++ b/src/include/serif/meson.build @@ -0,0 +1,15 @@ +serif_configuration = configuration_data() +serif_configuration.set_quoted('SERIF_VERSION', meson.project_version()) +serif_configuration.set('SERIF_VERSION_MAJOR', meson.project_version().split('.')[0]) +serif_configuration.set_quoted('SERIF_BUILD_COMPILER', cpp.get_id() + ' ' + cpp.version()) +serif_configuration.set_quoted('SERIF_BUILD_SYSTEM', host_machine.system()) +serif_configuration.set_quoted('SERIF_BUILD_ARCHITECTURE', host_machine.cpu_family()) +serif_configuration.set_quoted('SERIF_BUILD_TYPE', get_option('buildtype')) +serif_configuration.set_quoted('SERIF_MFEM_BUILD_VERSION', mfem_dep.version()) + +configure_file( + input: 'config.hpp.in', + output: 'config.hpp', + configuration: serif_configuration, + install_dir: get_option('includedir') / 'serif', +) diff --git a/src/include/serif/runtime.hpp b/src/include/serif/runtime.hpp new file mode 100644 index 00000000..51207892 --- /dev/null +++ b/src/include/serif/runtime.hpp @@ -0,0 +1,7 @@ +#pragma once + +#include "serif/backend/mfem/runtime.hpp" + +namespace serif { + using backend::mfem::initialize; +} diff --git a/src/include/serif/types.hpp b/src/include/serif/types.hpp new file mode 100644 index 00000000..a2d9717b --- /dev/null +++ b/src/include/serif/types.hpp @@ -0,0 +1,11 @@ +#pragma once + +#include "serif/backend/mfem/types.hpp" + +namespace serif { + // MFEM is the supported backend. Select native types here; aliases introduce no storage or conversions. + using Vector = backend::mfem::Vector; + using DenseMatrix = backend::mfem::DenseMatrix; + using SparseMatrix = backend::mfem::SparseMatrix; + using LinearOperator = backend::mfem::LinearOperator; +}