From d7d5ab8f8a0cec6ee8318f3216377059b4824e2a Mon Sep 17 00:00:00 2001 From: Arcady Goldmints-Orlov Date: Mon, 9 Sep 2024 13:31:47 -0700 Subject: [PATCH] Add symbol visibility annotations to glslang-resource-limits library Among other things, this allows using it as a DLL on Windows. --- glslang/CMakeLists.txt | 1 + glslang/Public/ResourceLimits.h | 9 +++++---- glslang/Public/resource_limits_c.h | 9 +++++---- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt index 385d46971..6985706d8 100644 --- a/glslang/CMakeLists.txt +++ b/glslang/CMakeLists.txt @@ -227,6 +227,7 @@ set_target_properties(glslang-default-resource-limits PROPERTIES target_include_directories(glslang-default-resource-limits PUBLIC $ $) +glslang_only_export_explicit_symbols(glslang-default-resource-limits) ################################################################################ # source_groups diff --git a/glslang/Public/ResourceLimits.h b/glslang/Public/ResourceLimits.h index f70be8172..8245e12d7 100644 --- a/glslang/Public/ResourceLimits.h +++ b/glslang/Public/ResourceLimits.h @@ -38,20 +38,21 @@ #include #include "../Include/ResourceLimits.h" +#include "../Include/visibility.h" // Return pointer to user-writable Resource to pass through API in // future-proof way. -extern TBuiltInResource* GetResources(); +GLSLANG_EXPORT extern TBuiltInResource* GetResources(); // These are the default resources for TBuiltInResources, used for both // - parsing this string for the case where the user didn't supply one, // - dumping out a template for user construction of a config file. -extern const TBuiltInResource* GetDefaultResources(); +GLSLANG_EXPORT extern const TBuiltInResource* GetDefaultResources(); // Returns the DefaultTBuiltInResource as a human-readable string. -std::string GetDefaultTBuiltInResourceString(); +GLSLANG_EXPORT std::string GetDefaultTBuiltInResourceString(); // Decodes the resource limits from |config| to |resources|. -void DecodeResourceLimits(TBuiltInResource* resources, char* config); +GLSLANG_EXPORT void DecodeResourceLimits(TBuiltInResource* resources, char* config); #endif // _STAND_ALONE_RESOURCE_LIMITS_INCLUDED_ diff --git a/glslang/Public/resource_limits_c.h b/glslang/Public/resource_limits_c.h index 05aa8eb02..3cf7442f4 100644 --- a/glslang/Public/resource_limits_c.h +++ b/glslang/Public/resource_limits_c.h @@ -30,25 +30,26 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define _STAND_ALONE_RESOURCE_LIMITS_C_INCLUDED_ #include "../Include/glslang_c_interface.h" +#include "../Include/visibility.h" #ifdef __cplusplus extern "C" { #endif // Returns a struct that can be use to create custom resource values. -glslang_resource_t* glslang_resource(void); +GLSLANG_EXPORT glslang_resource_t* glslang_resource(void); // These are the default resources for TBuiltInResources, used for both // - parsing this string for the case where the user didn't supply one, // - dumping out a template for user construction of a config file. -const glslang_resource_t* glslang_default_resource(void); +GLSLANG_EXPORT const glslang_resource_t* glslang_default_resource(void); // Returns the DefaultTBuiltInResource as a human-readable string. // NOTE: User is responsible for freeing this string. -const char* glslang_default_resource_string(); +GLSLANG_EXPORT const char* glslang_default_resource_string(); // Decodes the resource limits from |config| to |resources|. -void glslang_decode_resource_limits(glslang_resource_t* resources, char* config); +GLSLANG_EXPORT void glslang_decode_resource_limits(glslang_resource_t* resources, char* config); #ifdef __cplusplus }