build(meson): added check to ensure that C++ static asserts are supported, if not supported then SERiF will auto fall back to old style, unformatted static asserts

This commit is contained in:
2026-11-09 13:50:45 -05:00
parent 829e53d56e
commit b6e25d28c0

View File

@@ -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 <format>
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.