Roll src/third_party/WebKit 60624dd:2936779 (svn 202421:202423)
[chromium-blink-merge.git] / ipc / ipc_export.h
blob9f8411c3cee11fc37a0c3f04a26749cfe5e10fae
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef IPC_IPC_EXPORT_H_
6 #define IPC_IPC_EXPORT_H_
8 // Defines IPC_EXPORT so that functionality implemented by the IPC module can be
9 // exported to consumers.
11 #if defined(COMPONENT_BUILD)
12 #if defined(WIN32)
14 #if defined(IPC_IMPLEMENTATION)
15 #define IPC_EXPORT __declspec(dllexport)
16 #else
17 #define IPC_EXPORT __declspec(dllimport)
18 #endif // defined(IPC_IMPLEMENTATION)
20 #if defined(IPC_MOJO_IMPLEMENTATION)
21 #define IPC_MOJO_EXPORT __declspec(dllexport)
22 #else
23 #define IPC_MOJO_EXPORT __declspec(dllimport)
24 #endif // defined(IPC_MOJO_IMPLEMENTATION)
26 #else // defined(WIN32)
28 #if defined(IPC_IMPLEMENTATION)
29 #define IPC_EXPORT __attribute__((visibility("default")))
30 #else
31 #define IPC_EXPORT
32 #endif
34 #if defined(IPC_MOJO_IMPLEMENTATION)
35 #define IPC_MOJO_EXPORT __attribute__((visibility("default")))
36 #else
37 #define IPC_MOJO_EXPORT
38 #endif
40 #endif
42 #else // defined(COMPONENT_BUILD)
43 #define IPC_EXPORT
44 #define IPC_MOJO_EXPORT
45 #endif
47 #endif // IPC_IPC_EXPORT_H_