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)
14 #if defined(IPC_IMPLEMENTATION)
15 #define IPC_EXPORT __declspec(dllexport)
17 #define IPC_EXPORT __declspec(dllimport)
18 #endif // defined(IPC_IMPLEMENTATION)
20 #if defined(IPC_MOJO_IMPLEMENTATION)
21 #define IPC_MOJO_EXPORT __declspec(dllexport)
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")))
34 #if defined(IPC_MOJO_IMPLEMENTATION)
35 #define IPC_MOJO_EXPORT __attribute__((visibility("default")))
37 #define IPC_MOJO_EXPORT
42 #else // defined(COMPONENT_BUILD)
44 #define IPC_MOJO_EXPORT
47 #endif // IPC_IPC_EXPORT_H_