blob: c2def9169ce49811cc5eaa4150eea9354695630d [file] [log] [blame]
Anders Carlsson7bca8ca2018-08-30 09:30:29 +02001/*
2 * Copyright 2016 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#ifndef SDK_OBJC_BASE_RTCMACROS_H_
12#define SDK_OBJC_BASE_RTCMACROS_H_
13
Mirko Bonadeie8d57242018-09-17 10:22:56 +020014#define RTC_OBJC_EXPORT __attribute__((visibility("default")))
15// TODO(mbonadei): Remove RTC_EXPORT in order to be able to land
16// https://webrtc-review.googlesource.com/c/src/+/97960.
17#define RTC_EXPORT RTC_OBJC_EXPORT
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020018
19#if defined(__cplusplus)
Mirko Bonadeie8d57242018-09-17 10:22:56 +020020#define RTC_EXTERN extern "C" RTC_OBJC_EXPORT
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020021#else
Mirko Bonadeie8d57242018-09-17 10:22:56 +020022#define RTC_EXTERN extern RTC_OBJC_EXPORT
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020023#endif
24
25#ifdef __OBJC__
26#define RTC_FWD_DECL_OBJC_CLASS(classname) @class classname
27#else
28#define RTC_FWD_DECL_OBJC_CLASS(classname) typedef struct objc_object classname
29#endif
30
31#endif // SDK_OBJC_BASE_RTCMACROS_H_