Home | History | Annotate | Download | only in ipc
      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