mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
36 lines
1.6 KiB
Objective-C
36 lines
1.6 KiB
Objective-C
// Copyright (c) 2017 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// Provides the definition of API_AVAILABLE while we're on an SDK that doesn't
|
|
// contain it yet.
|
|
// TODO(thakis): Remove this file once we're on the 10.12 SDK.
|
|
|
|
#ifndef BASE_MAC_AVAILABILITY_H_
|
|
#define BASE_MAC_AVAILABILITY_H_
|
|
|
|
#include <AvailabilityMacros.h>
|
|
|
|
#if !defined(MAC_OS_X_VERSION_10_12) || \
|
|
MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12
|
|
#define __API_AVAILABLE_PLATFORM_macos(x) macos, introduced = x
|
|
#define __API_AVAILABLE_PLATFORM_macosx(x) macosx, introduced = x
|
|
#define __API_AVAILABLE_PLATFORM_ios(x) ios, introduced = x
|
|
#define __API_AVAILABLE_PLATFORM_watchos(x) watchos, introduced = x
|
|
#define __API_AVAILABLE_PLATFORM_tvos(x) tvos, introduced = x
|
|
#define __API_A(x) __attribute__((availability(__API_AVAILABLE_PLATFORM_##x)))
|
|
#define __API_AVAILABLE1(x) __API_A(x)
|
|
#define __API_AVAILABLE2(x, y) __API_A(x) __API_A(y)
|
|
#define __API_AVAILABLE3(x, y, z) __API_A(x) __API_A(y) __API_A(z)
|
|
#define __API_AVAILABLE4(x, y, z, t) __API_A(x) __API_A(y) __API_A(z) __API_A(t)
|
|
#define __API_AVAILABLE_GET_MACRO(_1, _2, _3, _4, NAME, ...) NAME
|
|
#define API_AVAILABLE(...) \
|
|
__API_AVAILABLE_GET_MACRO(__VA_ARGS__, __API_AVAILABLE4, __API_AVAILABLE3, \
|
|
__API_AVAILABLE2, __API_AVAILABLE1) \
|
|
(__VA_ARGS__)
|
|
#else
|
|
#import <os/availability.h>
|
|
#endif // MAC_OS_X_VERSION_10_12
|
|
|
|
#endif // BASE_MAC_AVAILABILITY_H_
|