From 56506bc111ec6aa8dd3aed9dced23ef6a56b6c49 Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Tue, 28 Apr 2026 22:12:22 -0400 Subject: [PATCH] Define _LIBCPP_DISABLE_AVAILABILITY for MacOSX (#695) Add compatibility macro for older MacOSX deployment targets --- include/chaiscript/chaiscript_defines.hpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/chaiscript/chaiscript_defines.hpp b/include/chaiscript/chaiscript_defines.hpp index 5dc9ff7a..530fb419 100644 --- a/include/chaiscript/chaiscript_defines.hpp +++ b/include/chaiscript/chaiscript_defines.hpp @@ -7,6 +7,16 @@ #ifndef CHAISCRIPT_DEFINES_HPP_ #define CHAISCRIPT_DEFINES_HPP_ +// MacOSX Fix: std::get/std::get_if/std::visit for std::variant are annotated +// __attribute__((availability(macos,strict,introduced=10.14))) in Apple libc++. +// Defining this macro before any libc++ header strips those annotations so +// ChaiScript can be built against older MacOSX deployment targets. +#if defined(__APPLE__) && defined(__clang__) +#ifndef _LIBCPP_DISABLE_AVAILABILITY +#define _LIBCPP_DISABLE_AVAILABILITY +#endif +#endif + #ifdef _MSC_VER #define CHAISCRIPT_STRINGIZE(x) "" #x #define CHAISCRIPT_STRINGIZE_EXPANDED(x) CHAISCRIPT_STRINGIZE(x)