From 491bce95e49bc825e2ba13fb634b80e5a339135f Mon Sep 17 00:00:00 2001 From: Neel Mistry Date: Wed, 17 Feb 2021 17:00:40 -0500 Subject: [PATCH 01/11] setup podspec for build from source --- MapboxMaps.podspec | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/MapboxMaps.podspec b/MapboxMaps.podspec index 069a9421c328..68d75f4ec44c 100644 --- a/MapboxMaps.podspec +++ b/MapboxMaps.podspec @@ -12,19 +12,19 @@ Pod::Spec.new do |m| m.author = { 'Mapbox' => 'mobile@mapbox.com' } m.social_media_url = 'https://twitter.com/mapbox' m.documentation_url = 'https://docs.mapbox.com/ios/beta/maps/api-reference/' - - m.source = { http: "https://api.mapbox.com/downloads/v2/mobile-maps-ios/releases/ios/packages/#{maps_version.to_s}/MapboxMaps.xcframework.zip" } - m.vendored_frameworks = 'MapboxMaps.xcframework' - + + m.source = { :git => 'https://github.com/mapbox/mapbox-maps-ios.git', :tag => 'v10.0.0-beta.13' } m.platform = :ios m.ios.deployment_target = '11.0' m.swift_version = '5.3' m.requires_arc = true m.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } + m.source_files = 'Mapbox/MapboxMaps/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsAnnotations/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsFoundation/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsGestures/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsLocation/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsOffline/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsOrnaments/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsSnapshot/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsStyle/**/*.{swift,h,plist}' + m.dependency 'MapboxCoreMaps', '10.0.0-beta.14.1' m.dependency 'MapboxCommon', '10.0.0-beta.9.1' m.dependency 'MapboxMobileEvents', '0.10.7' - m.dependency 'Turf', '2.0.0-alpha.2' + m.dependency 'Turf', '1.2.0' end From 1577967988038ec7487d0d7ae72d2340da90ef77 Mon Sep 17 00:00:00 2001 From: Neel Mistry Date: Thu, 18 Feb 2021 09:56:56 -0500 Subject: [PATCH 02/11] build from source solution --- Mapbox/MapboxMaps/MapViewController.swift | 180 ---------------------- MapboxMaps.podspec | 3 +- 2 files changed, 2 insertions(+), 181 deletions(-) delete mode 100644 Mapbox/MapboxMaps/MapViewController.swift diff --git a/Mapbox/MapboxMaps/MapViewController.swift b/Mapbox/MapboxMaps/MapViewController.swift deleted file mode 100644 index 7681d7953d30..000000000000 --- a/Mapbox/MapboxMaps/MapViewController.swift +++ /dev/null @@ -1,180 +0,0 @@ -import UIKit -import MapboxCoreMaps - -/// The MapViewController is responsible for managing the `mapView` -/// and orchestrating between the different components of the Mapbox SDK -open class MapManager: UIViewController { - - /// The `mapOptions` structure is the interface for consumers to configure the map. - /// It's initialized on the creation of the `MapViewController` with a set of sane, default values. - /// To synchronously update the `mapOptions` please call `updateMapOptions(with newOptions: MapOptions)` - public private(set) var mapOptions: MapOptions = MapOptions() - - /// The `gestureManager` will be responsible for all gestures on the map - private var gestureManager: GestureManager! - - /// The `ornamentsManager` will be responsible for all ornaments on the map - private var ornamentsManager: OrnamentsManager! - - /// The `cameraManager` that manages a camera's view lifecycle. - public private(set) var cameraManager: CameraManager! - - /// The `locationManager` that handles location events of the map - public private(set) var locationManager: LocationManager! - - /// The `style` object supports run time styling - public private(set) var style: Style! - - /// The `eventsManager` manages telemetry collection, processing and emission. - private var eventsManager: EventsListener! - - /// Controls the addition/removal of annoations to the map. - public private(set) var annotationManager: AnnotationManager! - - /// The frame of the `mapView` - private var frame: CGRect! - - /// The mapbox access token used to authenticate requests to Mapbox - private var accessToken: String! - - /// The base URL to a custom API endpoint - private var baseURL: URL? - - public private(set) var mapView: MapView! - - override open func loadView() { - self.view = mapView - } - - @available(*, unavailable) - required public init?(coder: NSCoder) { - super.init(coder: coder) - } - - /** - Initializes the `MapViewController` with a frame and accessToken - - - Parameters: - - frame: The frame that the mapView should fill - - accessToken: The Mapbox access token to be used to authenticate requests - - baseURL: The base URL to a custom API endpoint. Default value is `nil` - */ - public init(with frame: CGRect, accessToken: String, styleURL: URL? = StyleURL.outdoors.url, baseURL: URL? = nil) { - self.frame = frame - self.accessToken = accessToken - self.baseURL = baseURL - self.eventsManager = EventsManager(accessToken: accessToken) - self.mapView = MapView(with: frame, accessToken: accessToken, baseURL: baseURL, styleURL: styleURL) - - super.init(nibName: nil, bundle: nil) - self.setupManagers() - } - - open override func didReceiveMemoryWarning() { - super.didReceiveMemoryWarning() - eventsManager.push(event: .memoryWarning) - } - - /// Configures/Initializes the map with `mapOptions` - internal func setupManagers() { - - // Initialize/configure the map if needed - setupMapView() - - // Initialize/Configure camera manager first since Gestures needs it as dependency - setupCamera(for: mapView, options: mapOptions.camera) - - // Initialize/Configure style manager - setupStyle(with: mapView.__map) - - // Initialize/Configure gesture manager - setupGestures(with: mapView, options: mapOptions.gestures, cameraManager: cameraManager) - - // Initialize/Configure ornaments manager - setupOrnaments(with: mapView, options: mapOptions.ornaments) - - // Initialize/Configure location manager - setupUserLocationManager(with: mapView, options: mapOptions.location) - - // Initialize/Configure annotations manager - setupAnnotationManager(with: mapView, and: style) - } - - /// Updates the map with new configuration options. Causes underlying structures to reload configuration synchronously. - /// - Parameter update: A closure that is fed the current map options and manipulates it in some way. - public func update(with updateMapOptions: (inout MapOptions) -> Void) { - updateMapOptions(&self.mapOptions) // This mutates the map options - - // Update the managers in order - updateMapView(with: mapOptions) - updateCamera(with: mapOptions.camera) - updateGestures(with: mapOptions.gestures) - updateOrnaments(with: mapOptions.ornaments) - updateUserLocationManager(with: mapOptions.location) - } - - internal func setupMapView() { - // Configure telemetry handler - mapView.eventsListener = eventsManager - - // Set prefetch zoom delta - let defaultPrefetchZoomDelta: UInt8 = 4 - mapView.__map.setPrefetchZoomDeltaForDelta(self.mapOptions.prefetchesTiles ? defaultPrefetchZoomDelta : 0) - } - - internal func updateMapView(with newOptions: MapOptions) { - let defaultPrefetchZoomDelta: UInt8 = 4 - mapView.__map.setPrefetchZoomDeltaForDelta(newOptions.prefetchesTiles ? defaultPrefetchZoomDelta : 0) - } - - internal func setupGestures(with view: UIView, options: GestureOptions, cameraManager: CameraManager) { - gestureManager = GestureManager(for: view, options: options, cameraManager: cameraManager) - } - - internal func updateGestures(with newOptions: GestureOptions) { - gestureManager.updateGestureOptions(with: newOptions) - } - - internal func setupCamera(for view: MapView, options: MapCameraOptions) { - cameraManager = CameraManager(for: mapView, with: mapOptions.camera) - } - - internal func updateCamera(with newOptions: MapCameraOptions) { - cameraManager.mapCameraOptions = newOptions - } - - internal func setupOrnaments(with view: OrnamentSupportableView, options: OrnamentOptions) { - ornamentsManager = OrnamentsManager(for: view, - withConfig: options.makeConfig()) - } - - internal func updateOrnaments(with newOptions: OrnamentOptions) { - ornamentsManager.ornamentConfig = mapOptions.ornaments.makeConfig() - } - - internal func setupUserLocationManager(with locationSupportableMapView: LocationSupportableMapView, options: LocationProviderOptions) { - - var locationConsumers: [LocationConsumer] = [] - if case let LocationTrackingMode.custom(customLocationConsumer) = mapOptions.location.locationTrackingMode { - locationConsumers = [customLocationConsumer] - } else { - locationConsumers = [cameraManager] - } - - locationManager = LocationManager(locationProviderOptions: options, - locationConsumers: locationConsumers, - locationSupportableMapView: locationSupportableMapView) - } - - internal func updateUserLocationManager(with options: LocationProviderOptions) { - locationManager.updateLocationOptions(with: mapOptions.location) - } - - internal func setupAnnotationManager(with annotationSupportableMap: AnnotationSupportableMap, and style: Style) { - annotationManager = AnnotationManager(for: annotationSupportableMap, with: style) - } - - internal func setupStyle(with map: Map) { - self.style = Style(with: mapView.__map) - } -} diff --git a/MapboxMaps.podspec b/MapboxMaps.podspec index 68d75f4ec44c..4537df9c94d4 100644 --- a/MapboxMaps.podspec +++ b/MapboxMaps.podspec @@ -20,7 +20,8 @@ Pod::Spec.new do |m| m.requires_arc = true m.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } - m.source_files = 'Mapbox/MapboxMaps/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsAnnotations/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsFoundation/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsGestures/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsLocation/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsOffline/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsOrnaments/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsSnapshot/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsStyle/**/*.{swift,h,plist}' + m.source_files = 'Mapbox/MapboxMaps/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsAnnotations/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsFoundation/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsGestures/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsLocation/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsOffline/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsOrnaments/**/*.{swift,h,plist,strings}', 'Mapbox/MapboxMapsSnapshot/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsStyle/**/*.{swift,h,plist}' + m.resources = 'Mapbox/MapboxMapsLocation/Pucks/IndicatorAssets.xcassets' m.dependency 'MapboxCoreMaps', '10.0.0-beta.14.1' m.dependency 'MapboxCommon', '10.0.0-beta.9.1' From 46b33eddd8b8e7b2559fdb9c948d04ae66572127 Mon Sep 17 00:00:00 2001 From: Neel Mistry Date: Thu, 18 Feb 2021 12:38:29 -0500 Subject: [PATCH 03/11] remove plists from source files --- MapboxMaps.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MapboxMaps.podspec b/MapboxMaps.podspec index 4537df9c94d4..08fd5bf65c55 100644 --- a/MapboxMaps.podspec +++ b/MapboxMaps.podspec @@ -20,7 +20,7 @@ Pod::Spec.new do |m| m.requires_arc = true m.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } - m.source_files = 'Mapbox/MapboxMaps/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsAnnotations/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsFoundation/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsGestures/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsLocation/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsOffline/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsOrnaments/**/*.{swift,h,plist,strings}', 'Mapbox/MapboxMapsSnapshot/**/*.{swift,h,plist}', 'Mapbox/MapboxMapsStyle/**/*.{swift,h,plist}' + m.source_files = 'Mapbox/MapboxMaps/**/*.{swift,h}', 'Mapbox/MapboxMapsAnnotations/**/*.{swift,h}', 'Mapbox/MapboxMapsFoundation/**/*.{swift,h}', 'Mapbox/MapboxMapsGestures/**/*.{swift,h}', 'Mapbox/MapboxMapsLocation/**/*.{swift,h}', 'Mapbox/MapboxMapsOffline/**/*.{swift,h}', 'Mapbox/MapboxMapsOrnaments/**/*.{swift,h,strings}', 'Mapbox/MapboxMapsSnapshot/**/*.{swift,h}', 'Mapbox/MapboxMapsStyle/**/*.{swift,h}' m.resources = 'Mapbox/MapboxMapsLocation/Pucks/IndicatorAssets.xcassets' m.dependency 'MapboxCoreMaps', '10.0.0-beta.14.1' From d99e2970b40a369d5374ac8350b050a7413b66ff Mon Sep 17 00:00:00 2001 From: Neel Mistry Date: Mon, 22 Feb 2021 09:42:12 -0500 Subject: [PATCH 04/11] update podspec to new dir structure --- MapboxMaps.podspec | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/MapboxMaps.podspec b/MapboxMaps.podspec index 08fd5bf65c55..34c702e41922 100644 --- a/MapboxMaps.podspec +++ b/MapboxMaps.podspec @@ -13,19 +13,18 @@ Pod::Spec.new do |m| m.social_media_url = 'https://twitter.com/mapbox' m.documentation_url = 'https://docs.mapbox.com/ios/beta/maps/api-reference/' - m.source = { :git => 'https://github.com/mapbox/mapbox-maps-ios.git', :tag => 'v10.0.0-beta.13' } + m.source = { :git => 'https://github.com/mapbox/mapbox-maps-ios.git', :tag => maps_version } m.platform = :ios m.ios.deployment_target = '11.0' m.swift_version = '5.3' m.requires_arc = true - m.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } - m.source_files = 'Mapbox/MapboxMaps/**/*.{swift,h}', 'Mapbox/MapboxMapsAnnotations/**/*.{swift,h}', 'Mapbox/MapboxMapsFoundation/**/*.{swift,h}', 'Mapbox/MapboxMapsGestures/**/*.{swift,h}', 'Mapbox/MapboxMapsLocation/**/*.{swift,h}', 'Mapbox/MapboxMapsOffline/**/*.{swift,h}', 'Mapbox/MapboxMapsOrnaments/**/*.{swift,h,strings}', 'Mapbox/MapboxMapsSnapshot/**/*.{swift,h}', 'Mapbox/MapboxMapsStyle/**/*.{swift,h}' - m.resources = 'Mapbox/MapboxMapsLocation/Pucks/IndicatorAssets.xcassets' + m.source_files = 'Sources/MapboxMaps/**/*.{swift,h}' + m.resources = 'Sources/MapboxMaps/Location/Pucks/IndicatorAssets.xcassets' - m.dependency 'MapboxCoreMaps', '10.0.0-beta.14.1' - m.dependency 'MapboxCommon', '10.0.0-beta.9.1' - m.dependency 'MapboxMobileEvents', '0.10.7' + m.dependency 'MapboxCoreMaps', '10.0.0-beta.15' + m.dependency 'MapboxCommon', '10.0.0-beta.11' + m.dependency 'MapboxMobileEvents', '0.10.8' m.dependency 'Turf', '1.2.0' end From de1342641c24a3358e3f2d7b6ff90a52fdf42a6d Mon Sep 17 00:00:00 2001 From: Neel Mistry Date: Mon, 22 Feb 2021 10:03:26 -0500 Subject: [PATCH 05/11] updating turf pointer --- MapboxMaps.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MapboxMaps.podspec b/MapboxMaps.podspec index 34c702e41922..2bf190db1ecc 100644 --- a/MapboxMaps.podspec +++ b/MapboxMaps.podspec @@ -25,6 +25,6 @@ Pod::Spec.new do |m| m.dependency 'MapboxCoreMaps', '10.0.0-beta.15' m.dependency 'MapboxCommon', '10.0.0-beta.11' m.dependency 'MapboxMobileEvents', '0.10.8' - m.dependency 'Turf', '1.2.0' + m.dependency 'Turf' ~> '1.2.0' end From f512c675b33dc29bc8e2685960f5e8b7aca3359b Mon Sep 17 00:00:00 2001 From: Neel Mistry Date: Mon, 22 Feb 2021 10:04:44 -0500 Subject: [PATCH 06/11] adding comma --- MapboxMaps.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MapboxMaps.podspec b/MapboxMaps.podspec index 2bf190db1ecc..187fd3b67a5e 100644 --- a/MapboxMaps.podspec +++ b/MapboxMaps.podspec @@ -25,6 +25,6 @@ Pod::Spec.new do |m| m.dependency 'MapboxCoreMaps', '10.0.0-beta.15' m.dependency 'MapboxCommon', '10.0.0-beta.11' m.dependency 'MapboxMobileEvents', '0.10.8' - m.dependency 'Turf' ~> '1.2.0' + m.dependency 'Turf', ~> '1.2.0' end From c6f04170f9f9916f7488185d2dcda81c60022bc8 Mon Sep 17 00:00:00 2001 From: Neel Mistry Date: Mon, 22 Feb 2021 10:07:57 -0500 Subject: [PATCH 07/11] PR Comments --- MapboxMaps.podspec | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/MapboxMaps.podspec b/MapboxMaps.podspec index 187fd3b67a5e..3ed1c4b7c4f7 100644 --- a/MapboxMaps.podspec +++ b/MapboxMaps.podspec @@ -17,14 +17,13 @@ Pod::Spec.new do |m| m.platform = :ios m.ios.deployment_target = '11.0' m.swift_version = '5.3' - m.requires_arc = true m.source_files = 'Sources/MapboxMaps/**/*.{swift,h}' - m.resources = 'Sources/MapboxMaps/Location/Pucks/IndicatorAssets.xcassets' + m.resources = 'Sources/MapboxMaps/Location/Pucks/IndicatorAssets.xcassets', 'Sources/MapboxMaps/Ornaments/en.lproj/OrnamentsLocalizable.strings' m.dependency 'MapboxCoreMaps', '10.0.0-beta.15' m.dependency 'MapboxCommon', '10.0.0-beta.11' m.dependency 'MapboxMobileEvents', '0.10.8' - m.dependency 'Turf', ~> '1.2.0' + m.dependency 'Turf', '~> 1.2.0' end From c3a93b1c58cd0e2561dcf283891f3c39ed879d39 Mon Sep 17 00:00:00 2001 From: Andrew Hershberger Date: Mon, 22 Feb 2021 11:10:46 -0600 Subject: [PATCH 08/11] Include all xcassets and strings --- MapboxMaps.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MapboxMaps.podspec b/MapboxMaps.podspec index 3ed1c4b7c4f7..b022380e142f 100644 --- a/MapboxMaps.podspec +++ b/MapboxMaps.podspec @@ -19,7 +19,7 @@ Pod::Spec.new do |m| m.swift_version = '5.3' m.source_files = 'Sources/MapboxMaps/**/*.{swift,h}' - m.resources = 'Sources/MapboxMaps/Location/Pucks/IndicatorAssets.xcassets', 'Sources/MapboxMaps/Ornaments/en.lproj/OrnamentsLocalizable.strings' + m.resources = 'Sources/**/*.{xcassets,strings}' m.dependency 'MapboxCoreMaps', '10.0.0-beta.15' m.dependency 'MapboxCommon', '10.0.0-beta.11' From c75bd709613e03dde93a17b8a9da138e04b7b7e4 Mon Sep 17 00:00:00 2001 From: Andrew Hershberger Date: Mon, 22 Feb 2021 11:11:13 -0600 Subject: [PATCH 09/11] Fix warning related to Turf compilation mode --- .../MapboxMaps/Foundation/Extensions/Core/MBXGeometry.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Sources/MapboxMaps/Foundation/Extensions/Core/MBXGeometry.swift b/Sources/MapboxMaps/Foundation/Extensions/Core/MBXGeometry.swift index 903452e0df05..7890cfc2fd57 100644 --- a/Sources/MapboxMaps/Foundation/Extensions/Core/MBXGeometry.swift +++ b/Sources/MapboxMaps/Foundation/Extensions/Core/MBXGeometry.swift @@ -77,7 +77,8 @@ extension MBXGeometry { case .geometryCollection(let geometryCollection): let geometryValues = geometryCollection.geometries.map {( MBXGeometry.init(geometry: $0) )} self.init(geometryCollection: geometryValues) - #if !SWIFT_PACKAGE + + #if USING_TURF_WITH_LIBRARY_EVOLUTION @unknown default: fatalError("Could not determine MBXGeometry from given Turf Geometry") #endif From b573ef6a49a9a1c241a90cbbbd244cd7748a15ed Mon Sep 17 00:00:00 2001 From: Andrew Hershberger Date: Mon, 22 Feb 2021 11:11:37 -0600 Subject: [PATCH 10/11] Allow Turf versions up to, but not including 2.x --- MapboxMaps.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MapboxMaps.podspec b/MapboxMaps.podspec index b022380e142f..0bd32d7ee822 100644 --- a/MapboxMaps.podspec +++ b/MapboxMaps.podspec @@ -24,6 +24,6 @@ Pod::Spec.new do |m| m.dependency 'MapboxCoreMaps', '10.0.0-beta.15' m.dependency 'MapboxCommon', '10.0.0-beta.11' m.dependency 'MapboxMobileEvents', '0.10.8' - m.dependency 'Turf', '~> 1.2.0' + m.dependency 'Turf', '~> 1.2' end From b8ec29220f1d3da03e19f79d0450793bededb4b3 Mon Sep 17 00:00:00 2001 From: Andrew Hershberger Date: Mon, 22 Feb 2021 11:40:02 -0600 Subject: [PATCH 11/11] Add USING_TURF_WITH_LIBRARY_EVOLUTION for Xcode builds --- Mapbox/Configurations/Mapbox.xcconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Mapbox/Configurations/Mapbox.xcconfig b/Mapbox/Configurations/Mapbox.xcconfig index d013c0dbd4ab..d978bdf62616 100644 --- a/Mapbox/Configurations/Mapbox.xcconfig +++ b/Mapbox/Configurations/Mapbox.xcconfig @@ -6,3 +6,6 @@ BUILD_LIBRARY_FOR_DISTRIBUTION = YES // TODO: Enable warnings-as-errors //OTHER_SWIFT_FLAGS[config=Debug] = $(inherited) //OTHER_SWIFT_FLAGS[config=Release] = $(inherited) -warnings-as-errors + +SWIFT_ACTIVE_COMPILATION_CONDITIONS[config=Debug] = $(inherited) DEBUG USING_TURF_WITH_LIBRARY_EVOLUTION +SWIFT_ACTIVE_COMPILATION_CONDITIONS[config=Release] = $(inherited) RELEASE USING_TURF_WITH_LIBRARY_EVOLUTION