blob: 7f7e64cb76986c5101ec82ee77019c38c4d099e1 [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")))
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020015
16#if defined(__cplusplus)
Mirko Bonadeie8d57242018-09-17 10:22:56 +020017#define RTC_EXTERN extern "C" RTC_OBJC_EXPORT
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020018#else
Mirko Bonadeie8d57242018-09-17 10:22:56 +020019#define RTC_EXTERN extern RTC_OBJC_EXPORT
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020020#endif
21
22#ifdef __OBJC__
23#define RTC_FWD_DECL_OBJC_CLASS(classname) @class classname
24#else
25#define RTC_FWD_DECL_OBJC_CLASS(classname) typedef struct objc_object classname
26#endif
27
28#endif // SDK_OBJC_BASE_RTCMACROS_H_