Index: base/mac/foundation_util.h |
diff --git a/base/mac/foundation_util.h b/base/mac/foundation_util.h |
index 0d78c554fb31076577e9d087cc7084959a6f65ea..447f7bf0d8921781fc9592ec10e048d224289126 100644 |
--- a/base/mac/foundation_util.h |
+++ b/base/mac/foundation_util.h |
@@ -28,12 +28,22 @@ class NSString; |
#include <ApplicationServices/ApplicationServices.h> |
#endif |
+// Adapted from NSObjCRuntime.h NS_ENUM definition (used in Foundation starting |
+// with the OS X 10.8 SDK and the iOS 6.0 SDK). |
+#if __has_extension(cxx_strong_enums) && \ |
+ (defined(OS_IOS) || (defined(MAC_OS_X_VERSION_10_8) && \ |
+ MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_8)) |
+#define CR_FORWARD_ENUM(_type, _name) enum _name : _type _name |
+#else |
+#define CR_FORWARD_ENUM(_type, _name) _type _name |
+#endif |
+ |
// Adapted from NSPathUtilities.h and NSObjCRuntime.h. |
#if __LP64__ || NS_BUILD_32_LIKE_64 |
-typedef unsigned long NSSearchPathDirectory; |
+typedef CR_FORWARD_ENUM(unsigned long, NSSearchPathDirectory); |
typedef unsigned long NSSearchPathDomainMask; |
#else |
-typedef unsigned int NSSearchPathDirectory; |
+typedef CR_FORWARD_ENUM(unsigned int, NSSearchPathDirectory); |
typedef unsigned int NSSearchPathDomainMask; |
#endif |