From baa02a0701dc1bc2df9cf501d6f6c44c19649b33 Mon Sep 17 00:00:00 2001 From: Michael Saunders Date: Fri, 20 Feb 2026 08:17:59 -0800 Subject: [PATCH] Add missing export to vsg::Exception struct If VulkanSceneGraph is compiled as a .dylib and used by another .dylib on the Mac where VulkanSceneGraph throws a vsg::Exception the client requesting the service from VulkanSceneGraph is not able to catch the vsg::Exception because the RTTI information is different. This is a known issue with clang. If the symbol is not exported for a shared library the RTTI information will not match that generated by dependent libraries for the same symbol. --- include/vsg/core/Exception.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/vsg/core/Exception.h b/include/vsg/core/Exception.h index 6e40a17cb4..dea3619d3e 100644 --- a/include/vsg/core/Exception.h +++ b/include/vsg/core/Exception.h @@ -12,6 +12,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI */ +#include + #include namespace vsg @@ -19,7 +21,7 @@ namespace vsg /// Exception object that can be thrown from VSG code, such as failed Vulkan calls where the result value will be the VkResult value /// returned from failed Vulkan call. - struct Exception + struct VSG_DECLSPEC Exception { std::string message; int result = 0;