| // |
| // Copyright 2019 The ANGLE Project Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| // |
| // GPUTestConfig_mac.mm: |
| // Helper functions for GPUTestConfig that have to be compiled in ObjectiveC++ |
| |
| #include "GPUTestConfig_mac.h" |
| |
| #import <Cocoa/Cocoa.h> |
| |
| #include "common/apple_platform_utils.h" |
| |
| // OSX 10.8 deprecates Gestalt but doesn't make the operatingSystemVersion property part of the |
| // public interface of NSProcessInfo until 10.10. Add a forward declaration. |
| #if !defined(MAC_OS_X_VERSION_10_10) || MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10 |
| @interface NSProcessInfo (YosemiteSDK) |
| @property(readonly) NSOperatingSystemVersion operatingSystemVersion; |
| @end |
| #endif |
| |
| namespace angle |
| { |
| |
| void GetOperatingSystemVersionNumbers(int32_t *majorVersion, int32_t *minorVersion) |
| { |
| #if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_8 |
| Gestalt(gestaltSystemVersionMajor, reinterpret_cast<SInt32 *>(majorVersion)); |
| Gestalt(gestaltSystemVersionMinor, reinterpret_cast<SInt32 *>(minorVersion)); |
| #else |
| if (ANGLE_APPLE_AVAILABLE_XC(10.10, 13.0)) |
| { |
| NSOperatingSystemVersion version = [[NSProcessInfo processInfo] operatingSystemVersion]; |
| *majorVersion = static_cast<int32_t>(version.majorVersion); |
| *minorVersion = static_cast<int32_t>(version.minorVersion); |
| } |
| else |
| { |
| // This can only happen on 10.9 |
| *majorVersion = 10; |
| *minorVersion = 9; |
| } |
| #endif |
| } |
| |
| } // namespace angle |