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. 4 5 #ifndef IPC_IPC_EXPORT_H_ 6 #define IPC_IPC_EXPORT_H_ 7 8 // Defines IPC_EXPORT so that functionality implemented by the IPC module can be 9 // exported to consumers. 10 11 #if defined(COMPONENT_BUILD) 12 #if defined(WIN32) 13 14 #if defined(IPC_IMPLEMENTATION) 15 #define IPC_EXPORT __declspec(dllexport) 16 #else 17 #define IPC_EXPORT __declspec(dllimport) 18 #endif // defined(IPC_IMPLEMENTATION) 19 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) 25 26 #else // defined(WIN32) 27 28 #if defined(IPC_IMPLEMENTATION) 29 #define IPC_EXPORT __attribute__((visibility("default"))) 30 #else 31 #define IPC_EXPORT 32 #endif 33 34 #if defined(IPC_MOJO_IMPLEMENTATION) 35 #define IPC_MOJO_EXPORT __attribute__((visibility("default"))) 36 #else 37 #define IPC_MOJO_EXPORT 38 #endif 39 40 #endif 41 42 #else // defined(COMPONENT_BUILD) 43 #define IPC_EXPORT 44 #define IPC_MOJO_EXPORT 45 #endif 46 47 #endif // IPC_IPC_EXPORT_H_ 48