:: commit 6388152a2b98c0e5e4f2b25bf1525eaf5b3d475c

Kamila Szewczyk <27734421+kspalaiologos@users.noreply.github.com> — 2022-10-04 09:46

parents: 0b4bc63c5a

visibility control macros

diff --git a/include/libbz3.h b/include/libbz3.h
index c0e272c..ec8f456 100644
--- a/include/libbz3.h
+++ b/include/libbz3.h
@@ -22,8 +22,21 @@
 
 #include <stdint.h>
 
-#ifndef BZIP3_API
-    #define BZIP3_API
+/* Symbol visibility control. */
+#ifndef BZIP3_VISIBLE
+    #if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__)
+        #define BZIP3_VISIBLE __attribute__ ((visibility ("default")))
+    #else
+        #define BZIP3_VISIBLE
+    #endif
+#endif
+
+#if defined(BZIP3_DLL_EXPORT) && (BZIP3_DLL_EXPORT==1)
+    #define BZIP3_API __declspec(dllexport) BZIP3_VISIBLE
+#elif defined(BZIP3_DLL_IMPORT) && (BZIP3_DLL_IMPORT==1)
+    #define BZIP3_API __declspec(dllimport) BZIP3_VISIBLE
+#else
+    #define BZIP3_API BZIP3_VISIBLE
 #endif
 
 #define BZ3_OK 0
tab: 248 wrap: offon