summaryrefslogtreecommitdiff
path: root/deps/node/deps/v8/include/v8config.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/deps/v8/include/v8config.h')
-rw-r--r--deps/node/deps/v8/include/v8config.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/deps/node/deps/v8/include/v8config.h b/deps/node/deps/v8/include/v8config.h
index 75fd5aa7..9f4a9ef6 100644
--- a/deps/node/deps/v8/include/v8config.h
+++ b/deps/node/deps/v8/include/v8config.h
@@ -420,6 +420,40 @@ namespace v8 { template <typename T> class AlignOfHelper { char c; T t; }; }
#define V8_WARN_UNUSED_RESULT /* NOT SUPPORTED */
#endif
+
+// We reserve the V8_* prefix for macros defined in V8 public API and
+// assume there are no name conflicts with the embedder's code.
+
+#ifdef V8_OS_WIN
+
+// Setup for Windows DLL export/import. When building the V8 DLL the
+// BUILDING_V8_SHARED needs to be defined. When building a program which uses
+// the V8 DLL USING_V8_SHARED needs to be defined. When either building the V8
+// static library or building a program which uses the V8 static library neither
+// BUILDING_V8_SHARED nor USING_V8_SHARED should be defined.
+#ifdef BUILDING_V8_SHARED
+# define V8_EXPORT __declspec(dllexport)
+#elif USING_V8_SHARED
+# define V8_EXPORT __declspec(dllimport)
+#else
+# define V8_EXPORT
+#endif // BUILDING_V8_SHARED
+
+#else // V8_OS_WIN
+
+// Setup for Linux shared library export.
+#if V8_HAS_ATTRIBUTE_VISIBILITY
+# ifdef BUILDING_V8_SHARED
+# define V8_EXPORT __attribute__ ((visibility("default")))
+# else
+# define V8_EXPORT
+# endif
+#else
+# define V8_EXPORT
+#endif
+
+#endif // V8_OS_WIN
+
// clang-format on
#endif // V8CONFIG_H_