summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin R. Miller <incanus@codesorcery.net>2015-11-06 14:58:17 -0800
committerJustin R. Miller <incanus@codesorcery.net>2015-11-06 16:16:50 -0800
commit423cfc11e5ddc3c0464264c876c74f63c456ce5d (patch)
tree186911bda738aec46a07cce0527a7541e1b3b546
parent17451418cc7cb359985185e4a0f5a7581c0d9a6b (diff)
downloadqtlocation-mapboxgl-423cfc11e5ddc3c0464264c876c74f63c456ce5d.tar.gz
refs #2966: remove -ObjC linker flag & bring in categories via other means
-rw-r--r--gyp/platform-ios.gypi3
-rw-r--r--platform/ios/MGLAccountManager.m3
-rw-r--r--platform/ios/MGLCategoryLoader.h7
-rw-r--r--platform/ios/MGLCategoryLoader.m18
-rw-r--r--platform/ios/NSBundle+MGLAdditions.h2
-rw-r--r--platform/ios/NSBundle+MGLAdditions.m2
-rw-r--r--platform/ios/NSProcessInfo+MGLAdditions.h2
-rw-r--r--platform/ios/NSProcessInfo+MGLAdditions.m2
-rw-r--r--platform/ios/NSString+MGLAdditions.h2
-rw-r--r--platform/ios/NSString+MGLAdditions.m2
10 files changed, 42 insertions, 1 deletions
diff --git a/gyp/platform-ios.gypi b/gyp/platform-ios.gypi
index 3dabc19867..d5fb6a8474 100644
--- a/gyp/platform-ios.gypi
+++ b/gyp/platform-ios.gypi
@@ -54,6 +54,8 @@
'../platform/ios/MGLAnnotationImage.m',
'../include/mbgl/ios/MGLStyle.h',
'../platform/ios/MGLStyle.mm',
+ '../platform/ios/MGLCategoryLoader.h',
+ '../platform/ios/MGLCategoryLoader.m',
'../platform/ios/NSBundle+MGLAdditions.h',
'../platform/ios/NSBundle+MGLAdditions.m',
'../platform/ios/NSException+MGLAdditions.h',
@@ -82,7 +84,6 @@
'-framework MobileCoreServices',
'-framework QuartzCore',
'-framework SystemConfiguration',
- '-ObjC',
],
},
diff --git a/platform/ios/MGLAccountManager.m b/platform/ios/MGLAccountManager.m
index f7b5290767..16cd7435cd 100644
--- a/platform/ios/MGLAccountManager.m
+++ b/platform/ios/MGLAccountManager.m
@@ -1,5 +1,6 @@
#import "MGLAccountManager_Private.h"
#import "MGLMapboxEvents.h"
+#import "MGLCategoryLoader.h"
#import "NSProcessInfo+MGLAdditions.h"
#import <Fabric/FABKitProtocol.h>
@@ -34,6 +35,8 @@
// Can be called from any thread.
//
+ (instancetype) sharedManager {
+ [MGLCategoryLoader loadCategories];
+
if (NSProcessInfo.processInfo.mgl_isInterfaceBuilderDesignablesAgent) {
return nil;
}
diff --git a/platform/ios/MGLCategoryLoader.h b/platform/ios/MGLCategoryLoader.h
new file mode 100644
index 0000000000..874450d148
--- /dev/null
+++ b/platform/ios/MGLCategoryLoader.h
@@ -0,0 +1,7 @@
+#import <Foundation/Foundation.h>
+
+@interface MGLCategoryLoader : NSObject
+
++ (void)loadCategories;
+
+@end
diff --git a/platform/ios/MGLCategoryLoader.m b/platform/ios/MGLCategoryLoader.m
new file mode 100644
index 0000000000..13d82b19b2
--- /dev/null
+++ b/platform/ios/MGLCategoryLoader.m
@@ -0,0 +1,18 @@
+#import "MGLCategoryLoader.h"
+
+#import "NSBundle+MGLAdditions.h"
+#import "NSProcessInfo+MGLAdditions.h"
+#import "NSString+MGLAdditions.h"
+
+// https://github.com/mapbox/mapbox-gl-native/issues/2966
+
+@implementation MGLCategoryLoader
+
++ (void)loadCategories
+{
+ mgl_linkBundleCategory();
+ mgl_linkProcessCategory();
+ mgl_linkStringCategory();
+}
+
+@end
diff --git a/platform/ios/NSBundle+MGLAdditions.h b/platform/ios/NSBundle+MGLAdditions.h
index 0de96bf310..f3800dfd95 100644
--- a/platform/ios/NSBundle+MGLAdditions.h
+++ b/platform/ios/NSBundle+MGLAdditions.h
@@ -2,6 +2,8 @@
NS_ASSUME_NONNULL_BEGIN
+void mgl_linkBundleCategory();
+
@interface NSBundle (MGLAdditions)
+ (NSString *)mgl_resourceBundlePath;
diff --git a/platform/ios/NSBundle+MGLAdditions.m b/platform/ios/NSBundle+MGLAdditions.m
index d8ba7dacc4..3fca7384a3 100644
--- a/platform/ios/NSBundle+MGLAdditions.m
+++ b/platform/ios/NSBundle+MGLAdditions.m
@@ -4,6 +4,8 @@
@implementation NSBundle (MGLAdditions)
+void mgl_linkBundleCategory(){}
+
+ (NSString *)mgl_resourceBundlePath
{
NSString *resourceBundlePath = [[NSBundle bundleForClass:[MGLMapView class]] pathForResource:@"Mapbox" ofType:@"bundle"];
diff --git a/platform/ios/NSProcessInfo+MGLAdditions.h b/platform/ios/NSProcessInfo+MGLAdditions.h
index a117f3b76d..b97979ddb4 100644
--- a/platform/ios/NSProcessInfo+MGLAdditions.h
+++ b/platform/ios/NSProcessInfo+MGLAdditions.h
@@ -1,5 +1,7 @@
#import <Foundation/Foundation.h>
+void mgl_linkProcessCategory();
+
@interface NSProcessInfo (MGLAdditions)
- (BOOL)mgl_isInterfaceBuilderDesignablesAgent;
diff --git a/platform/ios/NSProcessInfo+MGLAdditions.m b/platform/ios/NSProcessInfo+MGLAdditions.m
index fca183c1f7..1f12f7256e 100644
--- a/platform/ios/NSProcessInfo+MGLAdditions.m
+++ b/platform/ios/NSProcessInfo+MGLAdditions.m
@@ -2,6 +2,8 @@
@implementation NSProcessInfo (MGLAdditions)
+void mgl_linkProcessCategory(){}
+
- (BOOL)mgl_isInterfaceBuilderDesignablesAgent
{
return [self.processName isEqualToString:@"IBDesignablesAgentCocoaTouch"];
diff --git a/platform/ios/NSString+MGLAdditions.h b/platform/ios/NSString+MGLAdditions.h
index 6359576c28..a4941ac857 100644
--- a/platform/ios/NSString+MGLAdditions.h
+++ b/platform/ios/NSString+MGLAdditions.h
@@ -2,6 +2,8 @@
NS_ASSUME_NONNULL_BEGIN
+void mgl_linkStringCategory();
+
@interface NSString (MGLAdditions)
/** Returns the receiver if non-empty or nil if empty. */
diff --git a/platform/ios/NSString+MGLAdditions.m b/platform/ios/NSString+MGLAdditions.m
index 969886651b..284c63f5a9 100644
--- a/platform/ios/NSString+MGLAdditions.m
+++ b/platform/ios/NSString+MGLAdditions.m
@@ -2,6 +2,8 @@
@implementation NSString (MGLAdditions)
+void mgl_linkStringCategory(){}
+
- (nullable NSString *)mgl_stringOrNilIfEmpty
{
return self.length ? self : nil;