Unreviewed, rolling out r234489.
[WebKit-https.git] / Source / WTF / wtf / ExportMacros.h
index 5a4af5f..eb2a725 100644 (file)
@@ -27,8 +27,9 @@
  * properly on all platforms and compilers that WebKit builds under.
  */
 
-#ifndef ExportMacros_h
-#define ExportMacros_h
+#pragma once
+
+#include <wtf/Platform.h>
 
 // Different platforms have different defaults for symbol visibility. Usually
 // the compiler and the linker just take care of it. However for references to
 // being local to the target being generated, and thus not subject to (e.g.) ELF
 // symbol interposition rules.
 
-#if OS(WINDOWS)
+#if USE(DECLSPEC_ATTRIBUTE)
 #define HAVE_INTERNAL_VISIBILITY 1
 #define WTF_INTERNAL
-#elif defined(__GNUC__) && !defined(__CC_ARM) && !defined(__ARMCC__)
+#elif USE(VISIBILITY_ATTRIBUTE)
 #define HAVE_INTERNAL_VISIBILITY 1
 #define WTF_INTERNAL __attribute__((visibility("hidden")))
 #else
 #define WTF_INTERNAL
 #endif
 
-#if OS(WINDOWS)
+#if USE(DECLSPEC_ATTRIBUTE)
 
 #define WTF_EXPORT_DECLARATION __declspec(dllexport)
 #define WTF_IMPORT_DECLARATION __declspec(dllimport)
 #define WTF_HIDDEN_DECLARATION
 
-#elif defined(__GNUC__) && !defined(__CC_ARM) && !defined(__ARMCC__)
+#elif USE(VISIBILITY_ATTRIBUTE)
 
 #define WTF_EXPORT_DECLARATION __attribute__((visibility("default")))
 #define WTF_IMPORT_DECLARATION WTF_EXPORT_DECLARATION
 
 #endif
 
-#if defined(BUILDING_WTF) || defined(STATICALLY_LINKED_WITH_WTF)
-#define WTF_IS_LINKED_IN_SAME_BINARY 1
-#endif
-
-// See note in wtf/Platform.h for more info on EXPORT_MACROS.
 #if USE(EXPORT_MACROS)
 
 #define WTF_EXPORT WTF_EXPORT_DECLARATION
 #define WTF_IMPORT WTF_IMPORT_DECLARATION
 #define WTF_HIDDEN WTF_IMPORT_DECLARATION
 
-// FIXME: When all ports are using the export macros, we should replace
-// WTF_EXPORTDATA with WTF_EXPORT_PRIVATE macros.
-#if defined(WTF_IS_LINKED_IN_SAME_BINARY)
-#define WTF_EXPORTDATA WTF_EXPORT
-#else
-#define WTF_EXPORTDATA WTF_IMPORT
-#endif
-
-#else // !USE(EXPORT_MACROS)
-
-#if OS(WINDOWS) && !COMPILER(GCC)
 #if defined(BUILDING_WTF) || defined(STATICALLY_LINKED_WITH_WTF)
-#define WTF_EXPORTDATA __declspec(dllexport)
+#define WTF_EXPORT_PRIVATE WTF_EXPORT
 #else
-#define WTF_EXPORTDATA __declspec(dllimport)
-#endif
-#else // !OS(WINDOWS) || COMPILER(GCC)
-#define WTF_EXPORTDATA
+#define WTF_EXPORT_PRIVATE WTF_IMPORT
 #endif
 
-#define WTF_EXPORTCLASS WTF_EXPORTDATA
+#else // !USE(EXPORT_MACROS)
 
 #define WTF_EXPORT
 #define WTF_IMPORT
 #define WTF_HIDDEN
+#define WTF_EXPORT_PRIVATE
 
 #endif // USE(EXPORT_MACROS)
-
-// WTF_TESTING (and WEBCORE_TESTING in PlatformExportMacros.h) is used for
-// exporting symbols which are referred from WebCoreTestSupport library.
-// Since the set of APIs is common between ports,
-// it is rather worth annotating inside the code than maintaining port specific export lists.
-#if USE(EXPORT_MACROS_FOR_TESTING)
-
-#if defined(WTF_IS_LINKED_IN_SAME_BINARY)
-#define WTF_TESTING WTF_EXPORT_DECLARATION
-#else
-#define WTF_TESTING WTF_IMPORT_DECLARATION
-#endif
-
-#else // USE(EXPORT_MACROS_FOR_TESTING)
-
-#define WTF_TESTING
-
-#endif // USE(EXPORT_MACROS_FOR_TESTING)
-
-#if defined(WTF_IS_LINKED_IN_SAME_BINARY)
-#define WTF_EXPORT_PRIVATE WTF_EXPORT
-#else
-#define WTF_EXPORT_PRIVATE WTF_IMPORT
-#endif
-
-#define WTF_EXPORT_STRING_API WTF_EXPORT_PRIVATE
-
-#define WTF_EXPORT_HIDDEN WTF_HIDDEN
-
-#define HIDDEN_INLINE WTF_EXPORT_HIDDEN inline
-
-#endif // ExportMacros_h