diff --git a/build-check/meson.build b/build-check/meson.build index 1e7611f1..60665110 100644 --- a/build-check/meson.build +++ b/build-check/meson.build @@ -15,6 +15,16 @@ if not cpp.links(''' error('SERiF requires C++23 std::println support. On macOS, use -Dmacos_deployment_target=15.0 or newer with a recent Xcode toolchain.') endif +if not cpp.compiles(''' + #include + int main() { + static_assert(__cpp_static_assert >= 202306L); + static_assert(false, std::format("C++26 static asserts {}", "supported")); + return 0; + } +''', name: 'C++26 user defined static assert strings') + message('Note: SERiF uses some C++26 features specifically 202306L (user defined strings for static asserts), these may not be supported by your compiler and standard library. SERiF will fallback to simpler compile time error messages, but this may make debugging more difficult.') + endif cmake_program = find_program('cmake', required: true) # With meson-python, the generated native file pins this to the interpreter # building the wheel. For command-line builds, PATH controls the selection.