From e4a4b9ec6733875dad0950667fe6f5ea273fdfdd Mon Sep 17 00:00:00 2001 From: Bart Louwers Date: Tue, 2 Apr 2024 01:52:19 +0200 Subject: [PATCH] macOS Metal + AppKit app (#2205) Co-authored-by: mwilsnd Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .bazelrc | 6 +- .bazelversion | 2 +- .clang-format | 6 +- .github/workflows/ios-ci.yml | 2 - .github/workflows/macos-ci.yml | 94 +- .pre-commit-config.yaml | 1 + BUILD.bazel | 13 + WORKSPACE | 20 + bazel/flags.bzl | 8 + bin/BUILD.bazel | 23 + bin/render.cpp | 2 +- include/mbgl/gfx/backend_scope.hpp | 10 +- platform/BUILD.bazel | 83 +- platform/darwin/BUILD.bazel | 1 + platform/{ios => darwin}/bazel/.gitignore | 0 .../bazel/darwin_config_repository_rule.bzl | 18 + .../{ios => darwin}/bazel/example_config.bzl | 11 +- platform/darwin/src/MLNLocationManager.h | 2 + platform/darwin/src/MLNLocationManager.m | 4 + platform/default/BUILD.bazel | 28 +- platform/glfw/BUILD.bazel | 58 + platform/glfw/glfw_metal_backend.h | 35 + platform/glfw/glfw_metal_backend.mm | 26 + platform/glfw/glfw_view.cpp | 60 +- platform/glfw/main.cpp | 4 +- platform/glfw/metal_backend.h | 20 + platform/glfw/metal_backend.mm | 134 + platform/ios/BUILD.bazel | 3 +- platform/ios/README.md | 8 +- platform/ios/bazel/macros.bzl | 2 +- platform/ios/bazel/provisioning.bzl | 2 +- platform/ios/test/common/BUILD.bazel | 2 +- platform/ios/test/core/BUILD.bazel | 4 +- platform/macos/.gitignore | 1 + platform/macos/BUILD.bazel | 50 +- platform/macos/DEVELOPING.md | 140 - platform/macos/ExportOptions.plist | 10 - platform/macos/INSTALL.md | 104 - platform/macos/README.md | 39 +- platform/macos/WorkspaceSettings.xcsettings | 22 - platform/macos/app/AppDelegate.h | 2 +- .../AppIcon.appiconset/AppIcon128x128.png | Bin 8183 -> 3753 bytes .../AppIcon.appiconset/AppIcon128x128@2x.png | Bin 17649 -> 7741 bytes .../AppIcon.appiconset/AppIcon16x16.png | Bin 917 -> 529 bytes .../AppIcon.appiconset/AppIcon16x16@2x.png | Bin 2009 -> 993 bytes .../AppIcon.appiconset/AppIcon256x256.png | Bin 17649 -> 7741 bytes .../AppIcon.appiconset/AppIcon256x256@2x.png | Bin 38577 -> 16679 bytes .../AppIcon.appiconset/AppIcon32x32.png | Bin 1730 -> 993 bytes .../AppIcon.appiconset/AppIcon32x32@2x.png | Bin 3905 -> 1926 bytes .../AppIcon.appiconset/AppIcon512x512.png | Bin 38577 -> 16679 bytes .../AppIcon.appiconset/AppIcon512x512@2x.png | Bin 85668 -> 35983 bytes .../macos/app/Assets.xcassets/Contents.json | 6 +- platform/macos/app/BUILD.bazel | 32 + platform/macos/app/DroppedPinAnnotation.h | 2 +- platform/macos/app/DroppedPinAnnotation.m | 2 +- .../app/LocationCoordinate2DTransformer.m | 2 +- platform/macos/app/MLNStyle+MBXAdditions.h | 2 +- platform/macos/app/MapDocument.m | 54 +- .../macos/app/StyleLayerIconTransformer.m | 2 +- platform/macos/bazel/files.bzl | 19 +- platform/macos/jazzy.yml | 119 - platform/macos/macos.xcconfig | 1 - .../macos/macos.xcodeproj/project.pbxproj | 2341 ----------------- .../contents.xcworkspacedata | 7 - .../xcshareddata/xcschemes/CI.xcscheme | 123 - .../xcshareddata/xcschemes/dynamic.xcscheme | 116 - .../xcshareddata/xcschemes/macosapp.xcscheme | 104 - .../contents.xcworkspacedata | 13 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcdebugger/Breakpoints_v2.xcbkptlist | 6 - platform/macos/ninja | Bin 171356 -> 0 bytes platform/macos/scripts/deploy-packages.sh | 163 -- platform/macos/scripts/document.sh | 52 - platform/macos/scripts/metrics.sh | 7 - platform/macos/scripts/package.sh | 127 - .../macos/scripts/release-notes-github.md.ejs | 2 - .../macos/scripts/release-notes-jazzy.md.ejs | 15 - platform/macos/scripts/release-notes.js | 103 - .../macos/scripts/run-in-macos-gui-env.sh | 41 - platform/macos/scripts/update-version.sh | 32 - platform/macos/src/MLNAttributionButton.mm | 2 +- platform/macos/src/MLNMapView+Impl.h | 3 + platform/macos/src/MLNMapView+Impl.mm | 10 +- platform/macos/src/MLNMapView+Metal.h | 46 + platform/macos/src/MLNMapView+Metal.mm | 160 ++ platform/macos/src/MLNMapView.h | 1 + platform/macos/src/MLNMapView.mm | 5 + platform/macos/test/CI.xctestplan | 35 - scripts/check_benchmark_results.sh | 41 - scripts/config.xcconfig.in | 11 - scripts/launch-c-xcode.in | 4 - scripts/launch-c.in | 4 - scripts/launch-cxx-xcode.in | 4 - scripts/launch-cxx.in | 4 - src/mbgl/renderer/renderer_impl.cpp | 1 + vendor/glfw.BUILD | 10 + vendor/libuv.BUILD | 6 + 97 files changed, 955 insertions(+), 3953 deletions(-) create mode 100644 bin/BUILD.bazel rename platform/{ios => darwin}/bazel/.gitignore (100%) create mode 100644 platform/darwin/bazel/darwin_config_repository_rule.bzl rename platform/{ios => darwin}/bazel/example_config.bzl (62%) create mode 100644 platform/glfw/BUILD.bazel create mode 100644 platform/glfw/glfw_metal_backend.h create mode 100644 platform/glfw/glfw_metal_backend.mm create mode 100644 platform/glfw/metal_backend.h create mode 100644 platform/glfw/metal_backend.mm create mode 100644 platform/macos/.gitignore delete mode 100644 platform/macos/DEVELOPING.md delete mode 100644 platform/macos/ExportOptions.plist delete mode 100644 platform/macos/INSTALL.md delete mode 100644 platform/macos/WorkspaceSettings.xcsettings create mode 100644 platform/macos/app/BUILD.bazel delete mode 100644 platform/macos/jazzy.yml delete mode 100644 platform/macos/macos.xcconfig delete mode 100644 platform/macos/macos.xcodeproj/project.pbxproj delete mode 100644 platform/macos/macos.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 platform/macos/macos.xcodeproj/xcshareddata/xcschemes/CI.xcscheme delete mode 100644 platform/macos/macos.xcodeproj/xcshareddata/xcschemes/dynamic.xcscheme delete mode 100644 platform/macos/macos.xcodeproj/xcshareddata/xcschemes/macosapp.xcscheme delete mode 100644 platform/macos/macos.xcworkspace/contents.xcworkspacedata delete mode 100644 platform/macos/macos.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 platform/macos/macos.xcworkspace/xcshareddata/xcdebugger/Breakpoints_v2.xcbkptlist delete mode 100755 platform/macos/ninja delete mode 100644 platform/macos/scripts/deploy-packages.sh delete mode 100644 platform/macos/scripts/document.sh delete mode 100644 platform/macos/scripts/metrics.sh delete mode 100644 platform/macos/scripts/package.sh delete mode 100644 platform/macos/scripts/release-notes-github.md.ejs delete mode 100644 platform/macos/scripts/release-notes-jazzy.md.ejs delete mode 100644 platform/macos/scripts/release-notes.js delete mode 100755 platform/macos/scripts/run-in-macos-gui-env.sh delete mode 100644 platform/macos/scripts/update-version.sh create mode 100644 platform/macos/src/MLNMapView+Metal.h create mode 100644 platform/macos/src/MLNMapView+Metal.mm delete mode 100644 platform/macos/test/CI.xctestplan delete mode 100755 scripts/check_benchmark_results.sh delete mode 100644 scripts/config.xcconfig.in delete mode 100644 scripts/launch-c-xcode.in delete mode 100644 scripts/launch-c.in delete mode 100644 scripts/launch-cxx-xcode.in delete mode 100644 scripts/launch-cxx.in create mode 100644 vendor/glfw.BUILD create mode 100644 vendor/libuv.BUILD diff --git a/.bazelrc b/.bazelrc index 320763927..1f834b3a0 100644 --- a/.bazelrc +++ b/.bazelrc @@ -1,10 +1,10 @@ # https://github.com/aspect-build/rules_js/issues/1408 startup --host_jvm_args=-DBAZEL_TRACK_SOURCE_DIRECTORIES=1 -# TODO: remove with bazel 7.x -common --enable_bzlmod - +common --enable_platform_specific_config # TODO: remove once bazel flips this flag common --incompatible_disallow_empty_glob coverage --experimental_ui_max_stdouterr_bytes=10485760 + +common:macos --linkopt=-L/opt/homebrew/lib \ No newline at end of file diff --git a/.bazelversion b/.bazelversion index 66ce77b7e..a3fcc7121 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -7.0.0 +7.1.0 diff --git a/.clang-format b/.clang-format index e6e6177a8..8a61bdedb 100644 --- a/.clang-format +++ b/.clang-format @@ -9,10 +9,14 @@ BinPackParameters: false ColumnLimit: 120 IncludeBlocks: Preserve IndentWidth: 4 -Language: Cpp PackConstructorInitializers: Never PenaltyBreakAssignment: 80 SortIncludes: false SpacesBeforeTrailingComments: 1 Standard: c++17 +--- +Language: Cpp +--- +Language: ObjC +BasedOnStyle: Google ... diff --git a/.github/workflows/ios-ci.yml b/.github/workflows/ios-ci.yml index c914f3b52..18748ae33 100644 --- a/.github/workflows/ios-ci.yml +++ b/.github/workflows/ios-ci.yml @@ -77,8 +77,6 @@ jobs: ${{ runner.os }}-bazel- path: ~/.cache/bazel - - run: cp bazel/example_config.bzl bazel/config.bzl - - name: Check debug symbols run: bazel run //platform:check-public-symbols --//:renderer=metal diff --git a/.github/workflows/macos-ci.yml b/.github/workflows/macos-ci.yml index f942d35d9..aadbc15f6 100644 --- a/.github/workflows/macos-ci.yml +++ b/.github/workflows/macos-ci.yml @@ -4,48 +4,11 @@ on: workflow_dispatch: push: branches: - - opengl-2 - - macos-*.*.x - tags: - - 'macos-*' - paths: - - CMakeLists.txt - - 'platform/ios/**' - - 'platform/darwin/**' - - ".github/workflows/macos-ci.yml" - - "bin/**" - - "expression-test/**" - - "include/**" - - "metrics/**" - - "platform/default/**" - - "render-test/**" - - "scripts/**" - - "src/**" - - "test/**" - - "vendor/**" - - ".gitmodules" - - "!**/*.md" + - main pull_request: branches: - - opengl-2 - paths: - - CMakeLists.txt - - 'platform/ios/**' - - 'platform/darwin/**' - - ".github/workflows/macos-ci.yml" - - "bin/**" - - "expression-test/**" - - "include/**" - - "metrics/**" - - "platform/default/**" - - "render-test/**" - - "scripts/**" - - "src/**" - - "test/**" - - "vendor/**" - - ".gitmodules" - - "!**/*.md" + - main concurrency: # cancel jobs on PRs only @@ -55,15 +18,10 @@ concurrency: jobs: build: name: MacOS CI Tests - runs-on: [self-hosted, macOS, ARM64] - env: - BUILDTYPE: Debug - HOMEBREW_NO_AUTO_UPDATE: 1 - HOMEBREW_NO_INSTALL_CLEANUP: 1 - + runs-on: [macos-14] defaults: run: - working-directory: platform/ios + working-directory: platform/macos shell: bash steps: @@ -72,31 +30,23 @@ jobs: submodules: recursive fetch-depth: 0 - - uses: actions/setup-node@v4 + - name: Cache Bazel + uses: actions/cache@v4 with: - node-version: 18 + key: ${{ runner.os }}-bazel-${{ hashFiles('.bazelversion', '.bazelrc', 'WORKSPACE', 'WORKSPACE.bazel', 'MODULE.bazel') }} + restore-keys: | + ${{ runner.os }}-bazel- + path: ~/.cache/bazel + + - name: Install dependencies + run: | + brew install bazelisk webp libuv webp icu4c jpeg-turbo glfw + brew link icu4c --force - - name: npm install - run: npm ci --ignore-scripts - - - name: Run macOS Objective-C tests - run: | - ../macos/scripts/run-in-macos-gui-env.sh "make macos-test" - - - name: npm install # C++ tests are run with root as working directory - run: npm ci --ignore-scripts - working-directory: . - - - name: Run macOS C++ unit tests - run: | - cmake -S . -B "$BUILD_DIR" - cmake --build "$BUILD_DIR" --target mbgl-test-runner - ctest -VV --test-dir "$BUILD_DIR" -R mbgl-test-runner - env: - BUILD_DIR: ../../../maplibre-gl-native-macostestbuild - - - name: Check public symbols - run: make darwin-check-public-symbols - - - name: Lint plist files - run: make macos-lint + - name: Build AppKit app, GLFW app, cache tool, render tool for macOS + run: bazel build //platform/macos/app:macos_app //platform/glfw:glfw_app //bin:cache_tool //bin:render_tool --//:renderer=metal + + - name: Generate Xcode project for macOS + run: bazel run //platform/macos:xcodeproj --@rules_xcodeproj//xcodeproj:extra_common_flags="--//:renderer=metal" + + \ No newline at end of file diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index bc0225edd..70bd2e69e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,6 +3,7 @@ repos: rev: v4.5.0 hooks: - id: check-yaml + args: [--allow-multiple-documents] - repo: https://github.com/pre-commit/mirrors-clang-format rev: v18.1.2 hooks: diff --git a/BUILD.bazel b/BUILD.bazel index 56e744c46..ec5888a55 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -139,6 +139,9 @@ cc_library( "@platforms//os:ios": [ "//vendor:icu", ], + "@platforms//os:osx": [ + "//vendor:icu", + ], "//conditions:default": [], }) + select({ ":metal_renderer": [ @@ -240,3 +243,13 @@ js_library( ":node_modules/ejs", ], ) + +cc_library( + name = "maplibre_lib", + srcs = [], + visibility = ["//visibility:public"], + deps = select({ + "@platforms//os:macos": ["//platform:macos-objcpp"], + "//conditions:default": [], + }), +) diff --git a/WORKSPACE b/WORKSPACE index e69de29bb..e4df7e1b3 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -0,0 +1,20 @@ +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") +load("//platform/darwin:bazel/darwin_config_repository_rule.bzl", "darwin_config") + +http_archive( + name = "glfw", + build_file = "@//vendor:glfw.BUILD", + integrity = "sha256-tewASycS/Qjohh3CcUKPBId1IAot9xnM9XUUO6dJo+k=", + strip_prefix = "glfw-3.4", + url = "https://github.com/glfw/glfw/releases/download/3.4/glfw-3.4.zip", +) + +new_local_repository( + name = "libuv", + build_file = "@//vendor:libuv.BUILD", + path = "/opt/homebrew/opt/libuv", +) + +darwin_config( + name = "darwin_config", +) diff --git a/bazel/flags.bzl b/bazel/flags.bzl index 78687119e..f9c6559d6 100644 --- a/bazel/flags.bzl +++ b/bazel/flags.bzl @@ -68,6 +68,14 @@ WARNING_FLAGS = { "-Wno-tautological-constant-compare", "-Wno-gnu-anonymous-struct", ] + GCC_CLANG_COMMON_FLAGS, + "macos": [ + "-Wno-newline-eof", + "-Wno-nested-anon-types", + "-Wno-c++11-narrowing", + "-Wno-pointer-to-int-cast", + "-Wno-tautological-constant-compare", + "-Wno-gnu-anonymous-struct", + ] + GCC_CLANG_COMMON_FLAGS, "linux": GCC_CLANG_COMMON_FLAGS, "windows": MSVC_FLAGS, } diff --git a/bin/BUILD.bazel b/bin/BUILD.bazel new file mode 100644 index 000000000..d78422448 --- /dev/null +++ b/bin/BUILD.bazel @@ -0,0 +1,23 @@ +load("//bazel:flags.bzl", "CPP_FLAGS", "MAPLIBRE_FLAGS") + +cc_binary( + name = "cache_tool", + srcs = [ + "cache.cpp", + ], + copts = CPP_FLAGS + MAPLIBRE_FLAGS, + deps = [ + "//platform:macos-objcpp", + ], +) + +cc_binary( + name = "render_tool", + srcs = [ + "render.cpp", + ], + copts = CPP_FLAGS + MAPLIBRE_FLAGS, + deps = [ + "//platform:macos-objcpp", + ], +) diff --git a/bin/render.cpp b/bin/render.cpp index b6bb55cf6..26e1fa11b 100644 --- a/bin/render.cpp +++ b/bin/render.cpp @@ -14,7 +14,7 @@ #include int main(int argc, char* argv[]) { - args::ArgumentParser argumentParser("Mapbox GL render tool"); + args::ArgumentParser argumentParser("MapLibre Native render tool"); args::HelpFlag helpFlag(argumentParser, "help", "Display this help menu", {"help"}); args::ValueFlag backendValue(argumentParser, "Backend", "Rendering backend", {"backend"}); diff --git a/include/mbgl/gfx/backend_scope.hpp b/include/mbgl/gfx/backend_scope.hpp index c3f25715a..697e923d1 100644 --- a/include/mbgl/gfx/backend_scope.hpp +++ b/include/mbgl/gfx/backend_scope.hpp @@ -7,11 +7,11 @@ class RendererBackend; class BackendScope { public: - /// There are two types of scopes: Creating an "Implicit" scope tells Mapbox - /// GL that the supporting windowing system has already activated the GL - /// Backend and that no further actions are required. Creating an "Explicit" - /// scope actually enables the GL Backend, and disables it when the - /// BackendScope is destroyed. + /// There are two types of scopes: Creating an "Implicit" scope tells MapLibre + /// Native that the supporting windowing system has already activated the + /// RenderBackend and that no further actions are required. Creating an "Explicit" + /// scope (the default) actually enables the RenderBackend, and disables it when + /// the BackendScope is destroyed. enum class ScopeType : bool { Implicit, Explicit, diff --git a/platform/BUILD.bazel b/platform/BUILD.bazel index b381a1f62..c400cd44e 100644 --- a/platform/BUILD.bazel +++ b/platform/BUILD.bazel @@ -1,6 +1,82 @@ load("@aspect_rules_js//js:defs.bzl", "js_binary") load("//bazel:flags.bzl", "CPP_FLAGS", "MAPLIBRE_FLAGS", "WARNING_FLAGS") +objc_library( + name = "macos-objcpp", + srcs = [ + "//platform/darwin:darwin_objcpp_custom_drawable_srcs", + "//platform/darwin:darwin_objcpp_srcs", + "//platform/darwin:darwin_private_hdrs", + "//platform/darwin:generated_style_srcs", + "//platform/macos:macos_objcpp_srcs", + "//platform/macos:macos_private_hdrs", + "//platform/macos:macos_public_hdrs", + ], + hdrs = [ + "//platform/darwin:include/mbgl/util/image+MLNAdditions.hpp", + ], + copts = CPP_FLAGS + MAPLIBRE_FLAGS + [ + "-fcxx-modules", + "-fmodules", + "-Wno-vla-extension", + "-Wno-gnu-conditional-omitted-operand", + "-Wno-deprecated-declarations", + ], + includes = [ + "darwin/include", + "darwin/src", + "macos/src", + ], + module_name = "MapLibre", + sdk_frameworks = [ + "Metal", + "MetalKit", + "QuartzCore", + "CoreGraphics", + "CoreLocation", + "AppKit", + "SystemConfiguration", + ], + visibility = ["//visibility:public"], + deps = [ + "macos-objc", + "//:mbgl-core", + "//platform/darwin:darwin-generated-style-artifacts", + "//platform/darwin:darwin-objcpp", + "//platform/default:mbgl-default", + ], +) + +objc_library( + name = "macos-objc", + srcs = [ + "//platform/darwin:darwin_objc_hdrs", + "//platform/darwin:darwin_objc_srcs", + "//platform/darwin:darwin_private_hdrs", + "//platform/macos:macos_objc_srcs", + "//platform/macos:macos_private_hdrs", + "//platform/macos:macos_public_hdrs", + ], + copts = select({ + "@platforms//os:ios": WARNING_FLAGS["ios"], + "@platforms//os:macos": WARNING_FLAGS["macos"], + }) + MAPLIBRE_FLAGS + [ + "-fmodules", + "-Wno-deprecated-declarations", + ], + includes = [ + "darwin/include", + "darwin/src", + ], + visibility = ["//visibility:public"], + deps = [ + "//:mbgl-core", + "//platform/darwin:darwin-generated-style-artifacts", + "//platform/darwin:darwin-objc", + "//platform/default:mbgl-default", + ], +) + # Objcpp files for the iOS source objc_library( name = "objcpp-sdk", @@ -68,7 +144,10 @@ objc_library( hdrs = [ "//platform/darwin:include/mbgl/util/image+MLNAdditions.hpp", ], - copts = WARNING_FLAGS["ios"] + MAPLIBRE_FLAGS + [ + copts = select({ + "@platforms//os:ios": WARNING_FLAGS["ios"], + "@platforms//os:macos": WARNING_FLAGS["macos"], + }) + MAPLIBRE_FLAGS + [ "-fmodules", "-Wno-gnu-zero-variadic-macro-arguments", "-Wno-variadic-macros", @@ -187,9 +266,9 @@ objc_library( objc_library( name = "iosapp", srcs = [ - "//platform/ios:ios_app_srcs", "//platform/darwin:app/CustomStyleLayerExample.h", "//platform/darwin:app/CustomStyleLayerExample.m", + "//platform/ios:ios_app_srcs", ], defines = ["GLES_SILENCE_DEPRECATION"], includes = [ diff --git a/platform/darwin/BUILD.bazel b/platform/darwin/BUILD.bazel index 331fa6791..2ac4c6c3c 100644 --- a/platform/darwin/BUILD.bazel +++ b/platform/darwin/BUILD.bazel @@ -272,6 +272,7 @@ objc_library( ], visibility = ["//visibility:public"], deps = [ + "darwin-objc", "//:mbgl-core", "//platform/default:mbgl-default", ], diff --git a/platform/ios/bazel/.gitignore b/platform/darwin/bazel/.gitignore similarity index 100% rename from platform/ios/bazel/.gitignore rename to platform/darwin/bazel/.gitignore diff --git a/platform/darwin/bazel/darwin_config_repository_rule.bzl b/platform/darwin/bazel/darwin_config_repository_rule.bzl new file mode 100644 index 000000000..3b8861d60 --- /dev/null +++ b/platform/darwin/bazel/darwin_config_repository_rule.bzl @@ -0,0 +1,18 @@ +def _impl(ctx): + config_dir = ctx.workspace_root.get_child("platform", "darwin", "bazel") + config = config_dir.get_child("config.bzl") + example_config = config_dir.get_child("example_config.bzl") + + ctx.watch(config) + ctx.watch(example_config) + + ctx.file("BUILD.bazel", "") + if config.exists: + ctx.file("config.bzl", ctx.read(config)) + else: + ctx.file("config.bzl", ctx.read(example_config)) + +darwin_config = repository_rule( + implementation = _impl, + local = True, +) diff --git a/platform/ios/bazel/example_config.bzl b/platform/darwin/bazel/example_config.bzl similarity index 62% rename from platform/ios/bazel/example_config.bzl rename to platform/darwin/bazel/example_config.bzl index 3c406f9ea..a794bdeba 100644 --- a/platform/ios/bazel/example_config.bzl +++ b/platform/darwin/bazel/example_config.bzl @@ -1,14 +1,13 @@ +# cp example_config config.bzl +# if you want to override this file + # Find your team ID inside a .mobileprovision file or in your keychain (Apple development: your@email -> Get Info -> Organizational Unit) APPLE_MOBILE_PROVISIONING_PROFILE_TEAM_ID = "TC45MCF93C" APPLE_MOBILE_PROVISIONING_PROFILE_NAME = "iOS Team Provisioning Profile: *" BUNDLE_ID_PREFIX = "com.firstnamelastname" -# Change the BUILD_MODE to "xcode" below if you experience problems with -# not finding a provisioning profile when building. -# https://github.com/MobileNativeFoundation/rules_xcodeproj/blob/main/docs/bazel.md#xcodeproj-build_mode -BUILD_MODE = "bazel" - # Enter your API key for MapTiler here, if you have one. API_KEY = "0000000000" + # Semantic version number to include in plist files. -SEM_VER = "0.0.0" \ No newline at end of file +SEM_VER = "0.0.0" diff --git a/platform/darwin/src/MLNLocationManager.h b/platform/darwin/src/MLNLocationManager.h index 2618778b7..9616a3d72 100644 --- a/platform/darwin/src/MLNLocationManager.h +++ b/platform/darwin/src/MLNLocationManager.h @@ -155,10 +155,12 @@ NS_ASSUME_NONNULL_BEGIN */ - (void)startUpdatingHeading; +#if TARGET_OS_IPHONE /** Stops the generation of heading updates. */ - (void)stopUpdatingHeading; +#endif /** Dissmisses immediately the heading calibration view from screen. diff --git a/platform/darwin/src/MLNLocationManager.m b/platform/darwin/src/MLNLocationManager.m index 5877c911b..0f2f52a82 100644 --- a/platform/darwin/src/MLNLocationManager.m +++ b/platform/darwin/src/MLNLocationManager.m @@ -94,9 +94,11 @@ [self.locationManager startUpdatingLocation]; } +#if TARGET_OS_IPHONE - (void)stopUpdatingHeading { [self.locationManager stopUpdatingHeading]; } +#endif - (void)stopUpdatingLocation { [self.locationManager stopUpdatingLocation]; @@ -105,7 +107,9 @@ - (void)dealloc { [self.locationManager stopUpdatingLocation]; +#if TARGET_OS_IPHONE [self.locationManager stopUpdatingHeading]; +#endif self.locationManager.delegate = nil; self.delegate = nil; } diff --git a/platform/default/BUILD.bazel b/platform/default/BUILD.bazel index cf82bcf0a..078e3b05d 100644 --- a/platform/default/BUILD.bazel +++ b/platform/default/BUILD.bazel @@ -74,7 +74,12 @@ cc_library( "src/mbgl/util/timer.cpp", "src/mbgl/util/webp_reader.cpp", ], - "@platforms//os:ios": [], + "@platforms//os:osx": [ + "src/mbgl/util/async_task.cpp", + "src/mbgl/util/run_loop.cpp", + "src/mbgl/util/timer.cpp", + ], + "//conditions:default": [], }), hdrs = [ "include/mbgl/gfx/headless_backend.hpp", @@ -96,11 +101,27 @@ cc_library( includes = [ "include", ], + linkopts = select({ + "@platforms//os:macos": [ + "-lsqlite3", + "-luv", + "-lz", + "-lcurl", + "-lpng", + "-ljpeg", + "-lwebp", + "-licuuc ", + "-licui18n", + "-licudata", + ], + "//conditions:default": [], + }), visibility = [ "//platform:__pkg__", "//platform/darwin:__pkg__", "//platform/ios:__pkg__", "//platform/linux:__pkg__", + "//platform/macos:__pkg__", "//test:__pkg__", ], deps = [ @@ -112,5 +133,10 @@ cc_library( "@platforms//os:linux": [ "default-collator", ], + "@platforms//os:osx": [ + ":default-collator", + "//platform/darwin:darwin-loop", + "@libuv", + ], }), ) diff --git a/platform/glfw/BUILD.bazel b/platform/glfw/BUILD.bazel new file mode 100644 index 000000000..0f0850722 --- /dev/null +++ b/platform/glfw/BUILD.bazel @@ -0,0 +1,58 @@ +load("//bazel:flags.bzl", "CPP_FLAGS", "MAPLIBRE_FLAGS") + +objc_library( + name = "metal_backend", + srcs = [ + "glfw_backend.hpp", + "glfw_metal_backend.h", + "glfw_metal_backend.mm", + "metal_backend.h", + "metal_backend.mm", + ], + copts = CPP_FLAGS + MAPLIBRE_FLAGS, + deps = [ + "//:maplibre_lib", + "@glfw", + ], +) + +cc_binary( + name = "glfw_app", + srcs = glob( + [ + "*.cpp", + "*.hpp", + ], + exclude = [ + "glfw_*_backend.*", + ], + ) + + select({ + "//:metal_renderer": [ + ], + "//conditions:default": [ + "glfw_gl_backend.cpp", + "glfw_gl_backend.hpp", + ], + }), + copts = CPP_FLAGS + MAPLIBRE_FLAGS, + linkopts = [ + "-lglfw", + ] + select({ + "@platforms//os:macos": [ + "-framework Cocoa", + "-framework IOKit", + ], + "//conditions:default": [], + }), + visibility = [ + "@rules_xcodeproj//xcodeproj:generated", + ], + deps = [ + "//:maplibre_lib", + "@glfw", + ] + select({ + "@platforms//os:macos": ["metal_backend"], + "//conditions:default": [], + }), +) diff --git a/platform/glfw/glfw_metal_backend.h b/platform/glfw/glfw_metal_backend.h new file mode 100644 index 000000000..f1440bab1 --- /dev/null +++ b/platform/glfw/glfw_metal_backend.h @@ -0,0 +1,35 @@ +#pragma once + +#include "glfw_backend.hpp" +#include "metal_backend.h" + +#include +#include + +struct GLFWwindow; +@class NSWindow; + +class GLFWMetalBackend final : public GLFWBackend { + public: + GLFWMetalBackend(GLFWwindow *window_, const bool capFrameRate); + ~GLFWMetalBackend() = default; + mbgl::gfx::RendererBackend &getRendererBackend() override; + void setSize(mbgl::Size) override; + mbgl::Size getSize() const override; + + private: + NSWindow *window; + MetalBackend rendererBackend; +}; + +namespace mbgl { +namespace gfx { + +template <> +std::unique_ptr Backend::Create(GLFWwindow *window, + bool capFrameRate) { + return std::make_unique(window, capFrameRate); +} + +} // namespace gfx +} // namespace mbgl diff --git a/platform/glfw/glfw_metal_backend.mm b/platform/glfw/glfw_metal_backend.mm new file mode 100644 index 000000000..3f776bf40 --- /dev/null +++ b/platform/glfw/glfw_metal_backend.mm @@ -0,0 +1,26 @@ +#include "glfw_metal_backend.h" + +#include "metal_backend.h" + +#define GLFW_EXPOSE_NATIVE_COCOA +#include +#include + +GLFWMetalBackend::GLFWMetalBackend(GLFWwindow* window_, const bool capFrameRate) + : + window(glfwGetCocoaWindow(window_)), + rendererBackend(window) + { + } + +mbgl::gfx::RendererBackend& GLFWMetalBackend::getRendererBackend() { + return rendererBackend; +} + +void GLFWMetalBackend::setSize(mbgl::Size size) { + rendererBackend.setSize(size); +} + +mbgl::Size GLFWMetalBackend::getSize() const { + return rendererBackend.getSize(); +} diff --git a/platform/glfw/glfw_view.cpp b/platform/glfw/glfw_view.cpp index 5bfa8272e..5658ba54e 100644 --- a/platform/glfw/glfw_view.cpp +++ b/platform/glfw/glfw_view.cpp @@ -150,33 +150,37 @@ GLFWView::GLFWView(bool fullscreen_, } #if __APPLE__ - glfwWindowHint(GLFW_COCOA_GRAPHICS_SWITCHING, GL_TRUE); + glfwWindowHint(GLFW_COCOA_RETINA_FRAMEBUFFER, GL_TRUE); #endif -#if MBGL_WITH_EGL - glfwWindowHint(GLFW_CONTEXT_CREATION_API, GLFW_EGL_CONTEXT_API); -#endif - -#ifdef DEBUG - glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GL_TRUE); -#endif - - glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API); - glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); - glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0); - if (mbgl::gfx::Backend::GetType() != mbgl::gfx::Backend::Type::OpenGL) { glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); + } else { +#if __APPLE__ + glfwWindowHint(GLFW_COCOA_GRAPHICS_SWITCHING, GL_TRUE); +#endif + +#if MBGL_WITH_EGL + glfwWindowHint(GLFW_CONTEXT_CREATION_API, GLFW_EGL_CONTEXT_API); +#endif + +#ifdef DEBUG + glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GL_TRUE); +#endif + + glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API); + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0); + + glfwWindowHint(GLFW_RED_BITS, 8); + glfwWindowHint(GLFW_GREEN_BITS, 8); + glfwWindowHint(GLFW_BLUE_BITS, 8); + glfwWindowHint(GLFW_ALPHA_BITS, 8); + glfwWindowHint(GLFW_STENCIL_BITS, 8); + glfwWindowHint(GLFW_DEPTH_BITS, 16); } - glfwWindowHint(GLFW_RED_BITS, 8); - glfwWindowHint(GLFW_GREEN_BITS, 8); - glfwWindowHint(GLFW_BLUE_BITS, 8); - glfwWindowHint(GLFW_ALPHA_BITS, 8); - glfwWindowHint(GLFW_STENCIL_BITS, 8); - glfwWindowHint(GLFW_DEPTH_BITS, 16); - - window = glfwCreateWindow(width, height, "Mapbox GL", monitor, nullptr); + window = glfwCreateWindow(width, height, "MapLibre Native", monitor, nullptr); if (!window) { glfwTerminate(); mbgl::Log::Error(mbgl::Event::OpenGL, "failed to initialize window"); @@ -196,6 +200,12 @@ GLFWView::GLFWView(bool fullscreen_, backend = GLFWBackend::Create(window, benchmark); +#ifdef __APPLE__ + int fbW, fbH; + glfwGetFramebufferSize(window, &fbW, &fbH); + backend->setSize({fbW, fbH}); +#endif + pixelRatio = static_cast(backend->getSize().width) / width; glfwMakeContextCurrent(nullptr); @@ -837,6 +847,12 @@ void GLFWView::onWindowResize(GLFWwindow *window, int width, int height) { view->width = width; view->height = height; view->map->setSize({static_cast(view->width), static_cast(view->height)}); + +#ifdef __APPLE__ + int fbW, fbH; + glfwGetFramebufferSize(window, &fbW, &fbH); + view->backend->setSize({fbW, fbH}); +#endif } void GLFWView::onFramebufferResize(GLFWwindow *window, int width, int height) { @@ -1030,7 +1046,7 @@ void GLFWView::setShouldClose() { } void GLFWView::setWindowTitle(const std::string &title) { - glfwSetWindowTitle(window, (std::string{"Mapbox GL: "} + title).c_str()); + glfwSetWindowTitle(window, (std::string{"MapLibre Native (GLFW): "} + title).c_str()); } void GLFWView::onDidFinishLoadingStyle() { diff --git a/platform/glfw/main.cpp b/platform/glfw/main.cpp index c5e496df9..003b019ff 100644 --- a/platform/glfw/main.cpp +++ b/platform/glfw/main.cpp @@ -36,7 +36,7 @@ void quit_handler(int) { } int main(int argc, char* argv[]) { - args::ArgumentParser argumentParser("Mapbox GL GLFW example"); + args::ArgumentParser argumentParser("MapLibre Native GLFW example"); args::HelpFlag helpFlag(argumentParser, "help", "Display this help menu", {'h', "help"}); args::Flag fullscreenFlag(argumentParser, "fullscreen", "Toggle fullscreen", {'f', "fullscreen"}); @@ -206,7 +206,7 @@ int main(int argc, char* argv[]) { // Load style if (style.empty()) { - const char* url = getenv("MAPBOX_STYLE_URL"); + const char* url = getenv("MLN_STYLE_URL"); if (url == nullptr) { mbgl::util::DefaultStyle newStyle = orderedStyles[0]; style = newStyle.getUrl(); diff --git a/platform/glfw/metal_backend.h b/platform/glfw/metal_backend.h new file mode 100644 index 000000000..11ea485b2 --- /dev/null +++ b/platform/glfw/metal_backend.h @@ -0,0 +1,20 @@ +#pragma once + +#include +#include +#include +#include + +#import + +class MetalBackend final : public mbgl::mtl::RendererBackend, public mbgl::gfx::Renderable { +public: + MetalBackend(NSWindow *window); + + mbgl::gfx::Renderable &getDefaultRenderable() override; + void activate() override; + void deactivate() override; + void updateAssumedState() override; + void setSize(mbgl::Size size_); + mbgl::Size getSize() const; +}; diff --git a/platform/glfw/metal_backend.mm b/platform/glfw/metal_backend.mm new file mode 100644 index 000000000..e49771268 --- /dev/null +++ b/platform/glfw/metal_backend.mm @@ -0,0 +1,134 @@ +#include "metal_backend.h" + +#include +#include +#include + +namespace mbgl { + +class MetalRenderableResource final: public mtl::RenderableResource { +public: + MetalRenderableResource(MetalBackend &backend): + rendererBackend(backend), + commandQueue(NS::TransferPtr(backend.getDevice()->newCommandQueue())), + swapchain(NS::TransferPtr(CA::MetalLayer::layer())) + { + swapchain->setDevice(backend.getDevice().get()); + } + + void setBackendSize(mbgl::Size size_) { + size = size_; + swapchain->setDrawableSize({size.width, size.height}); + buffersInvalid = true; + } + + mbgl::Size getSize() const { + return size; + } + + void bind() override { + surface = NS::TransferPtr(swapchain->nextDrawable()); + auto texSize = mbgl::Size{ + static_cast(swapchain->drawableSize().width), + static_cast(swapchain->drawableSize().height)}; + + commandBuffer = NS::TransferPtr(commandQueue->commandBuffer()); + renderPassDescriptor = NS::TransferPtr(MTL::RenderPassDescriptor::renderPassDescriptor()); + renderPassDescriptor->colorAttachments()->object(0)->setTexture(surface->texture()); + + if (buffersInvalid || !depthTexture || !stencilTexture) { + buffersInvalid = false; + depthTexture = rendererBackend.getContext().createTexture2D(); + depthTexture->setSize(texSize); + depthTexture->setFormat(gfx::TexturePixelType::Depth, gfx::TextureChannelDataType::Float); + depthTexture->setSamplerConfiguration( + {gfx::TextureFilterType::Linear, gfx::TextureWrapType::Clamp, gfx::TextureWrapType::Clamp}); + static_cast(depthTexture.get())->setUsage( + MTL::TextureUsageShaderRead | MTL::TextureUsageShaderWrite | MTL::TextureUsageRenderTarget); + + stencilTexture = rendererBackend.getContext().createTexture2D(); + stencilTexture->setSize(texSize); + stencilTexture->setFormat(gfx::TexturePixelType::Stencil, gfx::TextureChannelDataType::UnsignedByte); + stencilTexture->setSamplerConfiguration( + {gfx::TextureFilterType::Linear, gfx::TextureWrapType::Clamp, gfx::TextureWrapType::Clamp}); + static_cast(stencilTexture.get()) + ->setUsage(MTL::TextureUsageShaderRead | MTL::TextureUsageShaderWrite | MTL::TextureUsageRenderTarget); + } + + if (depthTexture) { + depthTexture->create(); + if (auto* depthTarget = renderPassDescriptor->depthAttachment()) { + depthTarget->setTexture(static_cast(depthTexture.get())->getMetalTexture()); + } + } + if (stencilTexture) { + stencilTexture->create(); + if (auto* stencilTarget = renderPassDescriptor->stencilAttachment()) { + stencilTarget->setTexture(static_cast(stencilTexture.get())->getMetalTexture()); + } + } + } + + void swap() override { + commandBuffer->presentDrawable(surface.get()); + commandBuffer->commit(); + commandBuffer.reset(); + renderPassDescriptor.reset(); + } + + const mtl::RendererBackend& getBackend() const override { + return rendererBackend; + } + + const mtl::MTLCommandBufferPtr& getCommandBuffer() const override { + return commandBuffer; + } + + mtl::MTLBlitPassDescriptorPtr getUploadPassDescriptor() const override { + return NS::TransferPtr(MTL::BlitPassDescriptor::alloc()->init()); + } + + const mtl::MTLRenderPassDescriptorPtr& getRenderPassDescriptor() const override { + return renderPassDescriptor; + } + + NS::SharedPtr getSwapchain() { + return swapchain; + } + +private: + MetalBackend &rendererBackend; + NS::SharedPtr commandQueue; + NS::SharedPtr commandBuffer; + NS::SharedPtr renderPassDescriptor; + NS::SharedPtr surface; + NS::SharedPtr swapchain; + gfx::Texture2DPtr depthTexture; + gfx::Texture2DPtr stencilTexture; + mbgl::Size size; + bool buffersInvalid = true; +}; + +} // namespace mbgl + +MetalBackend::MetalBackend(NSWindow *window): +mbgl::mtl::RendererBackend(mbgl::gfx::ContextMode::Unique), +mbgl::gfx::Renderable(mbgl::Size{0, 0}, std::make_unique(*this)) +{ + window.contentView.layer = (__bridge CALayer *)getDefaultRenderable().getResource().getSwapchain().get(); + window.contentView.wantsLayer = YES; +} + +mbgl::gfx::Renderable &MetalBackend::getDefaultRenderable() { + return *this; +} + +void MetalBackend::activate() {} +void MetalBackend::deactivate() {} +void MetalBackend::updateAssumedState() {} + +void MetalBackend::setSize(mbgl::Size size_) { + getResource().setBackendSize(size_); +} + +mbgl::Size MetalBackend::getSize() const { return getResource().getSize(); } diff --git a/platform/ios/BUILD.bazel b/platform/ios/BUILD.bazel index f34aca7a5..1fd08ccae 100644 --- a/platform/ios/BUILD.bazel +++ b/platform/ios/BUILD.bazel @@ -3,12 +3,12 @@ load("@build_bazel_rules_apple//apple:apple.bzl", "apple_static_xcframework", "a load("@build_bazel_rules_apple//apple:ios.bzl", "ios_application", "ios_framework") load("@build_bazel_rules_apple//apple:resources.bzl", "apple_resource_bundle") load("@build_bazel_rules_apple//apple:versioning.bzl", "apple_bundle_version") +load("@darwin_config//:config.bzl", "BUNDLE_ID_PREFIX") load( "@rules_xcodeproj//xcodeproj:defs.bzl", "top_level_target", "xcodeproj", ) -load("//platform/ios/bazel:config.bzl", "BUILD_MODE", "BUNDLE_ID_PREFIX") load( "//platform/ios/bazel:files.bzl", "MLN_IOS_PRIVATE_HEADERS", @@ -250,7 +250,6 @@ filegroup( xcodeproj( name = "xcodeproj", bazel_env = {"PATH": "/bin:/usr/bin:/usr/local/bin:/opt/homebrew/bin"}, - build_mode = BUILD_MODE, default_xcode_configuration = "Debug", extra_files = [ ":extra_files", diff --git a/platform/ios/README.md b/platform/ios/README.md index b63814a11..14898bc96 100644 --- a/platform/ios/README.md +++ b/platform/ios/README.md @@ -87,10 +87,10 @@ brew install bazelisk #### Creating `config.bzl` -You need to configure Bazel. Copy the example config from `platform/ios`. +You may want to configure Bazel, otherwise the default config gets used. ``` -cp platform/ios/bazel/example_config.bzl platform/ios/bazel/config.bzl +cp platform/darwin/bazel/example_config.bzl platform/darwin/bazel/config.bzl ``` You need to set your `BUNDLE_ID_PREFIX` to be unique (ideally use a domain that you own in reverse domain name notation). @@ -123,9 +123,7 @@ Try to run the example App in the simulator and on a device to confirm your setu #### Troubleshooting Provisioning Profiles -If no provisioning profile was found, you could try changing the `BUILD_MODE` in `config.bzl` to `"xcode"`. Try the steps in this section again afterwards. - -If on the other hand you get a Python `KeyError` when processing provisioning profiles, you probably have some _really_ old or corrupted profiles. +If you get a Python `KeyError` when processing provisioning profiles, you probably have some _really_ old or corrupted profiles. Have a look through `~/Library/MobileDevice/Provisioning\ Profiles` and remove any expired profiles. #### Using Bazel from the Command Line diff --git a/platform/ios/bazel/macros.bzl b/platform/ios/bazel/macros.bzl index fc5dfdb9e..00cf66849 100644 --- a/platform/ios/bazel/macros.bzl +++ b/platform/ios/bazel/macros.bzl @@ -1,4 +1,4 @@ -load("//platform/ios/bazel:config.bzl", "API_KEY", "SEM_VER") +load("@darwin_config//:config.bzl", "API_KEY", "SEM_VER") def info_plist(name, base_info_plist, out, **kwargs): native.genrule( diff --git a/platform/ios/bazel/provisioning.bzl b/platform/ios/bazel/provisioning.bzl index 91e2141e0..2205f7327 100644 --- a/platform/ios/bazel/provisioning.bzl +++ b/platform/ios/bazel/provisioning.bzl @@ -1,6 +1,6 @@ load("@build_bazel_rules_apple//apple:apple.bzl", "local_provisioning_profile") +load("@darwin_config//:config.bzl", "APPLE_MOBILE_PROVISIONING_PROFILE_NAME", "APPLE_MOBILE_PROVISIONING_PROFILE_TEAM_ID") load("@rules_xcodeproj//xcodeproj:defs.bzl", "xcode_provisioning_profile") -load("config.bzl", "APPLE_MOBILE_PROVISIONING_PROFILE_NAME", "APPLE_MOBILE_PROVISIONING_PROFILE_TEAM_ID") def configure_device_profiles(): local_provisioning_profile( diff --git a/platform/ios/test/common/BUILD.bazel b/platform/ios/test/common/BUILD.bazel index 84a112739..5713f583f 100644 --- a/platform/ios/test/common/BUILD.bazel +++ b/platform/ios/test/common/BUILD.bazel @@ -1,5 +1,5 @@ load("@build_bazel_rules_apple//apple:ios.bzl", "ios_application") -load("//platform/ios/bazel:config.bzl", "BUNDLE_ID_PREFIX") +load("@darwin_config//:config.bzl", "BUNDLE_ID_PREFIX") cc_library( name = "ios_test_runner_lib", diff --git a/platform/ios/test/core/BUILD.bazel b/platform/ios/test/core/BUILD.bazel index f3af526eb..cfa0ef787 100644 --- a/platform/ios/test/core/BUILD.bazel +++ b/platform/ios/test/core/BUILD.bazel @@ -1,7 +1,7 @@ load("@build_bazel_rules_apple//apple:ios.bzl", "ios_application", "ios_unit_test") -load("//platform/ios/bazel:config.bzl", "BUNDLE_ID_PREFIX") -load("//bazel:flags.bzl", "CPP_FLAGS", "MAPLIBRE_FLAGS") load("@build_bazel_rules_apple//apple:resources.bzl", "apple_resource_bundle") +load("@darwin_config//:config.bzl", "BUNDLE_ID_PREFIX") +load("//bazel:flags.bzl", "CPP_FLAGS", "MAPLIBRE_FLAGS") cc_library( name = "test_cpp_srcs", diff --git a/platform/macos/.gitignore b/platform/macos/.gitignore new file mode 100644 index 000000000..02b1b3408 --- /dev/null +++ b/platform/macos/.gitignore @@ -0,0 +1 @@ +MapLibre.xcodeproj \ No newline at end of file diff --git a/platform/macos/BUILD.bazel b/platform/macos/BUILD.bazel index 813880dcb..7ef54ff48 100644 --- a/platform/macos/BUILD.bazel +++ b/platform/macos/BUILD.bazel @@ -1,10 +1,16 @@ load("@aspect_rules_js//js:defs.bzl", "js_library") +load("@build_bazel_rules_apple//apple:macos.bzl", "macos_command_line_application") +load( + "@rules_xcodeproj//xcodeproj:defs.bzl", + "top_level_target", + "xcodeproj", +) load( "bazel/files.bzl", "MLN_MACOS_PRIVATE_HEADERS", "MLN_MACOS_PUBLIC_HEADERS", + "MLN_MACOS_PUBLIC_METAL_HEADERS", "MLN_MACOS_PUBLIC_OBJCPP_METAL_SOURCE", - "MLN_MACOS_PUBLIC_OBJCPP_OPENGL_SOURCE", "MLN_MACOS_PUBLIC_OBJCPP_SOURCE", "MLN_MACOS_PUBLIC_OBJC_SOURCE", ) @@ -17,16 +23,13 @@ filegroup( filegroup( name = "macos_public_hdrs", - srcs = MLN_MACOS_PUBLIC_HEADERS, + srcs = MLN_MACOS_PUBLIC_HEADERS + MLN_MACOS_PUBLIC_METAL_HEADERS, visibility = ["//visibility:public"], ) filegroup( name = "macos_objcpp_srcs", - srcs = MLN_MACOS_PUBLIC_OBJCPP_SOURCE + select({ - "//:metal_renderer": MLN_MACOS_PUBLIC_OBJCPP_METAL_SOURCE, - "//conditions:default": MLN_MACOS_PUBLIC_OBJCPP_OPENGL_SOURCE, - }), + srcs = MLN_MACOS_PUBLIC_OBJCPP_SOURCE + MLN_MACOS_PUBLIC_OBJCPP_METAL_SOURCE, visibility = ["//visibility:public"], ) @@ -36,6 +39,41 @@ filegroup( visibility = ["//visibility:public"], ) +macos_command_line_application( + name = "MapLibreMac", + minimum_deployment_os_version = "13.0", + minimum_os_version = "13.0", + visibility = ["//visibility:public"], + deps = ["//platform:macos-objcpp"], +) + +xcodeproj( + name = "xcodeproj", + bazel_env = {"PATH": "/bin:/usr/bin:/usr/local/bin:/opt/homebrew/bin"}, + default_xcode_configuration = "Debug", + minimum_xcode_version = "14", + project_name = "MapLibre", + tags = ["manual"], + top_level_targets = [ + top_level_target( + "//platform/macos:MapLibreMac", + target_environments = [ + "simulator", + ], + ), + top_level_target( + "//platform/macos/app:macos_app", + ), + top_level_target( + "//platform/glfw:glfw_app", + ), + ], + xcode_configurations = { + "Debug": {"//command_line_option:compilation_mode": "dbg"}, + "Release": {"//command_line_option:compilation_mode": "opt"}, + }, +) + exports_files( MLN_MACOS_PRIVATE_HEADERS + MLN_MACOS_PUBLIC_HEADERS + diff --git a/platform/macos/DEVELOPING.md b/platform/macos/DEVELOPING.md deleted file mode 100644 index 64858e440..000000000 --- a/platform/macos/DEVELOPING.md +++ /dev/null @@ -1,140 +0,0 @@ -# Contributing to the Mapbox Maps SDK for macOS - -This document explains how to build the Mapbox Maps SDK for macOS from source. It is intended for advanced developers who wish to contribute to Mapbox GL and the Mapbox Maps SDK for iOS. - -## Requirements - -See the "Requirements" section in [INSTALL.md](INSTALL.md). - -## Building the SDK - -Build and package the SDK by using one of the following commands: - -* `make xproj` opens the macOS project in Xcode -* `make xpackage` builds a dynamic framework in the Debug configuration, including debug symbols. -* `make xdocument` generates API documentation using jazzy. - -You can customize the build output by passing the following arguments into the `make` invocation: - -* `BUILDTYPE=Release` will optimize for distribution. Defaults to `Debug`. -* `SYMBOLS=NO` strips the build output of any debug symbols, yielding much smaller binaries. Defaults to `YES`. - -An example command that creates a dynamic framework suitable for distribution: - -```bash -make xpackage BUILDTYPE=Release SYMBOLS=NO -``` - -The products of these build commands can be found in the `build/macos/pkg` folder at the base of the repository. - -## Contributing - -### Making any symbol public - -To add any Objective-C type, constant, or member to the macOS maps SDK’s public interface: - -1. Ensure that the symbol is pure Objective-C and does not rely on any language features specific to Objective-C++ or the C11 dialect of C – so no namespaced types or classes named with emoji! 🙃 Most projects that depend on this SDK are either written in pure Objective-C (GNU99 dialect) or Swift, which cannot yet bridge C++ types. -1. Name the symbol according to [Cocoa naming conventions](https://developer.apple.com/library/prerelease/content/documentation/Cocoa/Conceptual/CodingGuidelines/CodingGuidelines.html#//apple_ref/doc/uid/10000146i). Use the `MLN` class prefix to avoid conflicts with client code. If the symbol has an analogue in MapKit, name the symbol according to MapKit. -1. Provide full documentation comments. We use [jazzy](https://github.com/realm/jazzy/) to produce the documentation found in the SDK distribution. We also recognize that many developers rely on Xcode’s Quick Help feature. jazzy supports Markdown formatting; however, Quick Help supports only [HeaderDoc](https://developer.apple.com/legacy/library/documentation/DeveloperTools/Conceptual/HeaderDoc/intro/intro.html) syntax and a subset of Doxygen syntax. For hyperlinks, use HTML syntax, which is recognized by both tools. - -### Making a type or constant public - -To add an Objective-C class, protocol, category, typedef, enumeration, or global constant to the macOS maps SDK’s public interface: - -1. _(Optional.)_ Add the macro `MLN_EXPORT` prior to the declaration for classes and global constants. To use this macro, include `MLNFoundation.h`. You can check whether all public symbols are exported correctly by running `make darwin-check-public-symbols`. -1. _(Optional.)_ Add the type or constant’s name to the relevant category in the `custom_categories` section of [the jazzy configuration file](./jazzy.yml). This is required for classes and protocols and also recommended for any other type that is strongly associated with a particular class or protocol. If you leave out this step, the symbol will appear in an “Other” section in the generated HTML documentation’s table of contents. -1. _(Optional.)_ If the symbol would also be publicly exposed in the iOS maps SDK, consult [the companion iOS document](../ios/DEVELOPING.md#making-a-type-or-constant-public) for further instructions. - -### Adding a source code file - -To add an Objective-C header or implementation file to the macOS maps SDK: - -1. Add the file to the “dynamic” target’s Headers or Compile Sources build phase, as appropriate. You can either use the Build Phases tab of the project editor or the Target Membership section of the File inspector. -1. Audit new headers for nullability. Typically, you will wrap a header with `NS_ASSUME_NONNULL_BEGIN` and `NS_ASSUME_NONNULL_END`. -1. _(Optional.)_ If it’s a public header, change its visibility from Project to Public and import it in [the macOS SDK’s umbrella header](./src/Mapbox.h). -1. _(Optional.)_ If the file would also be used by the iOS maps SDK, make sure it’s in [platform/darwin/src/](../darwin/src/), then consult [the companion iOS document](../ios/DEVELOPING.md#adding-a-source-code-file) for further instructions. -1. Run `scripts/generate-file-lists.js` to update the generated source file list for third party build systems. - -### Adding a resource - -To add a resource (such as an image, SSL certificate, property list, or strings table) to the macOS maps SDK: - -1. Add the header to the Copy Bundle Resources build phase of the “dynamic” target. You can either use the Build Phases tab of the project editor or the Target Membership section of the File inspector. -1. _(Optional.)_ If the resource would also be used by the iOS maps SDK, make sure it’s in [platform/darwin/resources/](../darwin/resources/), then consult [the companion iOS document](../ios/DEVELOPING.md#adding-a-resource) for further instructions. - -### Adding user-facing text - -To add or update text that the user may see in the macOS maps SDK: - -1. Make sure the implementation file imports [NSBundle+MLNAdditions.h](../darwin/src/NSBundle+MLNAdditions.h). -1. Use the `NSLocalizedStringWithDefaultValue()` macro: - * `key` is a unique identifier that won’t change if the user-facing text ever needs to change. - * `tbl` is `Foundation` in code shared between the iOS and macOS maps SDKs, or `nil` otherwise. - * `bundle` is `nil`; the redefined macro looks for the SDK bundle at runtime and ignores this argument. - * `val` is the English string. -1. _(Optional.)_ When dealing with a number followed by a pluralized word, do not split the string. Instead, use a format string and make `val` ambiguous, like `%d file(s)`. Then pluralize for English in the appropriate [.stringsdict file](https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPInternational/StringsdictFileFormat/StringsdictFileFormat.html). See [platform/darwin/resources/en.lproj/Foundation.stringsdict](../darwin/resources/en.lproj/Foundation.stringsdict) for an example. Localizers should do likewise for their languages. -1. Run `make genstrings` and commit any changes it makes to .strings files. The make rule also updates the iOS maps SDK’s strings tables. - -### Adding a localization - -Translations of all the Mapbox GL Native SDKs are managed [in Transifex](https://www.transifex.com/mapbox/mapbox-gl-native/). If your language already has a translation, feel free to complete or proofread it. Otherwise, please [request your language](https://www.transifex.com/mapbox/mapbox-gl-native/languages/). Note that we’re primarily interested in languages that macOS supports as system languages. - -Once you’ve finished translating the SDK into a new language in Transifex, perform these steps to make Xcode aware of the translation: - -1. In macos.xcworkspace, open the project editor for macos.xcodeproj. Using the project editor’s sidebar or tab bar dropdown, go to the “macos” project; under the Localizations section of the Info tab, click the + button to add your language to the project. -1. In the sheet that appears, select all the .strings and .stringsdict files but no .xib file. (Most of the XIBs are part of the macosapp example application, which is not localized, while MLNAnnotationCallout.xib contains no localizable strings.) If your language lacks declension and pluralization, as in the case of Chinese, omit the .stringsdict files. -1. In the Project navigator, expand each .stringsdict file in the project. An additional version for your localization should be listed; translate it. See Apple’s documentation on the [.stringsdict format](https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPInternational/StringsdictFileFormat/StringsdictFileFormat.html). -1. In the Project navigator, select Demo App/Localizable.strings and then, in the File Inspector, check the box for your new localization. -1. Repeat the steps above in ios.xcworkspace. - -The .strings files should still be in the original English – that’s expected. Now you can pull your translations into this repository: - -1. _(First time only.)_ Download the [`tx` command line tool](https://docs.transifex.com/client/installing-the-client) and [configure your .transifexrc](https://docs.transifex.com/client/client-configuration). -1. Run `tx pull -a`. -1. Convert any added .strings files from UTF-16 encoding to UTF-8 encoding to facilitate diffing and merging. You can convert the file encoding using Xcode’s File inspector or the following command (substituting _MYLANG_ for the locale code): - -``` -find platform/{darwin,ios}/resources platform/macos/sdk -path '*/MYLANG.lproj/*.strings' -exec textutil -convert txt -extension strings -inputencoding UTF-16 -encoding UTF-8 {} -output {} \; -``` - -### Adding a code example - -To add an example code listing to the documentation for a class or class member: - -1. Add a test method named in the form `testMLNClass` or `testMLNClass$method` - to [MLNDocumentationExampleTests](test/MLNDocumentationExampleTests.swift). - Wrap the code you’d like to appear in the documentation within - `//#-example-code` and `//#-end-example-code` comments. -1. If the header doesn’t already have an example code listing, add the path to - the header to platform/darwin/scripts/update-examples.list. -1. Insert the code listings into the headers: - -```bash -make darwin-update-examples -``` - -[SourceKitten](https://github.com/jpsim/SourceKitten/) is required and will be installed automatically using Homebrew. - -### Customizing compilation settings - -You can provide an optional and custom [`xcconfig`](https://help.apple.com/xcode/mac/current/#/dev745c5c974) file named `platform/darwin/developer.xcconfig` to set custom build options. This file is ignored by git. These custom settings apply to all configurations (`Debug`, `Release`), but do **not** apply to the core `mbgl` files. This mechanism allows you to try different compiler settings (for example when testing an Xcode beta). - -## Testing - -`make macos-test` builds and runs unit tests of cross-platform code as well as the SDK. - -To instead run the cross-platform tests in Xcode instead of on the command line: - -1. Run `make xproj` to set up the workspace. -1. Change the scheme to “mbgl-test” and press Command-R to run core unit tests. -1. Change the scheme to “CI” and press Command-U to run SDK integration tests. - -## Access tokens - -The demo applications use Mapbox vector tiles, which require a Mapbox account and API access token. Obtain an access token on the [Mapbox account page](https://www.mapbox.com/studio/account/tokens/). You will be prompted for this access token the first time you launch the demo application. - -## Using macosapp - -Through the macOS maps SDK, the demo application supports a variety of standard gestures and keyboard shortcuts. For more details, open Mapbox GL Help from the Help menu. - -You can also [integrate the Mapbox Maps SDK for macOS into your own Cocoa application](INSTALL.md). diff --git a/platform/macos/ExportOptions.plist b/platform/macos/ExportOptions.plist deleted file mode 100644 index 21af10c08..000000000 --- a/platform/macos/ExportOptions.plist +++ /dev/null @@ -1,10 +0,0 @@ - - - - - method - developer-id - teamID - GJZR2MEM28 - - diff --git a/platform/macos/INSTALL.md b/platform/macos/INSTALL.md deleted file mode 100644 index c2e56bce4..000000000 --- a/platform/macos/INSTALL.md +++ /dev/null @@ -1,104 +0,0 @@ -# Integrating a custom build of the Mapbox Maps SDK for macOS into your application - -This document explains how to build a development version of the Mapbox Maps SDK for macOS from source and integrate it into your own Cocoa application. This process is for advanced developers who want to get a glimpse of the SDK’s development between releases. To use a production-ready version of the SDK, see the [Mapbox Maps SDK for macOS homepage](https://mapbox.github.io/mapbox-gl-native/macos/). - -### Requirements - -The Mapbox Maps SDK for macOS requires the macOS 10.11.0 SDK (or above) and Xcode 9.0 (or above). To use this SDK with Xcode 7.3.1, download and use a symbols build from the [releases](https://github.com/mapbox/mapbox-gl-native-ios/releases) page. - -Before building, follow these steps to install prerequisites: - -1. Install [Xcode](https://developer.apple.com/xcode/) -1. Launch Xcode and install any updates -1. Install [Homebrew](http://brew.sh) -1. Install [Node.js](https://nodejs.org/), [CMake](https://cmake.org/), [ccache](https://ccache.samba.org), and [pkg-config](https://formulae.brew.sh/formula/pkg-config-wrapper#default), [glfw](https://formulae.brew.sh/formula/glfw): - - ```bash - brew list node || brew install node - brew list cmake || brew install cmake - brew list ccache || brew install ccache - brew list pkg-config || brew install pkg-config - brew list glfw || brew install glfw - - # To install the CMake documentation - brew list cmake-docs || brew install cmake-docs - ``` -1. Install [xcpretty](https://github.com/supermarin/xcpretty) (optional, used for prettifying command line builds): - ``` - [sudo] gem install xcpretty - ``` -1. Install [jazzy](https://github.com/realm/jazzy) for generating API documentation: - ``` - [sudo] gem install jazzy - ``` - -### Building the SDK from source - -To build the SDK from source: - -1. Clone the git repository: - ```bash - git clone https://github.com/maplibre/maplibre-native.git - cd maplibre-native - ``` - Note that this repository uses Git submodules. They'll be automatically checked out when you first run a `make` command, - but are not updated automatically. We recommended that you run `git submodule update` after pulling down new commits to - this repository. -1. Run: - ``` - make xpackage - ``` - This produces a `Mapbox.framework` in the `build/macos/pkg/` folder. - -### Installation - -1. Open the project editor, select your application target, then go to the General tab. Drag Mapbox.framework into the “Embedded Binaries” section. (Don’t drag it into the “Linked Frameworks and Libraries” section; Xcode will add it there automatically.) In the sheet that appears, make sure “Copy items if needed” is checked, then click Finish. - -1. Some vector tiles servers require a API key. In the project editor, select the application target, then go to the Info tab. Under the “Custom macOS Application Target Properties”” section, set `MLNApiKey` to your api key. - -## Usage - -In a storyboard or XIB: - -1. Add a view to your view controller or window. (Drag Custom View from the Object library to the View Controller scene on the Interface Builder canvas. In a XIB, drag it instead to the window on the canvas.) -2. In the Identity inspector, set the view’s custom class to `MLNMapView`. -3. MLNMapView needs to be layer-backed: - * You can make the window layer-backed by selecting the window and checking Full Size Content View in the Attributes inspector. This allows the map view to underlap the title bar and toolbar. - * Alternatively, if you don’t want the entire window to be layer-backed, you can make just the map view layer-backed by selecting it and checking its entry under the View Effects inspector’s Core Animation Layer section. -4. Add a map feedback item to your Help menu. (Drag Menu Item from the Object library into Main Menu ‣ Help ‣ Menu.) Title it “Improve This Map” or similar, and connect it to the `giveFeedback:` action of First Responder. - -If you need to manipulate the map view programmatically: - -1. Switch to the Assistant Editor. -1. Import the `Mapbox` module. -1. Connect the map view to a new outlet in your view controller class. (Control-drag from the map view in Interface Builder to a valid location in your view controller implementation.) The resulting outlet declaration should look something like this: - -```objc -// ViewController.m -@import Mapbox; - -@interface ViewController : NSViewController - -@property (strong) IBOutlet MLNMapView *mapView; - -@end -``` - -```swift -// ViewController.swift -import Mapbox - -class ViewController: NSViewController { - @IBOutlet var mapView: MLNMapView! -} -``` - -```applescript --- AppDelegate.applescript -script AppDelegate - property parent : class "NSObject" - property theMapView : missing value -end script -``` - -For further instructions, consult the [macOS SDK documentation](https://mapbox.github.io/mapbox-gl-native/macos/) or run `make xdocument` to generate the documentation. The [Mapbox Maps SDK for iOS](https://www.mapbox.com/ios-sdk/)’s [API documentation](https://www.mapbox.com/ios-sdk/) and [online examples](https://www.mapbox.com/ios-sdk/examples/) apply to the Mapbox Maps SDK for macOS with few differences, mostly around unimplemented features like user location tracking. diff --git a/platform/macos/README.md b/platform/macos/README.md index c9a38a461..d4b27fe0e 100644 --- a/platform/macos/README.md +++ b/platform/macos/README.md @@ -1,25 +1,34 @@ # MapLibre Native for macOS -> **Note** -> https://github.com/maplibre/maplibre-native/pull/995 introduced OpenGL ES 3.0 shaders which are not supported by macOS without workarounds. That means that while the [Metal backend implementation](https://github.com/maplibre/maplibre-native/blob/main/design-proposals/2022-11-29-metal-port.md) is underway, builds from the `main` branch will not work on macOS. Use the `opengl-2` branch in the meantime. +[![GitHub Action build status](https://github.com/maplibre/maplibre-native/workflows/macos-ci/badge.svg)](https://github.com/maplibre/maplibre-native/actions/workflows/macos-ci.yml) -[![GitHub Action build status](https://github.com/maplibre/maplibre-native/workflows/macos-ci/badge.svg)](https://github.com/maplibre/maplibre-native/actions/workflows/macos-ci.yml) [![GitHub Action build status](https://github.com/maplibre/maplibre-native/workflows/macos-release/badge.svg)](https://github.com/maplibre/maplibre-native/actions/workflows/macos-release.yml) +Clone the repo: -Put interactive, scalable world maps into your native Cocoa application with MapLibre Native for macOS. +```sh +git clone --recurse-submodules git@github.com:maplibre/maplibre-native.git +``` -* High-performance OpenGL rendering and multitouch gestures keep your users happy. -* A well-designed, fully documented API helps you stay productive. -* Develop across [multiple platforms](../../README.md), including [iOS](../ios/README.md), using the same styles and similar APIs. +Install needed tooling and dependencies with Homebrew. See [macos-ci.yml](https://github.com/maplibre/maplibre-native/blob/main/.github/workflows/macos-ci.yml) for the most up-to-date dependencies. -![](docs/img/screenshot.jpg) +Optionally configure Bazel: -MapLibre Native for macOS is compatible with macOS 10.10.0 and above for Cocoa applications developed in Objective-C, Swift, Interface Builder, or AppleScript. For hybrid applications, consider [MapLibre GL JS]([https://github.com/mapbox/mapbox-gl-js/](https://github.com/maplibre/maplibre-gl-js)). +```sh +cp platform/darwin/bazel/example_config.bzl platform/darwin/bazel/config.bzl +``` -## Contributing +Create and open Xcode project: -* [Build the MapLibre Native for macOS from source](INSTALL.md) -* [Contribute to MapLibre Native for macOS](CONTRIBUTING.md) -* [MapLibre Style Spec](https://maplibre.org/maplibre-style-spec/) -* [Mapbox Vector Tile Specification](https://www.mapbox.com/developers/vector-tiles/) +```sh +bazel run //platform/macos:xcodeproj --@rules_xcodeproj//xcodeproj:extra_common_flags="--//:renderer=metal +xed platform/macos/MapLibre.xcodeproj +``` -The MapLibre Organization does not officially support the macOS to the same extent as iOS (see [project tiers](https://github.com/maplibre/maplibre/blob/main/PROJECT_TIERS.md)); however, bug reports and pull requests are certainly welcome. +Build and run AppKit sample app directly from the command line: + +```sh +bazel run //platform/macos/app:macos_app --//:renderer=metal +``` + +--- + +The MapLibre Organization does not officially support the macOS to the same extent as iOS (see [project tiers](https://github.com/maplibre/maplibre/blob/main/PROJECT_TIERS.md)). However, bug reports and pull requests are certainly welcome. diff --git a/platform/macos/WorkspaceSettings.xcsettings b/platform/macos/WorkspaceSettings.xcsettings deleted file mode 100644 index 88a45c15c..000000000 --- a/platform/macos/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,22 +0,0 @@ - - - - - BuildLocationStyle - CustomLocation - CustomBuildIntermediatesPath - ../../build/macos - CustomBuildLocationType - RelativeToWorkspace - CustomBuildProductsPath - ../../build/macos - DerivedDataCustomLocation - ../../build/macos - DerivedDataLocationStyle - WorkspaceRelativePath - IssueFilterStyle - ShowActiveSchemeOnly - LiveSourceIssuesEnabled - - - diff --git a/platform/macos/app/AppDelegate.h b/platform/macos/app/AppDelegate.h index 867ac7165..e962282f3 100644 --- a/platform/macos/app/AppDelegate.h +++ b/platform/macos/app/AppDelegate.h @@ -1,4 +1,4 @@ -#import +#import extern NSString * const MLNApiKeyDefaultsKey; diff --git a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon128x128.png b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon128x128.png index fbf35e5d6122a524d9e784d86eea95732b0ea7ff..c6dbc37680926e5751d664da4db63abf379c2d22 100644 GIT binary patch delta 3717 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 literal 8183 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 Wzb98~4dB%;psuW=RHtb3>i+=M9Y(bP literal 17649 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 E0MYpwbN~PV diff --git a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon16x16.png b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon16x16.png index 361198da923819971262b3f61076db85303cefa3..13bfd11bf3bafcc82a82b6f3c9f270bef00fe8a3 100644 GIT binary patch delta 468 zcmV;_0W1EM2ayDjBoYa5NLh0L005By005BzR0U`mkwzzf0iH=jK~y-6g_6Ne6Hyd~ zze8p#IwBo~olF~~F&a%=5P1Wa5^G{y`3~v}$aCO=(5Nrq!U#28L1+xc1!Ey1!9hA| zGPg`81IGmo;B?0RtCO7neD^;&S5%d$r*A8Yz7Qw_7XMeG&=g^AV}7&!fsqs~7tp-Mw?0Qqe_G0Njb|Y>L6xGID0Va`~h-olYO1?_|F369fUJqRYj9;b8zAr$7({_&@x?3651+s?{;Z z;5Y>wr$87QmTGm5RR;qAqA23S#~N`Q_v&S$D9W?S!;YIIXc1^lV{5Z+`BQ# z{hJp6cyAfjTR|=$$pTH69iBay1mNILlm|#Gg{Hu*bm!gjHebH|2B6`!vtugjmI!kw zi|O7s&VI$jDL1~EUqvq>}Z~g*>WT+N8JVJ8-0000< KMNUMnLSTX~U)6*F delta 859 zcmV-h1El1oV1@FA- zMZGAN?PBvr@MCL5$3_tm(P7=q($T`|7Eo!35Uj?YAsBN)`W3V-r)|=BV%~FhQKCoP zbN9Zy&yWA}ynllKQ7jg#EiW(s(rh+=djUXI)s&(rf3&o;WIlXLj0Z`QJT8}O&?Y!` zK9XL~$uk-S0DnEzwl`Wft>soHGMP-TD2g*50pjs^>*he<&aFT53wQo;e5z@L8sU`c zT36d@{F{STXG)ek8yg!Rz6D5<Da>~pwX8|i*A^~Zr^1;lubvi}&bklSHvs_C2{$R_GF4SoUr?Us z{mI#Pna#YW27KjP3I(lr@mg+{!BQQavbw{O71?GpZ{Uc|06?DA!ExLc$`~UA?+W+2 z^Dil-Wjs$!zkFXU2I>^)=WjXg^Uo>*i%Yo~rW0U{X~z>8rILI3 zT>j44!1J_>F{Ylq%8I3XUp=6zs!Y@A^vI3|Yi((?Vv)SJTqYCn?D^8OlRxB@Ckeq1 z036ZTwg$nSOeRAF0MhC7$avK1`E9&XG@Dpqt1myt^V*x`70#TRx4P9L<&Dte`<2IS zE%}tk<2hmifJh{A>Z?P4hwjA_tEs7^!~6L8`^#ihvp*|$?zdKtgvO7qcd;%qHa50r zcQANkcr>?g`)*}ZsjQMXqO-5}EkEttXRUtl;C^>UN5_2tx-l;u8X5|;x3{0Kta7$a zO1XJ?RtEt1>xnLIwbd;vOB10`sK2MDCjme+PEZm7U>+D4s0#)zg9ijb@B+}Y*=#Bt l4v+Tr_00h&0MJW@{{TvYL(dTFCDi}`002ovPDHLkV1fYWpi2M% diff --git a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon16x16@2x.png b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon16x16@2x.png index f6bf78a4b4a79b6d44a0504ce190b1ced3b4f2dd..d9bbd57f2e6b8a34d05966fd1523c1b2a4ca0ddb 100644 GIT binary patch delta 936 zcmV;Z16Tan58(%pBoYa5NLh0L00ANZ00ANapazvXkwzzf18zw~K~z|Uy_d~z6Gs@v zf3v$7r*`5vYTDRAwWEflKqFezB9wmJ=%F{HR9v9kfzpbe`xjI~5v{78kcv2za_TJ- zmns4kQD_o>#ZVHr!Rx3cai!Mr$J#p_9NUCV@NDYvoMv{Od7o!y-kI4EQc4;aJN3h> zRa=}Bh@(J%1n|-slz=}ZV#=;*lj$qR78(trVc@_g*Um~QzXCiR65R?FDLJ3IJn?nY zz=4xjKb45d9Tt8H@=WskkG~P4C$0`@Fwf49{ApBl&E9Vaqrf=LNn>Dd*8)-{SGspDwO{CpQ!e~@!Wz`G>0)b}v(dsHIE2|F9 zYCg~3E03D>-at?14Cq>mRw@>^^&Oo8K)+`5uy$FPZBLoEdf~`JFMs?w9m7kvCON^ES@BlzUTNJPb5hsQ*Oh#Hvlky zJ3B`|H_%8l%d#jG3f%o|W?SN*xC=Hzxm;#uHb%KzcHD?NZXn?E z(Bs?1U(5Au@9}vkm8(>$YCj_X%Yd#6u3z{FpLb)|L?+L~m)BhzaGe9Ycj*psfWGeC zuEiS$w!Yq6z~v8V14RS)6Bt$Pu~w>o^4(70?c|R`n&2Fgqd*kJH-iF-KnCQL)a}XCrQ?}K!((|xLCg8n@R0xu0000< KMNUMnLSTZ4aK60& delta 1959 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 Wzb98~4dB%;psuW=RHtb3>i+=M9Y(bP literal 17649 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 E0MYpwbN~PV diff --git a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon256x256@2x.png b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon256x256@2x.png index e7c0271490e03dea3af6c3fee28c4d96e7f76c8c..596cf9252b0233ddacb80d95a5c1a303ccdfcaa4 100644 GIT binary patch literal 16679 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 I?pwY7f5+r+Bme*a literal 38577 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

PsMkArFS;WNDx1U7 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 KMNUMnLSTX}3cjQO delta 1678 zcmV;9266e}2f_`IBq9WJLP=Bz2nYy#2xN!=000SaNLh0L00J2R00J2S!KW#xkv1oP z20uweK~z|U<(GeK8)q5Ezjx=0?Q{Gqb{ywNv(%2$q-mh24gF&sktS4CA`A(F1eDUz zma0H2V1ZVuMmJgkOVutQRU@#%U@Hh#AyKszs34)B3aRTlK^-Ttb8!-q*yq}geNKJ8 z`p$R!kvTm(c9s_YK;kRiAAaw7pYP{?eeS)-?*aesBA#SYAP{gH42DevL9_u-RaKo8 z1Yy3XrziGbrPC@D3Ux)J(F=kgOsZ8R2*N}p61flz20J&J_X8_1K0e;)bUJ_NbUODD z1ffgw!r~o&Hab^=TYO=Ep6~8(bV-twoST~)@cDeBj}0(0GxL0F zYwJ%XNfu81IJ@+ZDYIui<8pn(w>FM`^ zwe6LR8NDoi^YhE0XL@bkni|>!0EI#!9|-ZGbHAcp(WKF(jo;b%fE^ltw0UE(*c)!Q z`%qPYP$<;Z-rjz1f=x{wKWFKxWNtP}**DH8yxnH1xEUo$7EWK}7v34Sc4)^hp2$pW z@!EW|v$Ne^uQya2CrehwFh>Z2&<(#uTPh_7RQ1)t{DRh8RiXa;N^-3Do2GTlnPb*X zjgH)X?aWs%Qx=jWb$Y#j{)l$G1i)&w_NUU>XgF$Yu4Mn*GyJ&cDeD&P*xP?xn*8-m zlQ)@`vKk2Ei33szKsaJ*&SZqB#bW8N2;leo8)|E7+wTT)727F6K>gBlj7>WhV6)sW z{y>=t=!}Cy>2Qjdh2p*L4y%u*l)N_n?wAlWo6Q};U~qL~Yb)S?1%R2wlA^52(3I$a;a{9ji_$xIHvTAApfcb>IXJAl9@o`WTrFT2>No@{x5d;82mgUu+vg$@r z)FuFkCZMkb(6=KWe-ulQ7fw3bKej#fPZe?w04O3CJ@hGI_RF8C>n_F>3ZS$(xWr29 z2GF(!K$0W^0EjAoy|J^6EGdoIL>XT`=Gxx(;Y5Ta%(zG9t**au!v~P{yB~t>2~{<1<q97MwSRp_%Jr#fR!1oX0IH&pWMWBr7@PzC_8x7Yj?}iOYE5G` zz;ExDGm4_fV`F2NwBzM_o?=<{H(syzvnS4{!gqsa?|Q4=sCqk>*;fYb?JUdw&gb*( z15ha5EAKjmt5>gnR}{t6nd2s>%P!u>e<+tdm;By;F;l%Lic8n7U3*b$4q)xhzIpRz zYR8TpQ{7v)e(vKRl^=}0E9J8y%{;03Yo|z&Vf5DP*RLNqc<|ug%VVk?$>`D1(XZ{^ zz5ARb$>K{Fv-j^znk$|Ss%hsIo;`EiTu;+Fk_PW1Kly#_$qC;$NHuUxtEiT?in z*9``LLtT(vnmB)%His9DE$bP3nsW;;?8`5A`5c|1D5h@QxN&4)VBk7{hn3<#=vYpl zJbAL?@ZrO!Js!`eNs`oMG6MImKN|~2Kt$pzy}i+)*RVOfbw}19=%0{_phq$`hQmc Y1_=7Ymnqb0i~s-t07*qoM6N<$f(Il=ssI20 diff --git a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon32x32@2x.png b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon32x32@2x.png index 5035f60941fea758ef8bcefb6a383bcbc2289481..43efec54e530a5c683770804e7accfb458326184 100644 GIT binary patch delta 1876 zcmV-a2dntO9)=H)BoYa5NLh0L00Kn-00Kn;tmX53kwzzf2NOv|K~#90<(o@PT-O=L zf9KvAGcRM_gvVeLDFiUciQ~FaQw~drUS=iqBwP?F*8%0&CR%+K(q_(16v@09C zQY9yqYN=`#joVdXYGVd4!x#qQVxGe*!*hUnoGvgGhPjs+IQLHF{&sV}bI$jj|2_B2 zc?u~dX4GDPx#n`Ed~XTKdkEPqCDj7T0jFt3`-w}42*C(aJV44@F~`#FM^`Vem}L@1 z0vx$`!yCu_0mvT#`Bp@1If6MPA30h1P1p4cOKFp&6QJSpC*Kq)c@3zrI7GV`M{=q6 z#<{<5HE3HOG+g}nyCNn3%Cl2>fC>bkHeR^-Vc#ZP_+^4GS8W-~&F?+07Y z{`SAWHw0+B@bMW0e*+x33eF~yLWp;Rt!F=lCjzW@c&;$dRblPBCtgz`=oXyY z<^p@=Yp)!|?RM>$E*_6FH#bK#I!8Pn-!Z)_FOOHhehi_w!%{lzt*WY|qT)HzG&8e* zv-I?Yn21D3rBVP0O;BD|M$_R2N=r%%^OlyB;IH=ccz9S@%t{4lsDIJa-q#qv7?6e>6sZ87Z-OGV>*;hh935X z4Q;xvbMoZtG}OO{u5EX#X&QBZbuV!0)ElO~e4mMr-JoZL`}E8VBcmfKLsq{Da`#?4-~QGaoF;EEFE5YU zLx-{|H<3ut_OEt!*v!rvMQF zFrw{Pz7re_h7bsvn;J9DBjtLtxAM(zU}+23peNW%us4)(`i?-SEtLnG1c3FWuJFL% z&gpuB^oIv*h-e+#1OT{yALt|!nKZNy41P&4n0ZT4fvp0_l;n%HyJ;6lqR}}5fy~zp zRbi_Du)aEUx4q-3XNhEz&+oL6NG9zL$9@3-Mn}h<`V_+90p{n`kMc4hCj!9w07uI8 zCG$|IFIQpY?nKzk>@4^0-)DJo*|PorOvvexxWU0kxpWWMC_uh{cOU*z^9_yp*?gzD2_KuwitV1CmJjlhBQGzuWvU?bX@FOE=#F(Tb$f zw(zWFRHVeE&2N5#w3DIU*7KivT<#Zyls^Nky|`m7QHl7e$L+35S9vhGJ-$Khm1{0f z%J(KxzAvFS8K`FcmdQT#@$QK=AOeg?DZ4dIyR~+}`;TzT+s22Ef&Tz--+{Rm5Zs*r O0000@ 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 I?pwY7f5+r+Bme*a literal 38577 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

PsMkArFS;WNDx1U7 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%0Dj(Ej^*TAcnnXVjdp3t%dcrEwodPL;O$W^wN`= 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�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%0AF_{@21aVZgG^XdWv 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 Tc0OT|d?%G#nu>)t?gjlH#+^=& diff --git a/platform/macos/app/Assets.xcassets/Contents.json b/platform/macos/app/Assets.xcassets/Contents.json index da4a164c9..73c00596a 100644 --- a/platform/macos/app/Assets.xcassets/Contents.json +++ b/platform/macos/app/Assets.xcassets/Contents.json @@ -1,6 +1,6 @@ { "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/platform/macos/app/BUILD.bazel b/platform/macos/app/BUILD.bazel new file mode 100644 index 000000000..459065e4a --- /dev/null +++ b/platform/macos/app/BUILD.bazel @@ -0,0 +1,32 @@ +load("@build_bazel_rules_apple//apple:macos.bzl", "macos_application") + +objc_library( + name = "macos_app_lib", + srcs = glob([ + "*.h", + "*.m", + ]), + enable_modules = True, + deps = [ + "//platform:macos-objcpp", + ], +) + +macos_application( + name = "macos_app", + bundle_id = "org.maplibre.macosapp", + infoplists = [ + "Info.plist", + ], + minimum_os_version = "11.0", + resources = glob([ + "*.lproj/**", + "Assets.xcassets/**", + ]), + visibility = [ + "@rules_xcodeproj//xcodeproj:generated", + ], + deps = [ + ":macos_app_lib", + ], +) diff --git a/platform/macos/app/DroppedPinAnnotation.h b/platform/macos/app/DroppedPinAnnotation.h index c5a56bb54..04642426d 100644 --- a/platform/macos/app/DroppedPinAnnotation.h +++ b/platform/macos/app/DroppedPinAnnotation.h @@ -1,4 +1,4 @@ -#import +#import NS_ASSUME_NONNULL_BEGIN diff --git a/platform/macos/app/DroppedPinAnnotation.m b/platform/macos/app/DroppedPinAnnotation.m index a88843174..209439c94 100644 --- a/platform/macos/app/DroppedPinAnnotation.m +++ b/platform/macos/app/DroppedPinAnnotation.m @@ -3,7 +3,7 @@ #import "LocationCoordinate2DTransformer.h" #import "TimeIntervalTransformer.h" -#import +#import static MLNCoordinateFormatter *DroppedPinCoordinateFormatter; diff --git a/platform/macos/app/LocationCoordinate2DTransformer.m b/platform/macos/app/LocationCoordinate2DTransformer.m index 3bdccbe13..c8fded1f1 100644 --- a/platform/macos/app/LocationCoordinate2DTransformer.m +++ b/platform/macos/app/LocationCoordinate2DTransformer.m @@ -1,6 +1,6 @@ #import "LocationCoordinate2DTransformer.h" -#import +#import @implementation LocationCoordinate2DTransformer { MLNCoordinateFormatter *_coordinateFormatter; diff --git a/platform/macos/app/MLNStyle+MBXAdditions.h b/platform/macos/app/MLNStyle+MBXAdditions.h index e39a3dcb7..1c86475f6 100644 --- a/platform/macos/app/MLNStyle+MBXAdditions.h +++ b/platform/macos/app/MLNStyle+MBXAdditions.h @@ -1,4 +1,4 @@ -#import +#import @interface MLNStyle (MBXAdditions) diff --git a/platform/macos/app/MapDocument.m b/platform/macos/app/MapDocument.m index 4cafdc46e..71ba84002 100644 --- a/platform/macos/app/MapDocument.m +++ b/platform/macos/app/MapDocument.m @@ -1,14 +1,14 @@ #import "MapDocument.h" #import "AppDelegate.h" -#import "CustomStyleLayerExample.h" +// #import "CustomStyleLayerExample.h" #import "DroppedPinAnnotation.h" #import "MLNMapsnapshotter.h" #import "MLNStyle+MBXAdditions.h" #import "MLNVectorTileSource_Private.h" -#import +#import static NSString * const MLNDroppedPinAnnotationImageIdentifier = @"dropped"; @@ -778,36 +778,36 @@ NSArray> *MBXFlattenedShapes(NSArray> *sha } } -- (IBAction)insertCustomStyleLayer:(id)sender { - [self.undoManager registerUndoWithTarget:self handler:^(id _Nonnull target) { - [self removeCustomStyleLayer:sender]; - }]; +// - (IBAction)insertCustomStyleLayer:(id)sender { +// [self.undoManager registerUndoWithTarget:self handler:^(id _Nonnull target) { +// [self removeCustomStyleLayer:sender]; +// }]; - if (!self.undoManager.isUndoing) { - [self.undoManager setActionName:@"Add Lime Green Layer"]; - } +// if (!self.undoManager.isUndoing) { +// [self.undoManager setActionName:@"Add Lime Green Layer"]; +// } - CustomStyleLayerExample *layer = [[CustomStyleLayerExample alloc] initWithIdentifier:@"mbx-custom"]; - MLNStyleLayer *houseNumberLayer = [self.mapView.style layerWithIdentifier:@"housenum-label"]; - if (houseNumberLayer) { - [self.mapView.style insertLayer:layer belowLayer:houseNumberLayer]; - } else { - [self.mapView.style addLayer:layer]; - } -} +// CustomStyleLayerExample *layer = [[CustomStyleLayerExample alloc] initWithIdentifier:@"mbx-custom"]; +// MLNStyleLayer *houseNumberLayer = [self.mapView.style layerWithIdentifier:@"housenum-label"]; +// if (houseNumberLayer) { +// [self.mapView.style insertLayer:layer belowLayer:houseNumberLayer]; +// } else { +// [self.mapView.style addLayer:layer]; +// } +// } -- (IBAction)removeCustomStyleLayer:(id)sender { - [self.undoManager registerUndoWithTarget:self handler:^(id _Nonnull target) { - [self insertCustomStyleLayer:sender]; - }]; +// - (IBAction)removeCustomStyleLayer:(id)sender { +// [self.undoManager registerUndoWithTarget:self handler:^(id _Nonnull target) { +// [self insertCustomStyleLayer:sender]; +// }]; - if (!self.undoManager.isUndoing) { - [self.undoManager setActionName:@"Delete Lime Green Layer"]; - } +// if (!self.undoManager.isUndoing) { +// [self.undoManager setActionName:@"Delete Lime Green Layer"]; +// } - MLNStyleLayer *layer = [self.mapView.style layerWithIdentifier:@"mbx-custom"]; - [self.mapView.style removeLayer:layer]; -} +// MLNStyleLayer *layer = [self.mapView.style layerWithIdentifier:@"mbx-custom"]; +// [self.mapView.style removeLayer:layer]; +// } - (IBAction)insertGraticuleLayer:(id)sender { [self.undoManager registerUndoWithTarget:self handler:^(id _Nonnull target) { diff --git a/platform/macos/app/StyleLayerIconTransformer.m b/platform/macos/app/StyleLayerIconTransformer.m index bbf6d34d3..3fc02919a 100644 --- a/platform/macos/app/StyleLayerIconTransformer.m +++ b/platform/macos/app/StyleLayerIconTransformer.m @@ -1,6 +1,6 @@ #import "StyleLayerIconTransformer.h" -#import +#import @implementation StyleLayerIconTransformer diff --git a/platform/macos/bazel/files.bzl b/platform/macos/bazel/files.bzl index 7d7ec4114..889fabb1b 100644 --- a/platform/macos/bazel/files.bzl +++ b/platform/macos/bazel/files.bzl @@ -3,15 +3,26 @@ MLN_MACOS_PUBLIC_OBJCPP_SOURCE = [ "src/MLNMapView+IBAdditions.mm", "src/MLNMapView+Impl.mm", "src/MLNMapView.mm", - "src/MLNOpenGLLayer.mm", "src/NSColor+MLNAdditions.mm", "src/NSImage+MLNAdditions.mm", ] + MLN_MACOS_PUBLIC_OBJCPP_OPENGL_SOURCE = [ "src/MLNMapView+OpenGL.mm", + "src/MLNOpenGLLayer.mm", ] + +MLN_MACOS_PUBLIC_METAL_HEADERS = [ + "src/MLNMapView+Metal.h", +] + MLN_MACOS_PUBLIC_OBJCPP_METAL_SOURCE = [ - "src/MLNMapView+OpenGL.mm", + "src/MLNMapView+Metal.mm", +] + +MLN_MACOS_PUBLIC_OPENGL_HEADERS = [ + "src/MLNOpenGLLayer.h", + "src/MLNMapView+OpenGL.h", ] MLN_MACOS_PUBLIC_OBJC_SOURCE = [ @@ -22,18 +33,16 @@ MLN_MACOS_PUBLIC_OBJC_SOURCE = [ MLN_MACOS_PUBLIC_HEADERS = [ "src/MLNAnnotationImage.h", + "src/NSImage+MLNAdditions.h", "src/NSColor+MLNAdditions.h", "src/NSProcessInfo+MLNAdditions.h", "src/MLNCompassCell.h", "src/MLNAttributionButton.h", "src/MLNMapView+Impl.h", "src/MLNMapView+IBAdditions.h", - "src/MLNMapView+OpenGL.h", "src/MLNMapViewDelegate.h", "src/MLNMapView.h", "src/Mapbox.h", - "src/MLNOpenGLLayer.h", - "src/NSImage+MLNAdditions.h", ] MLN_MACOS_PRIVATE_HEADERS = [ diff --git a/platform/macos/jazzy.yml b/platform/macos/jazzy.yml deleted file mode 100644 index 176f78a8b..000000000 --- a/platform/macos/jazzy.yml +++ /dev/null @@ -1,119 +0,0 @@ -module: Mapbox -author: Mapbox -author_url: https://www.mapbox.com/ -github_url: https://github.com/mapbox/mapbox-gl-native-ios -dash_url: https://mapbox.github.io/mapbox-gl-native/macos/docsets/Mapbox.xml -copyright: '© 2014–2019 [Mapbox](https://www.mapbox.com/). See [license](https://github.com/mapbox/mapbox-gl-native-ios/blob/master/LICENSE.md) for more details.' - -head: | - - -objc: Yes -skip_undocumented: Yes -hide_documentation_coverage: Yes -umbrella_header: src/Mapbox.h -framework_root: ../darwin/src - -custom_categories: - - name: Appendices - children: - - Working with GeoJSON Data - - Predicates and Expressions - - For Style Authors - - Migrating to Expressions - - Tile URL Templates - - Customizing Fonts - - Info.plist Keys - - name: Maps - children: - - MLNSettings - - MLNMapCamera - - MLNMapView - - MLNMapViewDelegate - - MLNMapSnapshot - - MLNMapSnapshotOptions - - MLNMapSnapshotter - - name: Shapes and Annotations - children: - - MLNAnnotation - - MLNAnnotationImage - - MLNOverlay - - MLNShape - - MLNMultiPoint - - MLNPointAnnotation - - MLNPointCollection - - MLNPolygon - - MLNPolyline - - MLNMultiPolygon - - MLNMultiPolyline - - MLNShapeCollection - - name: Styling the Map - children: - - MLNStyle - - MLNLight - - name: Content Primitives - children: - - MLNFeature - - MLNPointFeature - - MLNPolygonFeature - - MLNPolylineFeature - - MLNMultiPolygonFeature - - MLNMultiPolylineFeature - - MLNPointCollectionFeature - - MLNShapeCollectionFeature - - name: Content Sources - children: - - MLNSource - - MLNShapeSource - - MLNComputedShapeSource - - MLNTileSource - - MLNRasterTileSource - - MLNRasterDEMSource - - MLNVectorTileSource - - MLNImageSource - - name: Style Layers - children: - - MLNStyleLayer - - MLNForegroundStyleLayer - - MLNBackgroundStyleLayer - - MLNRasterStyleLayer - - MLNVectorStyleLayer - - MLNCircleStyleLayer - - MLNFillStyleLayer - - MLNFillExtrusionStyleLayer - - MLNHeatmapStyleLayer - - MLNHillshadeStyleLayer - - MLNLineStyleLayer - - MLNSymbolStyleLayer - - name: Offline Maps - children: - - MLNOfflineRegion - - MLNOfflineStorage - - MLNOfflinePack - - MLNOfflinePackProgress - - MLNOfflinePackState - - MLNTilePyramidOfflineRegion - - MLNShapeOfflineRegion - - name: Geometry - children: - - MLNCoordinateBounds - - MLNCoordinateBoundsEqualToCoordinateBounds - - MLNCoordinateBoundsGetCoordinateSpan - - MLNCoordinateBoundsIntersectsCoordinateBounds - - MLNCoordinateBoundsIsEmpty - - MLNCoordinateBoundsMake - - MLNCoordinateBoundsOffset - - MLNCoordinateInCoordinateBounds - - MLNCoordinateSpan - - MLNCoordinateSpanEqualToCoordinateSpan - - MLNCoordinateSpanMake - - MLNCoordinateSpanZero - - MLNDegreesFromRadians - - MLNRadiansFromDegrees - - MLNStringFromCoordinateBounds - - name: Formatters - children: - - MLNClockDirectionFormatter - - MLNCompassDirectionFormatter - - MLNCoordinateFormatter - - MLNDistanceFormatter diff --git a/platform/macos/macos.xcconfig b/platform/macos/macos.xcconfig deleted file mode 100644 index c917dee7e..000000000 --- a/platform/macos/macos.xcconfig +++ /dev/null @@ -1 +0,0 @@ -#include "../darwin/darwin.xcconfig" diff --git a/platform/macos/macos.xcodeproj/project.pbxproj b/platform/macos/macos.xcodeproj/project.pbxproj deleted file mode 100644 index 3dfe1a1a7..000000000 --- a/platform/macos/macos.xcodeproj/project.pbxproj +++ /dev/null @@ -1,2341 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 0721493F1EE200E900085505 /* MLNImageSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 07A019EB1ED662D800ACD43E /* MLNImageSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 076171C5213A0DC200668A35 /* MLNMapViewTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 076171C4213A0DC200668A35 /* MLNMapViewTests.m */; }; - 07A019EF1ED665CD00ACD43E /* MLNImageSource.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07A019EC1ED662D800ACD43E /* MLNImageSource.mm */; }; - 07A240941F675674002C8210 /* MLNComputedShapeSourceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 07A240921F67566F002C8210 /* MLNComputedShapeSourceTests.m */; }; - 07BA4CAC1EE21887004528F5 /* MLNImageSourceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 07BA4CAB1EE21887004528F5 /* MLNImageSourceTests.m */; }; - 07D9474D1F67441B00E37934 /* MLNComputedShapeSource_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 07D947471F6741F500E37934 /* MLNComputedShapeSource_Private.h */; }; - 07F8E2F71F674C8800F794BB /* MLNComputedShapeSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 07F8E2F41F674C8000F794BB /* MLNComputedShapeSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 07F8E2F81F674C9000F794BB /* MLNComputedShapeSource.mm in Sources */ = {isa = PBXBuildFile; fileRef = 07F8E2F51F674C8000F794BB /* MLNComputedShapeSource.mm */; }; - 170A82BF201BDD1B00943087 /* MLNHeatmapStyleLayerTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 170A82BE201BDD1B00943087 /* MLNHeatmapStyleLayerTests.mm */; }; - 170A82C4201FB6EC00943087 /* MLNHeatmapColorTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 170A82C2201FAFF800943087 /* MLNHeatmapColorTests.mm */; }; - 1753ED401E53CE6100A9FD90 /* MLNConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 1753ED3F1E53CE5200A9FD90 /* MLNConversion.h */; }; - 1F2B94C3221E22E600210640 /* MLNNetworkConfiguration_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F2B94C2221E22E500210640 /* MLNNetworkConfiguration_Private.h */; }; - 1F7454A31ECFB00300021D39 /* MLNLight_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F7454A01ECFB00300021D39 /* MLNLight_Private.h */; }; - 1F7454A41ECFB00300021D39 /* MLNLight.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F7454A11ECFB00300021D39 /* MLNLight.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F7454A51ECFB00300021D39 /* MLNLight.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1F7454A21ECFB00300021D39 /* MLNLight.mm */; }; - 1F7454AB1ED1DDBD00021D39 /* MLNLightTest.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1F7454AA1ED1DDBD00021D39 /* MLNLightTest.mm */; }; - 1F8A59FA21653483004DFE75 /* sideload_sat.db in Resources */ = {isa = PBXBuildFile; fileRef = 1F8A59F921653483004DFE75 /* sideload_sat.db */; }; - 1F8A5A04216D4696004DFE75 /* MLNLoggingConfiguration_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F8A5A01216D4695004DFE75 /* MLNLoggingConfiguration_Private.h */; }; - 1F8A5A06216D4696004DFE75 /* MLNLoggingConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F8A5A03216D4696004DFE75 /* MLNLoggingConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F95931B1E6DE2B600D5B294 /* MLNNSDateAdditionsTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1F95931A1E6DE2B600D5B294 /* MLNNSDateAdditionsTests.mm */; }; - 1F9EF4061FBA1B0E0063FBB0 /* mapbox_helmet.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 1F9EF4051FBA1B0D0063FBB0 /* mapbox_helmet.pdf */; }; - 1FC481852098F323000D09B4 /* NSPredicate+MLNPrivateAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FC481842098F323000D09B4 /* NSPredicate+MLNPrivateAdditions.h */; }; - 1FF4858D2237235300F19727 /* MLNAttributedExpression.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FF4858B2237235200F19727 /* MLNAttributedExpression.m */; }; - 1FF4858E2237235300F19727 /* MLNAttributedExpression.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FF4858C2237235200F19727 /* MLNAttributedExpression.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3508EC641D749D39009B0EE4 /* NSExpression+MLNAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3508EC621D749D39009B0EE4 /* NSExpression+MLNAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3508EC651D749D39009B0EE4 /* NSExpression+MLNAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3508EC631D749D39009B0EE4 /* NSExpression+MLNAdditions.mm */; }; - 3526EABD1DF9B19800006B43 /* MLNCodingTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3526EABC1DF9B19800006B43 /* MLNCodingTests.mm */; }; - 352742781D4C220900A1ECE6 /* MLNStyleValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 352742771D4C220900A1ECE6 /* MLNStyleValue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 352742811D4C243B00A1ECE6 /* MLNSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 3527427F1D4C243B00A1ECE6 /* MLNSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 352742821D4C243B00A1ECE6 /* MLNSource.mm in Sources */ = {isa = PBXBuildFile; fileRef = 352742801D4C243B00A1ECE6 /* MLNSource.mm */; }; - 352742851D4C244700A1ECE6 /* MLNRasterTileSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 352742831D4C244700A1ECE6 /* MLNRasterTileSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 352742861D4C244700A1ECE6 /* MLNRasterTileSource.mm in Sources */ = {isa = PBXBuildFile; fileRef = 352742841D4C244700A1ECE6 /* MLNRasterTileSource.mm */; }; - 352742891D4C245800A1ECE6 /* MLNShapeSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 352742871D4C245800A1ECE6 /* MLNShapeSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3527428A1D4C245800A1ECE6 /* MLNShapeSource.mm in Sources */ = {isa = PBXBuildFile; fileRef = 352742881D4C245800A1ECE6 /* MLNShapeSource.mm */; }; - 3527428D1D4C24AB00A1ECE6 /* MLNCircleStyleLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3527428B1D4C24AB00A1ECE6 /* MLNCircleStyleLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3527428E1D4C24AB00A1ECE6 /* MLNCircleStyleLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3527428C1D4C24AB00A1ECE6 /* MLNCircleStyleLayer.mm */; }; - 352742A11D4C25BD00A1ECE6 /* MLNStyleValue.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3527429E1D4C25BD00A1ECE6 /* MLNStyleValue.mm */; }; - 3529039B1D6C63B80002C7DF /* NSPredicate+MLNAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 352903991D6C63B80002C7DF /* NSPredicate+MLNAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3529039C1D6C63B80002C7DF /* NSPredicate+MLNAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3529039A1D6C63B80002C7DF /* NSPredicate+MLNAdditions.mm */; }; - 3537CA741D3F93A600380318 /* MLNStyle_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 3537CA731D3F93A600380318 /* MLNStyle_Private.h */; }; - 3538AA231D542685008EC33D /* MLNStyleLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 3538AA211D542685008EC33D /* MLNStyleLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3538AA241D542685008EC33D /* MLNStyleLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3538AA221D542685008EC33D /* MLNStyleLayer.mm */; }; - 353BAEF81D6463B8009A8DA9 /* amsterdam.geojson in Resources */ = {isa = PBXBuildFile; fileRef = 358EB3AE1D61F0DB00E46D9C /* amsterdam.geojson */; }; - 355BA4ED1D41633E00CCC6D5 /* NSColor+MLNAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 355BA4EB1D41633E00CCC6D5 /* NSColor+MLNAdditions.h */; }; - 355BA4EE1D41633E00CCC6D5 /* NSColor+MLNAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 355BA4EC1D41633E00CCC6D5 /* NSColor+MLNAdditions.mm */; }; - 35602BFA1D3EA99F0050646F /* MLNFillStyleLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 35602BF81D3EA99F0050646F /* MLNFillStyleLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35602BFB1D3EA99F0050646F /* MLNFillStyleLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 35602BF91D3EA99F0050646F /* MLNFillStyleLayer.mm */; }; - 35602BFF1D3EA9B40050646F /* MLNStyleLayer_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 35602BFC1D3EA9B40050646F /* MLNStyleLayer_Private.h */; }; - 35602C001D3EA9B40050646F /* MLNForegroundStyleLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 35602BFD1D3EA9B40050646F /* MLNForegroundStyleLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35602C011D3EA9B40050646F /* MLNForegroundStyleLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 35602BFE1D3EA9B40050646F /* MLNForegroundStyleLayer.mm */; }; - 35724FC41D630502002A4AB4 /* amsterdam.geojson in Resources */ = {isa = PBXBuildFile; fileRef = 358EB3AE1D61F0DB00E46D9C /* amsterdam.geojson */; }; - 359819591E02F611008FC139 /* NSCoder+MLNAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 359819571E02F611008FC139 /* NSCoder+MLNAdditions.h */; }; - 3598195A1E02F611008FC139 /* NSCoder+MLNAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 359819581E02F611008FC139 /* NSCoder+MLNAdditions.mm */; }; - 35C5D8471D6DD66D00E95907 /* NSComparisonPredicate+MLNAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 35C5D8431D6DD66D00E95907 /* NSComparisonPredicate+MLNAdditions.h */; }; - 35C5D8481D6DD66D00E95907 /* NSComparisonPredicate+MLNAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 35C5D8441D6DD66D00E95907 /* NSComparisonPredicate+MLNAdditions.mm */; }; - 35C5D8491D6DD66D00E95907 /* NSCompoundPredicate+MLNAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 35C5D8451D6DD66D00E95907 /* NSCompoundPredicate+MLNAdditions.h */; }; - 35C5D84A1D6DD66D00E95907 /* NSCompoundPredicate+MLNAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 35C5D8461D6DD66D00E95907 /* NSCompoundPredicate+MLNAdditions.mm */; }; - 35C6DF841E214C0400ACA483 /* MLNDistanceFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 35C6DF821E214C0400ACA483 /* MLNDistanceFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35C6DF851E214C0400ACA483 /* MLNDistanceFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 35C6DF831E214C0400ACA483 /* MLNDistanceFormatter.m */; }; - 35C6DF871E214C1800ACA483 /* MLNDistanceFormatterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 35C6DF861E214C1800ACA483 /* MLNDistanceFormatterTests.m */; }; - 35D65C5A1D65AD5500722C23 /* NSDate+MLNAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 35D65C581D65AD5500722C23 /* NSDate+MLNAdditions.h */; }; - 35D65C5B1D65AD5500722C23 /* NSDate+MLNAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 35D65C591D65AD5500722C23 /* NSDate+MLNAdditions.mm */; }; - 3E6465D9206576A900685536 /* LimeGreenStyleLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E6465D7206576A800685536 /* LimeGreenStyleLayer.m */; }; - 3EA9317388DC9A0BF46B7674 /* MLNRendererConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EA9369A4C46957566058822 /* MLNRendererConfiguration.h */; }; - 3EA93BA38DBB4B814B6C1FCC /* MLNRendererConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 3EA93B1B0864609938506E12 /* MLNRendererConfiguration.m */; }; - 4031ACFC1E9EB3C100A3EA26 /* MLNMapViewDelegateIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4031ACFB1E9EB3C100A3EA26 /* MLNMapViewDelegateIntegrationTests.swift */; }; - 4031AD031E9FD6AA00A3EA26 /* MLNSDKTestHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4031AD011E9FD6A300A3EA26 /* MLNSDKTestHelpers.swift */; }; - 4049C2A51DB6CE7F00B3F799 /* MLNPointCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 4049C2A11DB6CE7800B3F799 /* MLNPointCollection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4049C2AD1DB8020600B3F799 /* MLNPointCollection.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4049C2A71DB6D09B00B3F799 /* MLNPointCollection.mm */; }; - 408AA85B1DAEECFE00022900 /* MLNShape_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 408AA85A1DAEECF100022900 /* MLNShape_Private.h */; }; - 408AA8671DAEEE3900022900 /* NSDictionary+MLNAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 408AA85F1DAEED3300022900 /* NSDictionary+MLNAdditions.h */; }; - 408AA86A1DAEEE5D00022900 /* NSDictionary+MLNAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 408AA85E1DAEED3300022900 /* NSDictionary+MLNAdditions.mm */; }; - 40ABDB561DB0022100372083 /* NSImage+MLNAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 405C03971DB0004E001AC280 /* NSImage+MLNAdditions.mm */; }; - 40B77E451DB11BC9003DA2FE /* NSArray+MLNAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 40B77E431DB11BB0003DA2FE /* NSArray+MLNAdditions.h */; }; - 40B77E461DB11BCD003DA2FE /* NSArray+MLNAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 40B77E421DB11BB0003DA2FE /* NSArray+MLNAdditions.mm */; }; - 40E1601D1DF217D6005EA6D9 /* MLNStyleLayerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 40E1601B1DF216E6005EA6D9 /* MLNStyleLayerTests.m */; }; - 4BBCDC4D265260FF004106C3 /* MLNTileServerOptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4BBCDC49265260FE004106C3 /* MLNTileServerOptions.mm */; }; - 4BBCDC4E265260FF004106C3 /* MLNDefaultStyle.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4BBCDC4A265260FF004106C3 /* MLNDefaultStyle.mm */; }; - 4BBCDC4F265260FF004106C3 /* MLNTileServerOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BBCDC4B265260FF004106C3 /* MLNTileServerOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4BBCDC50265260FF004106C3 /* MLNDefaultStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BBCDC4C265260FF004106C3 /* MLNDefaultStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 55335DF9212EC542000CE5F8 /* NSImage+MLNAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 405C03961DB0004E001AC280 /* NSImage+MLNAdditions.h */; }; - 5548BE781D09E718005DDE81 /* libmbgl-core.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAE6C3451CC31D1200DB3429 /* libmbgl-core.a */; }; - 556660C61E1BEA0100E2C41B /* MLNFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 556660C51E1BEA0100E2C41B /* MLNFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 556660D61E1D07E400E2C41B /* MLNVersionNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 556660D51E1D07E400E2C41B /* MLNVersionNumber.m */; }; - 558DE7A61E56161C00C7916D /* MLNFoundation_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 558DE7A41E56161C00C7916D /* MLNFoundation_Private.h */; }; - 558DE7A71E56161C00C7916D /* MLNFoundation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 558DE7A51E56161C00C7916D /* MLNFoundation.mm */; }; - 5591AC6A2298361600FF9ADF /* MLNMapView+Impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5591AC682298361600FF9ADF /* MLNMapView+Impl.h */; }; - 5591AC6B2298361600FF9ADF /* MLNMapView+Impl.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5591AC692298361600FF9ADF /* MLNMapView+Impl.mm */; }; - 55CAF6322294407F00F17770 /* MLNMapView+OpenGL.h in Headers */ = {isa = PBXBuildFile; fileRef = 55CAF6312294407F00F17770 /* MLNMapView+OpenGL.h */; }; - 55CAF6342294409B00F17770 /* MLNMapView+OpenGL.mm in Sources */ = {isa = PBXBuildFile; fileRef = 55CAF6332294409B00F17770 /* MLNMapView+OpenGL.mm */; }; - 55CF7533213EDADF00ED86C4 /* libmbgl-vendor-icu.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 55CF7532213EDADF00ED86C4 /* libmbgl-vendor-icu.a */; }; - 55E2AD111E5B0A6900E8C587 /* MLNOfflineStorageTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 55E2AD101E5B0A6900E8C587 /* MLNOfflineStorageTests.mm */; }; - 747ABE59219B2BDB00523B67 /* MLNFillExtrusionStyleLayer_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 747ABE54219B2BDA00523B67 /* MLNFillExtrusionStyleLayer_Private.h */; }; - 747ABE5A219B2BDB00523B67 /* MLNCircleStyleLayer_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 747ABE55219B2BDA00523B67 /* MLNCircleStyleLayer_Private.h */; }; - 747ABE5B219B2BDB00523B67 /* MLNBackgroundStyleLayer_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 747ABE56219B2BDB00523B67 /* MLNBackgroundStyleLayer_Private.h */; }; - 747ABE5C219B2BDB00523B67 /* MLNFillStyleLayer_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 747ABE57219B2BDB00523B67 /* MLNFillStyleLayer_Private.h */; }; - 747ABE5D219B2BDB00523B67 /* MLNHeatmapStyleLayer_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 747ABE58219B2BDB00523B67 /* MLNHeatmapStyleLayer_Private.h */; }; - 747ABE5F219B2BED00523B67 /* MLNHillshadeStyleLayer_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 747ABE5E219B2BED00523B67 /* MLNHillshadeStyleLayer_Private.h */; }; - 747ABE61219B2C0000523B67 /* MLNLineStyleLayer_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 747ABE60219B2C0000523B67 /* MLNLineStyleLayer_Private.h */; }; - 747ABE64219B2C1800523B67 /* MLNOpenGLStyleLayer_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 747ABE62219B2C1700523B67 /* MLNOpenGLStyleLayer_Private.h */; }; - 747ABE65219B2C1800523B67 /* MLNRasterStyleLayer_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 747ABE63219B2C1700523B67 /* MLNRasterStyleLayer_Private.h */; }; - 747ABE67219B2C3200523B67 /* MLNSymbolStyleLayer_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 747ABE66219B2C3200523B67 /* MLNSymbolStyleLayer_Private.h */; }; - 749EC8912199CCB9005608D7 /* MLNStyleLayerManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 749EC88F2199CCB8005608D7 /* MLNStyleLayerManager.h */; }; - 749EC8932199CCB9005608D7 /* MLNStyleLayerManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = 749EC8902199CCB9005608D7 /* MLNStyleLayerManager.mm */; }; - 89462399200D199100DA8EF2 /* heatmap.json in Resources */ = {isa = PBXBuildFile; fileRef = 89462398200D199100DA8EF2 /* heatmap.json */; }; - 8946239D200E744800DA8EF2 /* MLNHeatmapStyleLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8946239A200E73CA00DA8EF2 /* MLNHeatmapStyleLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 894623A0200E748000DA8EF2 /* MLNHeatmapStyleLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8946239B200E73CA00DA8EF2 /* MLNHeatmapStyleLayer.mm */; }; - 92092EF01F5EB10E00AF5130 /* MLNMapSnapshotter.h in Headers */ = {isa = PBXBuildFile; fileRef = 92092EEE1F5EB10E00AF5130 /* MLNMapSnapshotter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 92092EF11F5EB10E00AF5130 /* MLNMapSnapshotter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 92092EEF1F5EB10E00AF5130 /* MLNMapSnapshotter.mm */; }; - 920A3E591E6F859D00C16EFC /* MLNSourceQueryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 920A3E581E6F859D00C16EFC /* MLNSourceQueryTests.m */; }; - 9221BAAF20699CBB0054BDF4 /* MLNTilePyramidOfflineRegion_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 9221BAAE20699CBA0054BDF4 /* MLNTilePyramidOfflineRegion_Private.h */; }; - 9250B8C32073C69100EF338C /* MLNShapeOfflineRegion.h in Headers */ = {isa = PBXBuildFile; fileRef = 9250B8C22073C69000EF338C /* MLNShapeOfflineRegion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 92F2C3EB1F0E3A1900268EC0 /* MLNRendererFrontend.h in Headers */ = {isa = PBXBuildFile; fileRef = 92F2C3EA1F0E3A1900268EC0 /* MLNRendererFrontend.h */; }; - 92FC0AE4207CC8DA007B6B54 /* MLNShapeOfflineRegion_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 92FC0AE3207CC8DA007B6B54 /* MLNShapeOfflineRegion_Private.h */; }; - 92FC0AE6207CDD8D007B6B54 /* MLNShapeOfflineRegion.mm in Sources */ = {isa = PBXBuildFile; fileRef = 92FC0AE5207CDD8D007B6B54 /* MLNShapeOfflineRegion.mm */; }; - 9654C12B1FFC38E000DB6A19 /* MLNPolyline_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 9654C12A1FFC38E000DB6A19 /* MLNPolyline_Private.h */; }; - 9654C12D1FFC394700DB6A19 /* MLNPolygon_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 9654C12C1FFC394700DB6A19 /* MLNPolygon_Private.h */; }; - 96E027311E57C9A7004B8E66 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 96E027331E57C9A7004B8E66 /* Localizable.strings */; }; - CA0B3C072329F7E700E4B493 /* MLNTestAssertionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = CA0B3C052329F7E600E4B493 /* MLNTestAssertionHandler.m */; }; - CA0B3C092329FB4800E4B493 /* MLNOfflinePackTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = CA0B3C082329FB4800E4B493 /* MLNOfflinePackTests.mm */; }; - CA4045C7216720D700B356E1 /* MLNCluster.h in Headers */ = {isa = PBXBuildFile; fileRef = CA4045C4216720D700B356E1 /* MLNCluster.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CA8FBC0D21A4A74300D1203C /* MLNRendererConfigurationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CA8FBC0C21A4A74300D1203C /* MLNRendererConfigurationTests.m */; }; - CA9461A620884CCB0015EB12 /* MLNAnnotationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CA9461A520884CCB0015EB12 /* MLNAnnotationTests.m */; }; - CAD9D0AC22A88A32001B25EE /* MLNResourceTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = CAD9D0AB22A88A32001B25EE /* MLNResourceTests.mm */; }; - CF762DEF22DC7EFF00338472 /* MLNLoggingConfiguration.mm in Sources */ = {isa = PBXBuildFile; fileRef = CF762DEE22DC7EFF00338472 /* MLNLoggingConfiguration.mm */; }; - DA00FC8A1D5EEAC3009AABC8 /* MLNAttributionInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = DA00FC881D5EEAC3009AABC8 /* MLNAttributionInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA00FC8B1D5EEAC3009AABC8 /* MLNAttributionInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA00FC891D5EEAC3009AABC8 /* MLNAttributionInfo.mm */; }; - DA0CD58E1CF56F5800A5F5A5 /* MLNFeatureTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA0CD58D1CF56F5800A5F5A5 /* MLNFeatureTests.mm */; }; - DA0E9F3B24119F6B007C75D4 /* MLNImageTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA0E9F3A24119F6B007C75D4 /* MLNImageTests.mm */; }; - DA2784FE1DF03060001D5B8D /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DA2784FD1DF03060001D5B8D /* Media.xcassets */; }; - DA29875A1E1A4290002299F5 /* MLNDocumentationExampleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA2987591E1A4290002299F5 /* MLNDocumentationExampleTests.swift */; }; - DA35A2A41CC9EB1A00E826B2 /* MLNCoordinateFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = DA35A2A31CC9EB1A00E826B2 /* MLNCoordinateFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA35A2A61CC9EB2700E826B2 /* MLNCoordinateFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DA35A2A51CC9EB2700E826B2 /* MLNCoordinateFormatter.m */; }; - DA35A2A81CC9F41600E826B2 /* MLNCoordinateFormatterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DA35A2A71CC9F41600E826B2 /* MLNCoordinateFormatterTests.m */; }; - DA35A2AD1CCA091800E826B2 /* MLNCompassDirectionFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = DA35A2AB1CCA091800E826B2 /* MLNCompassDirectionFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA35A2AE1CCA091800E826B2 /* MLNCompassDirectionFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DA35A2AC1CCA091800E826B2 /* MLNCompassDirectionFormatter.m */; }; - DA35A2B61CCA14D700E826B2 /* MLNCompassDirectionFormatterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DA35A2B51CCA14D700E826B2 /* MLNCompassDirectionFormatterTests.m */; }; - DA35A2BF1CCA9B1A00E826B2 /* MLNClockDirectionFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = DA35A2BD1CCA9B1A00E826B2 /* MLNClockDirectionFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA35A2C01CCA9B1A00E826B2 /* MLNClockDirectionFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DA35A2BE1CCA9B1A00E826B2 /* MLNClockDirectionFormatter.m */; }; - DA35A2C21CCA9F4A00E826B2 /* MLNClockDirectionFormatterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DA35A2C11CCA9F4A00E826B2 /* MLNClockDirectionFormatterTests.m */; }; - DA35A2CF1CCAAED300E826B2 /* NSValue+MLNAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = DA35A2CD1CCAAED300E826B2 /* NSValue+MLNAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA35A2D01CCAAED300E826B2 /* NSValue+MLNAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DA35A2CE1CCAAED300E826B2 /* NSValue+MLNAdditions.m */; }; - DA35D08A1E1A631B007DED41 /* one-liner.json in Resources */ = {isa = PBXBuildFile; fileRef = DA35D0891E1A631B007DED41 /* one-liner.json */; }; - DA35D9C6240916380013ECB0 /* MLNReachability.h in Headers */ = {isa = PBXBuildFile; fileRef = DA35D9C4240916370013ECB0 /* MLNReachability.h */; }; - DA35D9C7240916380013ECB0 /* MLNReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = DA35D9C5240916380013ECB0 /* MLNReachability.m */; }; - DA35D9C92409205B0013ECB0 /* libmbgl-vendor-csscolorparser.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DA35D9C82409205B0013ECB0 /* libmbgl-vendor-csscolorparser.a */; }; - DA35D9CB240920640013ECB0 /* libmbgl-vendor-parsedate.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DA35D9CA240920640013ECB0 /* libmbgl-vendor-parsedate.a */; }; - DA35D9D3240925BD0013ECB0 /* libmbgl-vendor-csscolorparser.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DA35D9C82409205B0013ECB0 /* libmbgl-vendor-csscolorparser.a */; }; - DA551B821DB496AC0009AFAF /* MLNTileSource.h in Headers */ = {isa = PBXBuildFile; fileRef = DA551B7F1DB496AC0009AFAF /* MLNTileSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA551B831DB496AC0009AFAF /* MLNTileSource_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DA551B801DB496AC0009AFAF /* MLNTileSource_Private.h */; }; - DA551B841DB496AC0009AFAF /* MLNTileSource.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA551B811DB496AC0009AFAF /* MLNTileSource.mm */; }; - DA5589771D320C41006B7F64 /* wms.json in Resources */ = {isa = PBXBuildFile; fileRef = DA5589761D320C41006B7F64 /* wms.json */; }; - DA57D4B11EBC699800793288 /* MLNDocumentationGuideTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA57D4B01EBC699800793288 /* MLNDocumentationGuideTests.swift */; }; - DA6408D71DA4E5DA00908C90 /* MLNVectorStyleLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = DA6408D51DA4E5DA00908C90 /* MLNVectorStyleLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA6408D81DA4E5DA00908C90 /* MLNVectorStyleLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA6408D61DA4E5DA00908C90 /* MLNVectorStyleLayer.mm */; }; - DA695424215B1E6C002041A4 /* MLNMapCameraTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DA695423215B1E6C002041A4 /* MLNMapCameraTests.m */; }; - DA7262071DEEDD460043BB89 /* MLNOpenGLStyleLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = DA7262051DEEDD460043BB89 /* MLNOpenGLStyleLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA7262081DEEDD460043BB89 /* MLNOpenGLStyleLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA7262061DEEDD460043BB89 /* MLNOpenGLStyleLayer.mm */; }; - DA7DC9811DED5F5C0027472F /* MLNVectorTileSource_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DA7DC9801DED5F5C0027472F /* MLNVectorTileSource_Private.h */; }; - DA7DC9831DED647F0027472F /* MLNRasterTileSource_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DA7DC9821DED647F0027472F /* MLNRasterTileSource_Private.h */; }; - DA839E971CC2E3400062CAFB /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DA839E961CC2E3400062CAFB /* AppDelegate.m */; }; - DA839E9A1CC2E3400062CAFB /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DA839E991CC2E3400062CAFB /* main.m */; }; - DA839E9D1CC2E3400062CAFB /* MapDocument.m in Sources */ = {isa = PBXBuildFile; fileRef = DA839E9C1CC2E3400062CAFB /* MapDocument.m */; }; - DA839EA01CC2E3400062CAFB /* MapDocument.xib in Resources */ = {isa = PBXBuildFile; fileRef = DA839E9E1CC2E3400062CAFB /* MapDocument.xib */; }; - DA839EA21CC2E3400062CAFB /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DA839EA11CC2E3400062CAFB /* Assets.xcassets */; }; - DA839EA51CC2E3400062CAFB /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = DA839EA31CC2E3400062CAFB /* MainMenu.xib */; }; - DA87A9981DC9D88400810D09 /* MLNShapeSourceTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA87A9961DC9D88400810D09 /* MLNShapeSourceTests.mm */; }; - DA87A9991DC9D88400810D09 /* MLNTileSetTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA87A9971DC9D88400810D09 /* MLNTileSetTests.mm */; }; - DA87A99C1DC9D8DD00810D09 /* MLNShapeSource_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DA87A99B1DC9D8DD00810D09 /* MLNShapeSource_Private.h */; }; - DA87A99E1DC9DC2100810D09 /* MLNPredicateTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 35C5D84B1D6DD75B00E95907 /* MLNPredicateTests.mm */; }; - DA87A9A01DC9DC6200810D09 /* MLNValueEvaluator.h in Headers */ = {isa = PBXBuildFile; fileRef = DA87A99F1DC9DC6200810D09 /* MLNValueEvaluator.h */; }; - DA87A9A21DC9DCF100810D09 /* MLNFillStyleLayerTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA8F25741D51C5F40010E6B5 /* MLNFillStyleLayerTests.mm */; }; - DA87A9A31DCACC5000810D09 /* MLNRasterStyleLayerTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA8F25751D51C5F40010E6B5 /* MLNRasterStyleLayerTests.mm */; }; - DA87A9A41DCACC5000810D09 /* MLNSymbolStyleLayerTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA8F25761D51C5F40010E6B5 /* MLNSymbolStyleLayerTests.mm */; }; - DA87A9A51DCACC5000810D09 /* MLNLineStyleLayerTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA8F25771D51C5F40010E6B5 /* MLNLineStyleLayerTests.mm */; }; - DA87A9A61DCACC5000810D09 /* MLNCircleStyleLayerTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA8F25781D51C5F40010E6B5 /* MLNCircleStyleLayerTests.mm */; }; - DA87A9A71DCACC5000810D09 /* MLNBackgroundStyleLayerTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA8F25791D51C5F40010E6B5 /* MLNBackgroundStyleLayerTests.mm */; }; - DA8933A51CCD287300E68420 /* MLNAnnotationCallout.xib in Resources */ = {isa = PBXBuildFile; fileRef = DA8933A71CCD287300E68420 /* MLNAnnotationCallout.xib */; }; - DA8933AE1CCD290700E68420 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = DA8933AB1CCD290700E68420 /* Localizable.strings */; }; - DA8933B51CCD2C2500E68420 /* Foundation.strings in Resources */ = {isa = PBXBuildFile; fileRef = DA8933B31CCD2C2500E68420 /* Foundation.strings */; }; - DA8933B81CCD2C2D00E68420 /* Foundation.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = DA8933B61CCD2C2D00E68420 /* Foundation.stringsdict */; }; - DA8F25871D51C9E10010E6B5 /* MLNBackgroundStyleLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = DA8F25851D51C9E10010E6B5 /* MLNBackgroundStyleLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA8F25881D51C9E10010E6B5 /* MLNBackgroundStyleLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA8F25861D51C9E10010E6B5 /* MLNBackgroundStyleLayer.mm */; }; - DA8F258B1D51CA540010E6B5 /* MLNLineStyleLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = DA8F25891D51CA540010E6B5 /* MLNLineStyleLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA8F258C1D51CA540010E6B5 /* MLNLineStyleLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA8F258A1D51CA540010E6B5 /* MLNLineStyleLayer.mm */; }; - DA8F258F1D51CA600010E6B5 /* MLNRasterStyleLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = DA8F258D1D51CA600010E6B5 /* MLNRasterStyleLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA8F25901D51CA600010E6B5 /* MLNRasterStyleLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA8F258E1D51CA600010E6B5 /* MLNRasterStyleLayer.mm */; }; - DA8F25931D51CA750010E6B5 /* MLNSymbolStyleLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = DA8F25911D51CA750010E6B5 /* MLNSymbolStyleLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA8F25941D51CA750010E6B5 /* MLNSymbolStyleLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA8F25921D51CA750010E6B5 /* MLNSymbolStyleLayer.mm */; }; - DA8F25971D51CAC70010E6B5 /* MLNVectorTileSource.h in Headers */ = {isa = PBXBuildFile; fileRef = DA8F25951D51CAC70010E6B5 /* MLNVectorTileSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA8F25981D51CAC70010E6B5 /* MLNVectorTileSource.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA8F25961D51CAC70010E6B5 /* MLNVectorTileSource.mm */; }; - DA8F259A1D51CAD00010E6B5 /* MLNSource_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DA8F25991D51CAD00010E6B5 /* MLNSource_Private.h */; }; - DA8F259C1D51CB000010E6B5 /* MLNStyleValue_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DA8F259B1D51CB000010E6B5 /* MLNStyleValue_Private.h */; }; - DA8F25B21D51CB270010E6B5 /* NSValue+MLNStyleAttributeAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = DA8F25A61D51CB270010E6B5 /* NSValue+MLNStyleAttributeAdditions.h */; }; - DA8F25B31D51CB270010E6B5 /* NSValue+MLNStyleAttributeAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA8F25A71D51CB270010E6B5 /* NSValue+MLNStyleAttributeAdditions.mm */; }; - DAA4227C24294137008457DB /* MLNMapSnapshotterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DAA4227B24294137008457DB /* MLNMapSnapshotterTests.m */; }; - DAA48EFD1D6A4731006A7E36 /* StyleLayerIconTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = DAA48EFC1D6A4731006A7E36 /* StyleLayerIconTransformer.m */; }; - DAA998FB1E9F545C002E6EA6 /* MLNFillExtrusionStyleLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = DAA998F91E9F545C002E6EA6 /* MLNFillExtrusionStyleLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAA998FC1E9F545C002E6EA6 /* MLNFillExtrusionStyleLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAA998FA1E9F545C002E6EA6 /* MLNFillExtrusionStyleLayer.mm */; }; - DAA999011E9F5EC5002E6EA6 /* MLNFillExtrusionStyleLayerTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAA999001E9F5EC5002E6EA6 /* MLNFillExtrusionStyleLayerTests.mm */; }; - DAC25FCA200FD5E2009BE98E /* NSExpression+MLNPrivateAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = DAC25FC9200FD5E2009BE98E /* NSExpression+MLNPrivateAdditions.h */; }; - DAC2ABC51CC6D343006D18C4 /* MLNAnnotationImage_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DAC2ABC41CC6D343006D18C4 /* MLNAnnotationImage_Private.h */; }; - DAC8325F24049D8700A61BF8 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = DAE6C3C61CC3499100DB3429 /* libsqlite3.tbd */; }; - DAC8326024049D9C00A61BF8 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 55D9B4B01D005D3900C1CCE2 /* libz.tbd */; }; - DAC8A47E24527EBB00C795BB /* glyphs.pbf in Resources */ = {isa = PBXBuildFile; fileRef = DAC8A47D24527EBB00C795BB /* glyphs.pbf */; }; - DAC8A4842452972F00C795BB /* mixed.json in Resources */ = {isa = PBXBuildFile; fileRef = DAC8A4832452972F00C795BB /* mixed.json */; }; - DACA8622201920BE00E9693A /* MLNRasterDEMSource.h in Headers */ = {isa = PBXBuildFile; fileRef = DACA8620201920BE00E9693A /* MLNRasterDEMSource.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DACA8623201920BE00E9693A /* MLNRasterDEMSource.mm in Sources */ = {isa = PBXBuildFile; fileRef = DACA8621201920BE00E9693A /* MLNRasterDEMSource.mm */; }; - DACB0C391E18DFFD005DDBEA /* MLNStyle+MBXAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DACB0C381E18DFFD005DDBEA /* MLNStyle+MBXAdditions.m */; }; - DACC22141CF3D3E200D220D9 /* MLNFeature.h in Headers */ = {isa = PBXBuildFile; fileRef = DACC22121CF3D3E200D220D9 /* MLNFeature.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DACC22151CF3D3E200D220D9 /* MLNFeature.mm in Sources */ = {isa = PBXBuildFile; fileRef = DACC22131CF3D3E200D220D9 /* MLNFeature.mm */; }; - DACC22181CF3D4F700D220D9 /* MLNFeature_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DACC22171CF3D4F700D220D9 /* MLNFeature_Private.h */; }; - DAD165741CF4CD7A001FF4B9 /* MLNShapeCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = DAD165721CF4CD7A001FF4B9 /* MLNShapeCollection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAD165751CF4CD7A001FF4B9 /* MLNShapeCollection.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAD165731CF4CD7A001FF4B9 /* MLNShapeCollection.mm */; }; - DAE0DD7A1D5F015A005A6BB1 /* libmbgl-core.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAE6C3451CC31D1200DB3429 /* libmbgl-core.a */; }; - DAE6C2E21CC304F900DB3429 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = DAE6C2E11CC304F900DB3429 /* Credits.rtf */; }; - DAE6C2ED1CC3050F00DB3429 /* DroppedPinAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C2E41CC3050F00DB3429 /* DroppedPinAnnotation.m */; }; - DAE6C2EE1CC3050F00DB3429 /* LocationCoordinate2DTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C2E61CC3050F00DB3429 /* LocationCoordinate2DTransformer.m */; }; - DAE6C2F01CC3050F00DB3429 /* OfflinePackNameValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C2EA1CC3050F00DB3429 /* OfflinePackNameValueTransformer.m */; }; - DAE6C2F11CC3050F00DB3429 /* TimeIntervalTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C2EC1CC3050F00DB3429 /* TimeIntervalTransformer.m */; }; - DAE6C3321CC30DB200DB3429 /* Mapbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DAE6C3281CC30DB200DB3429 /* Mapbox.framework */; }; - DAE6C33D1CC30DB200DB3429 /* Mapbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DAE6C3281CC30DB200DB3429 /* Mapbox.framework */; }; - DAE6C33E1CC30DB200DB3429 /* Mapbox.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DAE6C3281CC30DB200DB3429 /* Mapbox.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - DAE6C35A1CC31E0400DB3429 /* MLNSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C34A1CC31E0400DB3429 /* MLNSettings.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C35B1CC31E0400DB3429 /* MLNAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C34B1CC31E0400DB3429 /* MLNAnnotation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C35C1CC31E0400DB3429 /* MLNGeometry.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C34C1CC31E0400DB3429 /* MLNGeometry.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C35D1CC31E0400DB3429 /* MLNMapCamera.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C34D1CC31E0400DB3429 /* MLNMapCamera.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C35E1CC31E0400DB3429 /* MLNMultiPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C34E1CC31E0400DB3429 /* MLNMultiPoint.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C35F1CC31E0400DB3429 /* MLNOfflinePack.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C34F1CC31E0400DB3429 /* MLNOfflinePack.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C3601CC31E0400DB3429 /* MLNOfflineRegion.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3501CC31E0400DB3429 /* MLNOfflineRegion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C3611CC31E0400DB3429 /* MLNOfflineStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3511CC31E0400DB3429 /* MLNOfflineStorage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C3621CC31E0400DB3429 /* MLNOverlay.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3521CC31E0400DB3429 /* MLNOverlay.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C3631CC31E0400DB3429 /* MLNPointAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3531CC31E0400DB3429 /* MLNPointAnnotation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C3641CC31E0400DB3429 /* MLNPolygon.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3541CC31E0400DB3429 /* MLNPolygon.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C3651CC31E0400DB3429 /* MLNPolyline.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3551CC31E0400DB3429 /* MLNPolyline.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C3661CC31E0400DB3429 /* MLNShape.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3561CC31E0400DB3429 /* MLNShape.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C3671CC31E0400DB3429 /* MLNStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3571CC31E0400DB3429 /* MLNStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C3681CC31E0400DB3429 /* MLNTilePyramidOfflineRegion.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3581CC31E0400DB3429 /* MLNTilePyramidOfflineRegion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C3691CC31E0400DB3429 /* MLNTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3591CC31E0400DB3429 /* MLNTypes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C3841CC31E2A00DB3429 /* MLNSettings_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C36A1CC31E2A00DB3429 /* MLNSettings_Private.h */; }; - DAE6C3851CC31E2A00DB3429 /* MLNSettings.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C36B1CC31E2A00DB3429 /* MLNSettings.mm */; }; - DAE6C3861CC31E2A00DB3429 /* MLNGeometry_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C36C1CC31E2A00DB3429 /* MLNGeometry_Private.h */; }; - DAE6C3871CC31E2A00DB3429 /* MLNGeometry.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C36D1CC31E2A00DB3429 /* MLNGeometry.mm */; }; - DAE6C3881CC31E2A00DB3429 /* MLNMapCamera.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C36E1CC31E2A00DB3429 /* MLNMapCamera.mm */; }; - DAE6C3891CC31E2A00DB3429 /* MLNMultiPoint_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C36F1CC31E2A00DB3429 /* MLNMultiPoint_Private.h */; }; - DAE6C38A1CC31E2A00DB3429 /* MLNMultiPoint.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3701CC31E2A00DB3429 /* MLNMultiPoint.mm */; }; - DAE6C38B1CC31E2A00DB3429 /* MLNOfflinePack_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3711CC31E2A00DB3429 /* MLNOfflinePack_Private.h */; }; - DAE6C38C1CC31E2A00DB3429 /* MLNOfflinePack.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3721CC31E2A00DB3429 /* MLNOfflinePack.mm */; }; - DAE6C38D1CC31E2A00DB3429 /* MLNOfflineRegion_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3731CC31E2A00DB3429 /* MLNOfflineRegion_Private.h */; }; - DAE6C38E1CC31E2A00DB3429 /* MLNOfflineStorage_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3741CC31E2A00DB3429 /* MLNOfflineStorage_Private.h */; }; - DAE6C38F1CC31E2A00DB3429 /* MLNOfflineStorage.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3751CC31E2A00DB3429 /* MLNOfflineStorage.mm */; }; - DAE6C3901CC31E2A00DB3429 /* MLNPointAnnotation.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3761CC31E2A00DB3429 /* MLNPointAnnotation.mm */; }; - DAE6C3911CC31E2A00DB3429 /* MLNPolygon.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3771CC31E2A00DB3429 /* MLNPolygon.mm */; }; - DAE6C3921CC31E2A00DB3429 /* MLNPolyline.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3781CC31E2A00DB3429 /* MLNPolyline.mm */; }; - DAE6C3931CC31E2A00DB3429 /* MLNShape.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3791CC31E2A00DB3429 /* MLNShape.mm */; }; - DAE6C3941CC31E2A00DB3429 /* MLNStyle.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C37A1CC31E2A00DB3429 /* MLNStyle.mm */; }; - DAE6C3951CC31E2A00DB3429 /* MLNTilePyramidOfflineRegion.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C37B1CC31E2A00DB3429 /* MLNTilePyramidOfflineRegion.mm */; }; - DAE6C3961CC31E2A00DB3429 /* MLNTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C37C1CC31E2A00DB3429 /* MLNTypes.m */; }; - DAE6C3971CC31E2A00DB3429 /* NSBundle+MLNAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C37D1CC31E2A00DB3429 /* NSBundle+MLNAdditions.h */; }; - DAE6C3981CC31E2A00DB3429 /* NSBundle+MLNAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C37E1CC31E2A00DB3429 /* NSBundle+MLNAdditions.mm */; }; - DAE6C3991CC31E2A00DB3429 /* NSException+MLNAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C37F1CC31E2A00DB3429 /* NSException+MLNAdditions.h */; }; - DAE6C39A1CC31E2A00DB3429 /* NSProcessInfo+MLNAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3801CC31E2A00DB3429 /* NSProcessInfo+MLNAdditions.h */; }; - DAE6C39B1CC31E2A00DB3429 /* NSProcessInfo+MLNAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3811CC31E2A00DB3429 /* NSProcessInfo+MLNAdditions.m */; }; - DAE6C39C1CC31E2A00DB3429 /* NSString+MLNAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3821CC31E2A00DB3429 /* NSString+MLNAdditions.h */; }; - DAE6C39D1CC31E2A00DB3429 /* NSString+MLNAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3831CC31E2A00DB3429 /* NSString+MLNAdditions.m */; }; - DAE6C3A31CC31E9400DB3429 /* MLNAnnotationImage.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C39F1CC31E9400DB3429 /* MLNAnnotationImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C3A41CC31E9400DB3429 /* MLNMapView.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3A01CC31E9400DB3429 /* MLNMapView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C3A51CC31E9400DB3429 /* MLNMapView+IBAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3A11CC31E9400DB3429 /* MLNMapView+IBAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C3A61CC31E9400DB3429 /* MLNMapViewDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3A21CC31E9400DB3429 /* MLNMapViewDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C3B11CC31EF300DB3429 /* MLNAnnotationImage.m in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3A71CC31EF300DB3429 /* MLNAnnotationImage.m */; }; - DAE6C3B21CC31EF300DB3429 /* MLNAttributionButton.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3A81CC31EF300DB3429 /* MLNAttributionButton.h */; }; - DAE6C3B31CC31EF300DB3429 /* MLNAttributionButton.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3A91CC31EF300DB3429 /* MLNAttributionButton.mm */; }; - DAE6C3B41CC31EF300DB3429 /* MLNCompassCell.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3AA1CC31EF300DB3429 /* MLNCompassCell.h */; }; - DAE6C3B51CC31EF300DB3429 /* MLNCompassCell.m in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3AB1CC31EF300DB3429 /* MLNCompassCell.m */; }; - DAE6C3B61CC31EF300DB3429 /* MLNMapView_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3AC1CC31EF300DB3429 /* MLNMapView_Private.h */; }; - DAE6C3B71CC31EF300DB3429 /* MLNMapView.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3AD1CC31EF300DB3429 /* MLNMapView.mm */; }; - DAE6C3B81CC31EF300DB3429 /* MLNMapView+IBAdditions.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3AE1CC31EF300DB3429 /* MLNMapView+IBAdditions.mm */; }; - DAE6C3B91CC31EF300DB3429 /* MLNOpenGLLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3AF1CC31EF300DB3429 /* MLNOpenGLLayer.h */; }; - DAE6C3BA1CC31EF300DB3429 /* MLNOpenGLLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3B01CC31EF300DB3429 /* MLNOpenGLLayer.mm */; }; - DAE6C3BE1CC31F2E00DB3429 /* default_marker.pdf in Resources */ = {isa = PBXBuildFile; fileRef = DAE6C3BB1CC31F2E00DB3429 /* default_marker.pdf */; }; - DAE6C3BF1CC31F2E00DB3429 /* mapbox.pdf in Resources */ = {isa = PBXBuildFile; fileRef = DAE6C3BC1CC31F2E00DB3429 /* mapbox.pdf */; }; - DAE6C3C21CC31F4500DB3429 /* Mapbox.h in Headers */ = {isa = PBXBuildFile; fileRef = DAE6C3C11CC31F4500DB3429 /* Mapbox.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAE6C3D21CC34C9900DB3429 /* MLNGeometryTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3C81CC34BD800DB3429 /* MLNGeometryTests.mm */; }; - DAE6C3D41CC34C9900DB3429 /* MLNOfflineRegionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3CA1CC34BD800DB3429 /* MLNOfflineRegionTests.m */; }; - DAE6C3D61CC34C9900DB3429 /* MLNStyleTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAE6C3CC1CC34BD800DB3429 /* MLNStyleTests.mm */; }; - DAE7DEC41E24549F007505A6 /* MLNNSStringAdditionsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DAE7DEC31E24549F007505A6 /* MLNNSStringAdditionsTests.m */; }; - DAED385F1D62CED700D7640F /* NSURL+MLNAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = DAED385D1D62CED700D7640F /* NSURL+MLNAdditions.h */; }; - DAED38601D62CED700D7640F /* NSURL+MLNAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DAED385E1D62CED700D7640F /* NSURL+MLNAdditions.m */; }; - DAEDC4321D6033F1000224FF /* MLNAttributionInfoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DAEDC4311D6033F1000224FF /* MLNAttributionInfoTests.m */; }; - DAEDC4371D606291000224FF /* MLNAttributionButtonTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DAEDC4361D606291000224FF /* MLNAttributionButtonTests.m */; }; - DAF0D80E1DFE0E5D00B28378 /* MLNPointCollection_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DAF0D80D1DFE0E5D00B28378 /* MLNPointCollection_Private.h */; }; - DAF0D8161DFE6B1800B28378 /* MLNAttributionInfo_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = DAF0D8151DFE6B1800B28378 /* MLNAttributionInfo_Private.h */; }; - DAF25715201901C200367EF5 /* MLNHillshadeStyleLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAF25713201901C100367EF5 /* MLNHillshadeStyleLayer.mm */; }; - DAF25716201901C200367EF5 /* MLNHillshadeStyleLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = DAF25714201901C200367EF5 /* MLNHillshadeStyleLayer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DAF25721201902C100367EF5 /* MLNHillshadeStyleLayerTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = DAF2571D201902A500367EF5 /* MLNHillshadeStyleLayerTests.mm */; }; - DD0902B21DB1AC6400C5BDCE /* MLNNetworkConfiguration.mm in Sources */ = {isa = PBXBuildFile; fileRef = DD0902AF1DB1AC6400C5BDCE /* MLNNetworkConfiguration.mm */; }; - DD0902B31DB1AC6400C5BDCE /* MLNNetworkConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = DD0902B01DB1AC6400C5BDCE /* MLNNetworkConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DD58A4C91D822C6700E1F038 /* MLNExpressionTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = DD58A4C71D822C6200E1F038 /* MLNExpressionTests.mm */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - DAE6C3331CC30DB200DB3429 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DA839E8A1CC2E3400062CAFB /* Project object */; - proxyType = 1; - remoteGlobalIDString = DAE6C3271CC30DB200DB3429; - remoteInfo = dynamic; - }; - DAE6C33B1CC30DB200DB3429 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = DA839E8A1CC2E3400062CAFB /* Project object */; - proxyType = 1; - remoteGlobalIDString = DAE6C3271CC30DB200DB3429; - remoteInfo = dynamic; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - DAE6C3221CC30B3C00DB3429 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - DAE6C33E1CC30DB200DB3429 /* Mapbox.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 076171C4213A0DC200668A35 /* MLNMapViewTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = MLNMapViewTests.m; path = ../../darwin/test/MLNMapViewTests.m; sourceTree = ""; }; - 07A019EB1ED662D800ACD43E /* MLNImageSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNImageSource.h; sourceTree = ""; }; - 07A019EC1ED662D800ACD43E /* MLNImageSource.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNImageSource.mm; sourceTree = ""; }; - 07A240921F67566F002C8210 /* MLNComputedShapeSourceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLNComputedShapeSourceTests.m; sourceTree = ""; }; - 07BA4CAB1EE21887004528F5 /* MLNImageSourceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLNImageSourceTests.m; sourceTree = ""; }; - 07D947471F6741F500E37934 /* MLNComputedShapeSource_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNComputedShapeSource_Private.h; sourceTree = ""; }; - 07F8E2F41F674C8000F794BB /* MLNComputedShapeSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNComputedShapeSource.h; sourceTree = ""; }; - 07F8E2F51F674C8000F794BB /* MLNComputedShapeSource.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNComputedShapeSource.mm; sourceTree = ""; }; - 170A82BE201BDD1B00943087 /* MLNHeatmapStyleLayerTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNHeatmapStyleLayerTests.mm; sourceTree = ""; }; - 170A82C2201FAFF800943087 /* MLNHeatmapColorTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNHeatmapColorTests.mm; sourceTree = ""; }; - 1753ED3F1E53CE5200A9FD90 /* MLNConversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNConversion.h; sourceTree = ""; }; - 1F2B94C2221E22E500210640 /* MLNNetworkConfiguration_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNNetworkConfiguration_Private.h; sourceTree = ""; }; - 1F7454A01ECFB00300021D39 /* MLNLight_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNLight_Private.h; sourceTree = ""; }; - 1F7454A11ECFB00300021D39 /* MLNLight.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNLight.h; sourceTree = ""; }; - 1F7454A21ECFB00300021D39 /* MLNLight.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNLight.mm; sourceTree = ""; }; - 1F7454AA1ED1DDBD00021D39 /* MLNLightTest.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNLightTest.mm; sourceTree = ""; }; - 1F8A59F921653483004DFE75 /* sideload_sat.db */ = {isa = PBXFileReference; lastKnownFileType = file; name = sideload_sat.db; path = ../../../../../test/fixtures/offline_database/sideload_sat.db; sourceTree = ""; }; - 1F8A5A01216D4695004DFE75 /* MLNLoggingConfiguration_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNLoggingConfiguration_Private.h; sourceTree = ""; }; - 1F8A5A03216D4696004DFE75 /* MLNLoggingConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNLoggingConfiguration.h; sourceTree = ""; }; - 1F95931A1E6DE2B600D5B294 /* MLNNSDateAdditionsTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MLNNSDateAdditionsTests.mm; path = ../../darwin/test/MLNNSDateAdditionsTests.mm; sourceTree = ""; }; - 1F9EF4051FBA1B0D0063FBB0 /* mapbox_helmet.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = mapbox_helmet.pdf; sourceTree = ""; }; - 1FC481842098F323000D09B4 /* NSPredicate+MLNPrivateAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSPredicate+MLNPrivateAdditions.h"; sourceTree = ""; }; - 1FDB00CC21F8F1FD00D21389 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; - 1FDB00CD21F8F1FF00D21389 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; - 1FF4858B2237235200F19727 /* MLNAttributedExpression.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLNAttributedExpression.m; sourceTree = ""; }; - 1FF4858C2237235200F19727 /* MLNAttributedExpression.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNAttributedExpression.h; sourceTree = ""; }; - 3508EC621D749D39009B0EE4 /* NSExpression+MLNAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSExpression+MLNAdditions.h"; sourceTree = ""; }; - 3508EC631D749D39009B0EE4 /* NSExpression+MLNAdditions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "NSExpression+MLNAdditions.mm"; sourceTree = ""; }; - 3526EABC1DF9B19800006B43 /* MLNCodingTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MLNCodingTests.mm; path = ../../darwin/test/MLNCodingTests.mm; sourceTree = ""; }; - 352742771D4C220900A1ECE6 /* MLNStyleValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNStyleValue.h; sourceTree = ""; }; - 3527427F1D4C243B00A1ECE6 /* MLNSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNSource.h; sourceTree = ""; }; - 352742801D4C243B00A1ECE6 /* MLNSource.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNSource.mm; sourceTree = ""; }; - 352742831D4C244700A1ECE6 /* MLNRasterTileSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNRasterTileSource.h; sourceTree = ""; }; - 352742841D4C244700A1ECE6 /* MLNRasterTileSource.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNRasterTileSource.mm; sourceTree = ""; }; - 352742871D4C245800A1ECE6 /* MLNShapeSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNShapeSource.h; sourceTree = ""; }; - 352742881D4C245800A1ECE6 /* MLNShapeSource.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNShapeSource.mm; sourceTree = ""; }; - 3527428B1D4C24AB00A1ECE6 /* MLNCircleStyleLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNCircleStyleLayer.h; sourceTree = ""; }; - 3527428C1D4C24AB00A1ECE6 /* MLNCircleStyleLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNCircleStyleLayer.mm; sourceTree = ""; }; - 3527429E1D4C25BD00A1ECE6 /* MLNStyleValue.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNStyleValue.mm; sourceTree = ""; }; - 352903991D6C63B80002C7DF /* NSPredicate+MLNAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSPredicate+MLNAdditions.h"; sourceTree = ""; }; - 3529039A1D6C63B80002C7DF /* NSPredicate+MLNAdditions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "NSPredicate+MLNAdditions.mm"; sourceTree = ""; }; - 3537CA731D3F93A600380318 /* MLNStyle_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNStyle_Private.h; sourceTree = ""; }; - 3538AA211D542685008EC33D /* MLNStyleLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNStyleLayer.h; sourceTree = ""; }; - 3538AA221D542685008EC33D /* MLNStyleLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNStyleLayer.mm; sourceTree = ""; }; - 355BA4EB1D41633E00CCC6D5 /* NSColor+MLNAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSColor+MLNAdditions.h"; sourceTree = ""; }; - 355BA4EC1D41633E00CCC6D5 /* NSColor+MLNAdditions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "NSColor+MLNAdditions.mm"; sourceTree = ""; }; - 35602BF81D3EA99F0050646F /* MLNFillStyleLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNFillStyleLayer.h; sourceTree = ""; }; - 35602BF91D3EA99F0050646F /* MLNFillStyleLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNFillStyleLayer.mm; sourceTree = ""; }; - 35602BFC1D3EA9B40050646F /* MLNStyleLayer_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNStyleLayer_Private.h; sourceTree = ""; }; - 35602BFD1D3EA9B40050646F /* MLNForegroundStyleLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNForegroundStyleLayer.h; sourceTree = ""; }; - 35602BFE1D3EA9B40050646F /* MLNForegroundStyleLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNForegroundStyleLayer.mm; sourceTree = ""; }; - 358EB3AE1D61F0DB00E46D9C /* amsterdam.geojson */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = amsterdam.geojson; path = ../../darwin/test/amsterdam.geojson; sourceTree = ""; }; - 359819571E02F611008FC139 /* NSCoder+MLNAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSCoder+MLNAdditions.h"; sourceTree = ""; }; - 359819581E02F611008FC139 /* NSCoder+MLNAdditions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "NSCoder+MLNAdditions.mm"; sourceTree = ""; }; - 35C5D8431D6DD66D00E95907 /* NSComparisonPredicate+MLNAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSComparisonPredicate+MLNAdditions.h"; sourceTree = ""; }; - 35C5D8441D6DD66D00E95907 /* NSComparisonPredicate+MLNAdditions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "NSComparisonPredicate+MLNAdditions.mm"; sourceTree = ""; }; - 35C5D8451D6DD66D00E95907 /* NSCompoundPredicate+MLNAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSCompoundPredicate+MLNAdditions.h"; sourceTree = ""; }; - 35C5D8461D6DD66D00E95907 /* NSCompoundPredicate+MLNAdditions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "NSCompoundPredicate+MLNAdditions.mm"; sourceTree = ""; }; - 35C5D84B1D6DD75B00E95907 /* MLNPredicateTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MLNPredicateTests.mm; path = ../../darwin/test/MLNPredicateTests.mm; sourceTree = ""; }; - 35C6DF821E214C0400ACA483 /* MLNDistanceFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNDistanceFormatter.h; sourceTree = ""; }; - 35C6DF831E214C0400ACA483 /* MLNDistanceFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLNDistanceFormatter.m; sourceTree = ""; }; - 35C6DF861E214C1800ACA483 /* MLNDistanceFormatterTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MLNDistanceFormatterTests.m; path = ../../darwin/test/MLNDistanceFormatterTests.m; sourceTree = ""; }; - 35D65C581D65AD5500722C23 /* NSDate+MLNAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+MLNAdditions.h"; sourceTree = ""; }; - 35D65C591D65AD5500722C23 /* NSDate+MLNAdditions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "NSDate+MLNAdditions.mm"; sourceTree = ""; }; - 3E6465D7206576A800685536 /* LimeGreenStyleLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LimeGreenStyleLayer.m; path = ../../darwin/app/LimeGreenStyleLayer.m; sourceTree = ""; }; - 3E6465D8206576A900685536 /* LimeGreenStyleLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LimeGreenStyleLayer.h; path = ../../darwin/app/LimeGreenStyleLayer.h; sourceTree = ""; }; - 3EA9369A4C46957566058822 /* MLNRendererConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNRendererConfiguration.h; sourceTree = ""; }; - 3EA93B1B0864609938506E12 /* MLNRendererConfiguration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLNRendererConfiguration.m; sourceTree = ""; }; - 4031ACFB1E9EB3C100A3EA26 /* MLNMapViewDelegateIntegrationTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MLNMapViewDelegateIntegrationTests.swift; sourceTree = ""; }; - 4031AD011E9FD6A300A3EA26 /* MLNSDKTestHelpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MLNSDKTestHelpers.swift; path = ../../darwin/test/MLNSDKTestHelpers.swift; sourceTree = ""; }; - 4049C2A11DB6CE7800B3F799 /* MLNPointCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNPointCollection.h; sourceTree = ""; }; - 4049C2A71DB6D09B00B3F799 /* MLNPointCollection.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNPointCollection.mm; sourceTree = ""; }; - 405C03961DB0004E001AC280 /* NSImage+MLNAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSImage+MLNAdditions.h"; sourceTree = ""; }; - 405C03971DB0004E001AC280 /* NSImage+MLNAdditions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "NSImage+MLNAdditions.mm"; sourceTree = ""; }; - 408AA85A1DAEECF100022900 /* MLNShape_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNShape_Private.h; sourceTree = ""; }; - 408AA85E1DAEED3300022900 /* NSDictionary+MLNAdditions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "NSDictionary+MLNAdditions.mm"; sourceTree = ""; }; - 408AA85F1DAEED3300022900 /* NSDictionary+MLNAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+MLNAdditions.h"; sourceTree = ""; }; - 40B77E421DB11BB0003DA2FE /* NSArray+MLNAdditions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "NSArray+MLNAdditions.mm"; sourceTree = ""; }; - 40B77E431DB11BB0003DA2FE /* NSArray+MLNAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSArray+MLNAdditions.h"; sourceTree = ""; }; - 40E1601A1DF216E6005EA6D9 /* MLNStyleLayerTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNStyleLayerTests.h; sourceTree = ""; }; - 40E1601B1DF216E6005EA6D9 /* MLNStyleLayerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLNStyleLayerTests.m; sourceTree = ""; }; - 4BBCDC49265260FE004106C3 /* MLNTileServerOptions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNTileServerOptions.mm; sourceTree = ""; }; - 4BBCDC4A265260FF004106C3 /* MLNDefaultStyle.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNDefaultStyle.mm; sourceTree = ""; }; - 4BBCDC4B265260FF004106C3 /* MLNTileServerOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNTileServerOptions.h; sourceTree = ""; }; - 4BBCDC4C265260FF004106C3 /* MLNDefaultStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNDefaultStyle.h; sourceTree = ""; }; - 556660C51E1BEA0100E2C41B /* MLNFoundation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MLNFoundation.h; sourceTree = ""; }; - 556660D51E1D07E400E2C41B /* MLNVersionNumber.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = MLNVersionNumber.m; path = ../../darwin/test/MLNVersionNumber.m; sourceTree = ""; }; - 558DE7A41E56161C00C7916D /* MLNFoundation_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNFoundation_Private.h; sourceTree = ""; }; - 558DE7A51E56161C00C7916D /* MLNFoundation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNFoundation.mm; sourceTree = ""; }; - 5591AC682298361600FF9ADF /* MLNMapView+Impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "MLNMapView+Impl.h"; sourceTree = ""; }; - 5591AC692298361600FF9ADF /* MLNMapView+Impl.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "MLNMapView+Impl.mm"; sourceTree = ""; }; - 55CAF6312294407F00F17770 /* MLNMapView+OpenGL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MLNMapView+OpenGL.h"; sourceTree = ""; }; - 55CAF6332294409B00F17770 /* MLNMapView+OpenGL.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = "MLNMapView+OpenGL.mm"; sourceTree = ""; }; - 55CF7532213EDADF00ED86C4 /* libmbgl-vendor-icu.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = "libmbgl-vendor-icu.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 55D9B4B01D005D3900C1CCE2 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; - 55E2AD101E5B0A6900E8C587 /* MLNOfflineStorageTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MLNOfflineStorageTests.mm; path = ../../darwin/test/MLNOfflineStorageTests.mm; sourceTree = ""; }; - 747ABE54219B2BDA00523B67 /* MLNFillExtrusionStyleLayer_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNFillExtrusionStyleLayer_Private.h; sourceTree = ""; }; - 747ABE55219B2BDA00523B67 /* MLNCircleStyleLayer_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNCircleStyleLayer_Private.h; sourceTree = ""; }; - 747ABE56219B2BDB00523B67 /* MLNBackgroundStyleLayer_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNBackgroundStyleLayer_Private.h; sourceTree = ""; }; - 747ABE57219B2BDB00523B67 /* MLNFillStyleLayer_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNFillStyleLayer_Private.h; sourceTree = ""; }; - 747ABE58219B2BDB00523B67 /* MLNHeatmapStyleLayer_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNHeatmapStyleLayer_Private.h; sourceTree = ""; }; - 747ABE5E219B2BED00523B67 /* MLNHillshadeStyleLayer_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNHillshadeStyleLayer_Private.h; sourceTree = ""; }; - 747ABE60219B2C0000523B67 /* MLNLineStyleLayer_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNLineStyleLayer_Private.h; sourceTree = ""; }; - 747ABE62219B2C1700523B67 /* MLNOpenGLStyleLayer_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNOpenGLStyleLayer_Private.h; sourceTree = ""; }; - 747ABE63219B2C1700523B67 /* MLNRasterStyleLayer_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNRasterStyleLayer_Private.h; sourceTree = ""; }; - 747ABE66219B2C3200523B67 /* MLNSymbolStyleLayer_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNSymbolStyleLayer_Private.h; sourceTree = ""; }; - 749EC88F2199CCB8005608D7 /* MLNStyleLayerManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNStyleLayerManager.h; sourceTree = ""; }; - 749EC8902199CCB9005608D7 /* MLNStyleLayerManager.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNStyleLayerManager.mm; sourceTree = ""; }; - 89462398200D199100DA8EF2 /* heatmap.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = heatmap.json; sourceTree = ""; }; - 8946239A200E73CA00DA8EF2 /* MLNHeatmapStyleLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNHeatmapStyleLayer.h; sourceTree = ""; }; - 8946239B200E73CA00DA8EF2 /* MLNHeatmapStyleLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNHeatmapStyleLayer.mm; sourceTree = ""; }; - 92092EEE1F5EB10E00AF5130 /* MLNMapSnapshotter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNMapSnapshotter.h; sourceTree = ""; }; - 92092EEF1F5EB10E00AF5130 /* MLNMapSnapshotter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNMapSnapshotter.mm; sourceTree = ""; }; - 920A3E581E6F859D00C16EFC /* MLNSourceQueryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLNSourceQueryTests.m; sourceTree = ""; }; - 9221BAAE20699CBA0054BDF4 /* MLNTilePyramidOfflineRegion_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNTilePyramidOfflineRegion_Private.h; sourceTree = ""; }; - 9250B8C22073C69000EF338C /* MLNShapeOfflineRegion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNShapeOfflineRegion.h; sourceTree = ""; }; - 92F2C3EA1F0E3A1900268EC0 /* MLNRendererFrontend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNRendererFrontend.h; sourceTree = ""; }; - 92FC0AE3207CC8DA007B6B54 /* MLNShapeOfflineRegion_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNShapeOfflineRegion_Private.h; sourceTree = ""; }; - 92FC0AE5207CDD8D007B6B54 /* MLNShapeOfflineRegion.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNShapeOfflineRegion.mm; sourceTree = ""; }; - 9654C12A1FFC38E000DB6A19 /* MLNPolyline_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNPolyline_Private.h; sourceTree = ""; }; - 9654C12C1FFC394700DB6A19 /* MLNPolygon_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNPolygon_Private.h; sourceTree = ""; }; - 966091701E5BBFF700A9A03B /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; - 966091711E5BBFF900A9A03B /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; - 966091721E5BBFFA00A9A03B /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/Localizable.strings; sourceTree = ""; }; - 966091731E5BBFFA00A9A03B /* lt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lt; path = lt.lproj/Localizable.strings; sourceTree = ""; }; - 96E027321E57C9A7004B8E66 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = ""; }; - 96E027341E57C9A9004B8E66 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; - 96E027351E57C9AB004B8E66 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/Localizable.strings"; sourceTree = ""; }; - 96E027361E57C9AC004B8E66 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; - 96E027371E57C9B5004B8E66 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; - 96E027381E57C9B7004B8E66 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; - 96E027391E57C9B9004B8E66 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; - 96E0273A1E57C9BB004B8E66 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; - 96E0273B1E57C9BC004B8E66 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; - CA0B3C042329F7E600E4B493 /* MLNTestAssertionHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MLNTestAssertionHandler.h; path = ../../darwin/test/MLNTestAssertionHandler.h; sourceTree = ""; }; - CA0B3C052329F7E600E4B493 /* MLNTestAssertionHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MLNTestAssertionHandler.m; path = ../../darwin/test/MLNTestAssertionHandler.m; sourceTree = ""; }; - CA0B3C082329FB4800E4B493 /* MLNOfflinePackTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MLNOfflinePackTests.mm; path = ../../darwin/test/MLNOfflinePackTests.mm; sourceTree = ""; }; - CA4045C4216720D700B356E1 /* MLNCluster.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNCluster.h; sourceTree = ""; }; - CA8FBC0C21A4A74300D1203C /* MLNRendererConfigurationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MLNRendererConfigurationTests.m; path = ../../darwin/test/MLNRendererConfigurationTests.m; sourceTree = ""; }; - CA9461A520884CCB0015EB12 /* MLNAnnotationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MLNAnnotationTests.m; path = test/MLNAnnotationTests.m; sourceTree = SOURCE_ROOT; }; - CAD9D0AB22A88A32001B25EE /* MLNResourceTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MLNResourceTests.mm; path = ../../darwin/test/MLNResourceTests.mm; sourceTree = ""; }; - CF762DEE22DC7EFF00338472 /* MLNLoggingConfiguration.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNLoggingConfiguration.mm; sourceTree = ""; }; - DA00FC881D5EEAC3009AABC8 /* MLNAttributionInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNAttributionInfo.h; sourceTree = ""; }; - DA00FC891D5EEAC3009AABC8 /* MLNAttributionInfo.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNAttributionInfo.mm; sourceTree = ""; }; - DA0CD58D1CF56F5800A5F5A5 /* MLNFeatureTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MLNFeatureTests.mm; path = ../../darwin/test/MLNFeatureTests.mm; sourceTree = ""; }; - DA0E9F3A24119F6B007C75D4 /* MLNImageTests.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = MLNImageTests.mm; path = ../../darwin/test/MLNImageTests.mm; sourceTree = ""; }; - DA1AC01E1E5B8826006DF1D6 /* lt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = lt; path = lt.lproj/Localizable.strings; sourceTree = ""; }; - DA1AC01F1E5B8904006DF1D6 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = uk; path = uk.lproj/Foundation.stringsdict; sourceTree = ""; }; - DA2207BA1DC076930002F84D /* test-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "test-Bridging-Header.h"; sourceTree = ""; }; - DA2784FD1DF03060001D5B8D /* Media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Media.xcassets; path = ../../darwin/test/Media.xcassets; sourceTree = ""; }; - DA2987591E1A4290002299F5 /* MLNDocumentationExampleTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MLNDocumentationExampleTests.swift; path = ../../darwin/test/MLNDocumentationExampleTests.swift; sourceTree = ""; }; - DA3389601FA3EAC4001EA329 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Foundation.strings"; sourceTree = ""; }; - DA3389611FA3EDCE001EA329 /* bg */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bg; path = bg.lproj/Localizable.strings; sourceTree = ""; }; - DA3389621FA3EDEF001EA329 /* bg */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bg; path = bg.lproj/Foundation.strings; sourceTree = ""; }; - DA3389631FA3EDF5001EA329 /* bg */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = bg; path = bg.lproj/Foundation.stringsdict; sourceTree = ""; }; - DA3389641FA3EE00001EA329 /* bg */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bg; path = bg.lproj/Localizable.strings; sourceTree = ""; }; - DA33896C1FA3EF51001EA329 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = hu; path = hu.lproj/Foundation.stringsdict; sourceTree = ""; }; - DA35A2A31CC9EB1A00E826B2 /* MLNCoordinateFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNCoordinateFormatter.h; sourceTree = ""; }; - DA35A2A51CC9EB2700E826B2 /* MLNCoordinateFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLNCoordinateFormatter.m; sourceTree = ""; }; - DA35A2A71CC9F41600E826B2 /* MLNCoordinateFormatterTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MLNCoordinateFormatterTests.m; path = ../../darwin/test/MLNCoordinateFormatterTests.m; sourceTree = ""; }; - DA35A2AB1CCA091800E826B2 /* MLNCompassDirectionFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNCompassDirectionFormatter.h; sourceTree = ""; }; - DA35A2AC1CCA091800E826B2 /* MLNCompassDirectionFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLNCompassDirectionFormatter.m; sourceTree = ""; }; - DA35A2B51CCA14D700E826B2 /* MLNCompassDirectionFormatterTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MLNCompassDirectionFormatterTests.m; path = ../../darwin/test/MLNCompassDirectionFormatterTests.m; sourceTree = ""; }; - DA35A2BD1CCA9B1A00E826B2 /* MLNClockDirectionFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNClockDirectionFormatter.h; sourceTree = ""; }; - DA35A2BE1CCA9B1A00E826B2 /* MLNClockDirectionFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLNClockDirectionFormatter.m; sourceTree = ""; }; - DA35A2C11CCA9F4A00E826B2 /* MLNClockDirectionFormatterTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MLNClockDirectionFormatterTests.m; path = ../../darwin/test/MLNClockDirectionFormatterTests.m; sourceTree = ""; }; - DA35A2CD1CCAAED300E826B2 /* NSValue+MLNAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSValue+MLNAdditions.h"; sourceTree = ""; }; - DA35A2CE1CCAAED300E826B2 /* NSValue+MLNAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSValue+MLNAdditions.m"; sourceTree = ""; }; - DA35D0891E1A631B007DED41 /* one-liner.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = "one-liner.json"; path = "../../darwin/test/one-liner.json"; sourceTree = ""; }; - DA35D9C4240916370013ECB0 /* MLNReachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNReachability.h; sourceTree = ""; }; - DA35D9C5240916380013ECB0 /* MLNReachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLNReachability.m; sourceTree = ""; }; - DA35D9C82409205B0013ECB0 /* libmbgl-vendor-csscolorparser.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = "libmbgl-vendor-csscolorparser.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - DA35D9CA240920640013ECB0 /* libmbgl-vendor-parsedate.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = "libmbgl-vendor-parsedate.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - DA551B7F1DB496AC0009AFAF /* MLNTileSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNTileSource.h; sourceTree = ""; }; - DA551B801DB496AC0009AFAF /* MLNTileSource_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNTileSource_Private.h; sourceTree = ""; }; - DA551B811DB496AC0009AFAF /* MLNTileSource.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNTileSource.mm; sourceTree = ""; }; - DA5589761D320C41006B7F64 /* wms.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = wms.json; sourceTree = ""; }; - DA57D4B01EBC699800793288 /* MLNDocumentationGuideTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MLNDocumentationGuideTests.swift; path = ../../darwin/test/MLNDocumentationGuideTests.swift; sourceTree = ""; }; - DA6023EF1E4CE8E500DBFF23 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Foundation.strings; sourceTree = ""; }; - DA6023F01E4CE8FF00DBFF23 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = sv; path = sv.lproj/Foundation.stringsdict; sourceTree = ""; }; - DA618B131E68850300CB7F44 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; - DA618B141E68852C00CB7F44 /* ru */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; - DA618B151E6886DF00CB7F44 /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ca; path = ca.lproj/Foundation.stringsdict; sourceTree = ""; }; - DA618B161E6886E000CB7F44 /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = ca.lproj/Localizable.strings; sourceTree = ""; }; - DA618B171E68876C00CB7F44 /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = ca.lproj/Foundation.strings; sourceTree = ""; }; - DA618B181E6887C600CB7F44 /* ca */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = ca; path = ca.lproj/Localizable.strings; sourceTree = ""; }; - DA618B231E6891ED00CB7F44 /* lt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = lt; path = lt.lproj/Foundation.strings; sourceTree = ""; }; - DA618B241E6891F300CB7F44 /* lt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = lt; path = lt.lproj/Foundation.stringsdict; sourceTree = ""; }; - DA618B271E68926E00CB7F44 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; - DA618B2A1E6892B500CB7F44 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Localizable.strings; sourceTree = ""; }; - DA6408D51DA4E5DA00908C90 /* MLNVectorStyleLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNVectorStyleLayer.h; sourceTree = ""; }; - DA6408D61DA4E5DA00908C90 /* MLNVectorStyleLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNVectorStyleLayer.mm; sourceTree = ""; }; - DA695423215B1E6C002041A4 /* MLNMapCameraTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = MLNMapCameraTests.m; path = ../../darwin/test/MLNMapCameraTests.m; sourceTree = ""; }; - DA704CBA1F6372E8004B3F28 /* ru */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Foundation.strings; sourceTree = ""; }; - DA704CBE1F637531004B3F28 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/Localizable.strings; sourceTree = ""; }; - DA704CBF1F637548004B3F28 /* hu */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/Localizable.strings; sourceTree = ""; }; - DA704CC61F666385004B3F28 /* uk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/Foundation.strings; sourceTree = ""; }; - DA7262051DEEDD460043BB89 /* MLNOpenGLStyleLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNOpenGLStyleLayer.h; sourceTree = ""; }; - DA7262061DEEDD460043BB89 /* MLNOpenGLStyleLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNOpenGLStyleLayer.mm; sourceTree = ""; }; - DA737ADE1E5914AD00AD2CDE /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = es; path = es.lproj/Foundation.stringsdict; sourceTree = ""; }; - DA737ADF1E5914D300AD2CDE /* es */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; - DA737AE31E5915A500AD2CDE /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = pl; path = pl.lproj/Foundation.stringsdict; sourceTree = ""; }; - DA737AE41E5915B000AD2CDE /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Localizable.strings; sourceTree = ""; }; - DA737AEC1E59180E00AD2CDE /* uk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = uk; path = uk.lproj/Localizable.strings; sourceTree = ""; }; - DA7DC9801DED5F5C0027472F /* MLNVectorTileSource_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNVectorTileSource_Private.h; sourceTree = ""; }; - DA7DC9821DED647F0027472F /* MLNRasterTileSource_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNRasterTileSource_Private.h; sourceTree = ""; }; - DA80E95D1FE84A300065FC9B /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; - DA80E95F1FE84A540065FC9B /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ar; path = ar.lproj/Foundation.stringsdict; sourceTree = ""; }; - DA839E921CC2E3400062CAFB /* Mapbox GL.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Mapbox GL.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - DA839E951CC2E3400062CAFB /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - DA839E961CC2E3400062CAFB /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - DA839E991CC2E3400062CAFB /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - DA839E9B1CC2E3400062CAFB /* MapDocument.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MapDocument.h; sourceTree = ""; }; - DA839E9C1CC2E3400062CAFB /* MapDocument.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MapDocument.m; sourceTree = ""; }; - DA839E9F1CC2E3400062CAFB /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MapDocument.xib; sourceTree = ""; }; - DA839EA11CC2E3400062CAFB /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - DA839EA41CC2E3400062CAFB /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; - DA839EA61CC2E3400062CAFB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - DA87A9961DC9D88400810D09 /* MLNShapeSourceTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNShapeSourceTests.mm; sourceTree = ""; }; - DA87A9971DC9D88400810D09 /* MLNTileSetTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNTileSetTests.mm; sourceTree = ""; }; - DA87A99B1DC9D8DD00810D09 /* MLNShapeSource_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNShapeSource_Private.h; sourceTree = ""; }; - DA87A99F1DC9DC6200810D09 /* MLNValueEvaluator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNValueEvaluator.h; sourceTree = ""; }; - DA88520F1E0A4D0D009D7AD6 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; - DA8852101E0A4D3A009D7AD6 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Foundation.strings"; sourceTree = ""; }; - DA8933A61CCD287300E68420 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MLNAnnotationCallout.xib; sourceTree = ""; }; - DA8933AC1CCD290700E68420 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = ""; }; - DA8933B41CCD2C2500E68420 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Foundation.strings; sourceTree = ""; }; - DA8933B71CCD2C2D00E68420 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = en; path = en.lproj/Foundation.stringsdict; sourceTree = ""; }; - DA8F25741D51C5F40010E6B5 /* MLNFillStyleLayerTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNFillStyleLayerTests.mm; sourceTree = ""; }; - DA8F25751D51C5F40010E6B5 /* MLNRasterStyleLayerTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNRasterStyleLayerTests.mm; sourceTree = ""; }; - DA8F25761D51C5F40010E6B5 /* MLNSymbolStyleLayerTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNSymbolStyleLayerTests.mm; sourceTree = ""; }; - DA8F25771D51C5F40010E6B5 /* MLNLineStyleLayerTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNLineStyleLayerTests.mm; sourceTree = ""; }; - DA8F25781D51C5F40010E6B5 /* MLNCircleStyleLayerTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNCircleStyleLayerTests.mm; sourceTree = ""; }; - DA8F25791D51C5F40010E6B5 /* MLNBackgroundStyleLayerTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNBackgroundStyleLayerTests.mm; sourceTree = ""; }; - DA8F25851D51C9E10010E6B5 /* MLNBackgroundStyleLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNBackgroundStyleLayer.h; sourceTree = ""; }; - DA8F25861D51C9E10010E6B5 /* MLNBackgroundStyleLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNBackgroundStyleLayer.mm; sourceTree = ""; }; - DA8F25891D51CA540010E6B5 /* MLNLineStyleLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNLineStyleLayer.h; sourceTree = ""; }; - DA8F258A1D51CA540010E6B5 /* MLNLineStyleLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNLineStyleLayer.mm; sourceTree = ""; }; - DA8F258D1D51CA600010E6B5 /* MLNRasterStyleLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNRasterStyleLayer.h; sourceTree = ""; }; - DA8F258E1D51CA600010E6B5 /* MLNRasterStyleLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNRasterStyleLayer.mm; sourceTree = ""; }; - DA8F25911D51CA750010E6B5 /* MLNSymbolStyleLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNSymbolStyleLayer.h; sourceTree = ""; }; - DA8F25921D51CA750010E6B5 /* MLNSymbolStyleLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNSymbolStyleLayer.mm; sourceTree = ""; }; - DA8F25951D51CAC70010E6B5 /* MLNVectorTileSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNVectorTileSource.h; sourceTree = ""; }; - DA8F25961D51CAC70010E6B5 /* MLNVectorTileSource.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNVectorTileSource.mm; sourceTree = ""; }; - DA8F25991D51CAD00010E6B5 /* MLNSource_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNSource_Private.h; sourceTree = ""; }; - DA8F259B1D51CB000010E6B5 /* MLNStyleValue_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNStyleValue_Private.h; sourceTree = ""; }; - DA8F25A61D51CB270010E6B5 /* NSValue+MLNStyleAttributeAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSValue+MLNStyleAttributeAdditions.h"; sourceTree = ""; }; - DA8F25A71D51CB270010E6B5 /* NSValue+MLNStyleAttributeAdditions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "NSValue+MLNStyleAttributeAdditions.mm"; sourceTree = ""; }; - DA8F25B51D51D2240010E6B5 /* MLNStyleLayerTests.mm.ejs */ = {isa = PBXFileReference; lastKnownFileType = text; name = MLNStyleLayerTests.mm.ejs; path = ../test/MLNStyleLayerTests.mm.ejs; sourceTree = ""; }; - DA8F25B61D51D2240010E6B5 /* MLNStyleLayer.h.ejs */ = {isa = PBXFileReference; lastKnownFileType = text; path = MLNStyleLayer.h.ejs; sourceTree = ""; }; - DA8F25B71D51D2240010E6B5 /* MLNStyleLayer.mm.ejs */ = {isa = PBXFileReference; lastKnownFileType = text; path = MLNStyleLayer.mm.ejs; sourceTree = ""; }; - DA934097208562590059919A /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/Localizable.strings"; sourceTree = ""; }; - DA934098208562870059919A /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "pt-PT"; path = "pt-PT.lproj/Foundation.stringsdict"; sourceTree = ""; }; - DA9340992085629E0059919A /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/Localizable.strings"; sourceTree = ""; }; - DA9340A0208565870059919A /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; - DA9C01301E4C7B9300C4742A /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "pt-BR"; path = "pt-BR.lproj/Foundation.stringsdict"; sourceTree = ""; }; - DA9C01311E4C7B9F00C4742A /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; - DAA32CA61E4C4849006F8D24 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; - DAA32CA71E4C486D006F8D24 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Foundation.strings; sourceTree = ""; }; - DAA32CA81E4C48B9006F8D24 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = de; path = de.lproj/Foundation.stringsdict; sourceTree = ""; }; - DAA32CAE1E4C4B03006F8D24 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = fr; path = fr.lproj/Foundation.stringsdict; sourceTree = ""; }; - DAA32CAF1E4C4B0D006F8D24 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; - DAA32CB21E4C4CB7006F8D24 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Foundation.strings; sourceTree = ""; }; - DAA32CB31E4C4CC3006F8D24 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; - DAA32CBA1E4C4F10006F8D24 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Localizable.strings; sourceTree = ""; }; - DAA32CC01E4C4F89006F8D24 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Foundation.strings; sourceTree = ""; }; - DAA32CC11E4C4F93006F8D24 /* vi */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/Localizable.strings; sourceTree = ""; }; - DAA4227B24294137008457DB /* MLNMapSnapshotterTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = MLNMapSnapshotterTests.m; path = ../../darwin/test/MLNMapSnapshotterTests.m; sourceTree = ""; }; - DAA48EFB1D6A4731006A7E36 /* StyleLayerIconTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleLayerIconTransformer.h; sourceTree = ""; }; - DAA48EFC1D6A4731006A7E36 /* StyleLayerIconTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StyleLayerIconTransformer.m; sourceTree = ""; }; - DAA998F91E9F545C002E6EA6 /* MLNFillExtrusionStyleLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNFillExtrusionStyleLayer.h; sourceTree = ""; }; - DAA998FA1E9F545C002E6EA6 /* MLNFillExtrusionStyleLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNFillExtrusionStyleLayer.mm; sourceTree = ""; }; - DAA999001E9F5EC5002E6EA6 /* MLNFillExtrusionStyleLayerTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNFillExtrusionStyleLayerTests.mm; sourceTree = ""; }; - DAC25FC9200FD5E2009BE98E /* NSExpression+MLNPrivateAdditions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSExpression+MLNPrivateAdditions.h"; sourceTree = ""; }; - DAC2ABC41CC6D343006D18C4 /* MLNAnnotationImage_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNAnnotationImage_Private.h; sourceTree = ""; }; - DAC832622404AF4300A61BF8 /* macos.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = macos.xcconfig; sourceTree = ""; }; - DAC832632404AF7F00A61BF8 /* darwin.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = darwin.xcconfig; path = ../darwin/darwin.xcconfig; sourceTree = ""; }; - DAC832652404AF9E00A61BF8 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; name = Makefile; path = ../../Makefile; sourceTree = ""; }; - DAC832662404AFB400A61BF8 /* ci.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = ci.xcconfig; path = ../darwin/ci.xcconfig; sourceTree = ""; }; - DAC832682404B26400A61BF8 /* jazzy.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = jazzy.yml; sourceTree = ""; }; - DAC8A47D24527EBB00C795BB /* glyphs.pbf */ = {isa = PBXFileReference; lastKnownFileType = file; name = glyphs.pbf; path = ../../../../../test/fixtures/resources/glyphs.pbf; sourceTree = ""; }; - DAC8A4832452972F00C795BB /* mixed.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = mixed.json; path = ../../../../../test/fixtures/local_glyphs/mixed.json; sourceTree = ""; }; - DACA8620201920BE00E9693A /* MLNRasterDEMSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MLNRasterDEMSource.h; sourceTree = ""; }; - DACA8621201920BE00E9693A /* MLNRasterDEMSource.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNRasterDEMSource.mm; sourceTree = ""; }; - DACB0C371E18DFFD005DDBEA /* MLNStyle+MBXAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "MLNStyle+MBXAdditions.h"; sourceTree = ""; }; - DACB0C381E18DFFD005DDBEA /* MLNStyle+MBXAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MLNStyle+MBXAdditions.m"; sourceTree = ""; }; - DACBC6082011885800C4D7E2 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; - DACBC6092011888C00C4D7E2 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Foundation.strings; sourceTree = ""; }; - DACBC60A2011889E00C4D7E2 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Localizable.strings; sourceTree = ""; }; - DACC22121CF3D3E200D220D9 /* MLNFeature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNFeature.h; sourceTree = ""; }; - DACC22131CF3D3E200D220D9 /* MLNFeature.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNFeature.mm; sourceTree = ""; }; - DACC22171CF3D4F700D220D9 /* MLNFeature_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNFeature_Private.h; sourceTree = ""; }; - DACCD9C71F1F443B00BB09A1 /* fr */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Foundation.strings; sourceTree = ""; }; - DACFE7971F66EA0C00630DA8 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = vi; path = vi.lproj/Foundation.stringsdict; sourceTree = ""; }; - DAD165721CF4CD7A001FF4B9 /* MLNShapeCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNShapeCollection.h; sourceTree = ""; }; - DAD165731CF4CD7A001FF4B9 /* MLNShapeCollection.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNShapeCollection.mm; sourceTree = ""; }; - DAD88E03202ACF5900AAA536 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; - DAD88E04202ACF7C00AAA536 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Foundation.strings; sourceTree = ""; }; - DAD88E05202ACF8200AAA536 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = da; path = da.lproj/Foundation.stringsdict; sourceTree = ""; }; - DAD88E06202ACF9200AAA536 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = ""; }; - DAE6C2E11CC304F900DB3429 /* Credits.rtf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.rtf; path = Credits.rtf; sourceTree = ""; }; - DAE6C2E31CC3050F00DB3429 /* DroppedPinAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DroppedPinAnnotation.h; sourceTree = ""; }; - DAE6C2E41CC3050F00DB3429 /* DroppedPinAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DroppedPinAnnotation.m; sourceTree = ""; }; - DAE6C2E51CC3050F00DB3429 /* LocationCoordinate2DTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocationCoordinate2DTransformer.h; sourceTree = ""; }; - DAE6C2E61CC3050F00DB3429 /* LocationCoordinate2DTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LocationCoordinate2DTransformer.m; sourceTree = ""; }; - DAE6C2E91CC3050F00DB3429 /* OfflinePackNameValueTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OfflinePackNameValueTransformer.h; sourceTree = ""; }; - DAE6C2EA1CC3050F00DB3429 /* OfflinePackNameValueTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OfflinePackNameValueTransformer.m; sourceTree = ""; }; - DAE6C2EB1CC3050F00DB3429 /* TimeIntervalTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TimeIntervalTransformer.h; sourceTree = ""; }; - DAE6C2EC1CC3050F00DB3429 /* TimeIntervalTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TimeIntervalTransformer.m; sourceTree = ""; }; - DAE6C3281CC30DB200DB3429 /* Mapbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Mapbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - DAE6C32C1CC30DB200DB3429 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - DAE6C3311CC30DB200DB3429 /* test.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = test.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - DAE6C33A1CC30DB200DB3429 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - DAE6C3451CC31D1200DB3429 /* libmbgl-core.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libmbgl-core.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - DAE6C34A1CC31E0400DB3429 /* MLNSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNSettings.h; sourceTree = ""; }; - DAE6C34B1CC31E0400DB3429 /* MLNAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNAnnotation.h; sourceTree = ""; }; - DAE6C34C1CC31E0400DB3429 /* MLNGeometry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNGeometry.h; sourceTree = ""; }; - DAE6C34D1CC31E0400DB3429 /* MLNMapCamera.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNMapCamera.h; sourceTree = ""; }; - DAE6C34E1CC31E0400DB3429 /* MLNMultiPoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNMultiPoint.h; sourceTree = ""; }; - DAE6C34F1CC31E0400DB3429 /* MLNOfflinePack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNOfflinePack.h; sourceTree = ""; }; - DAE6C3501CC31E0400DB3429 /* MLNOfflineRegion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNOfflineRegion.h; sourceTree = ""; }; - DAE6C3511CC31E0400DB3429 /* MLNOfflineStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNOfflineStorage.h; sourceTree = ""; }; - DAE6C3521CC31E0400DB3429 /* MLNOverlay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNOverlay.h; sourceTree = ""; }; - DAE6C3531CC31E0400DB3429 /* MLNPointAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNPointAnnotation.h; sourceTree = ""; }; - DAE6C3541CC31E0400DB3429 /* MLNPolygon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNPolygon.h; sourceTree = ""; }; - DAE6C3551CC31E0400DB3429 /* MLNPolyline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNPolyline.h; sourceTree = ""; }; - DAE6C3561CC31E0400DB3429 /* MLNShape.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNShape.h; sourceTree = ""; }; - DAE6C3571CC31E0400DB3429 /* MLNStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNStyle.h; sourceTree = ""; }; - DAE6C3581CC31E0400DB3429 /* MLNTilePyramidOfflineRegion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNTilePyramidOfflineRegion.h; sourceTree = ""; }; - DAE6C3591CC31E0400DB3429 /* MLNTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNTypes.h; sourceTree = ""; }; - DAE6C36A1CC31E2A00DB3429 /* MLNSettings_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNSettings_Private.h; sourceTree = ""; }; - DAE6C36B1CC31E2A00DB3429 /* MLNSettings.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNSettings.mm; sourceTree = ""; }; - DAE6C36C1CC31E2A00DB3429 /* MLNGeometry_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNGeometry_Private.h; sourceTree = ""; }; - DAE6C36D1CC31E2A00DB3429 /* MLNGeometry.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNGeometry.mm; sourceTree = ""; }; - DAE6C36E1CC31E2A00DB3429 /* MLNMapCamera.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNMapCamera.mm; sourceTree = ""; }; - DAE6C36F1CC31E2A00DB3429 /* MLNMultiPoint_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNMultiPoint_Private.h; sourceTree = ""; }; - DAE6C3701CC31E2A00DB3429 /* MLNMultiPoint.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNMultiPoint.mm; sourceTree = ""; }; - DAE6C3711CC31E2A00DB3429 /* MLNOfflinePack_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNOfflinePack_Private.h; sourceTree = ""; }; - DAE6C3721CC31E2A00DB3429 /* MLNOfflinePack.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNOfflinePack.mm; sourceTree = ""; }; - DAE6C3731CC31E2A00DB3429 /* MLNOfflineRegion_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNOfflineRegion_Private.h; sourceTree = ""; }; - DAE6C3741CC31E2A00DB3429 /* MLNOfflineStorage_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNOfflineStorage_Private.h; sourceTree = ""; }; - DAE6C3751CC31E2A00DB3429 /* MLNOfflineStorage.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNOfflineStorage.mm; sourceTree = ""; }; - DAE6C3761CC31E2A00DB3429 /* MLNPointAnnotation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNPointAnnotation.mm; sourceTree = ""; }; - DAE6C3771CC31E2A00DB3429 /* MLNPolygon.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNPolygon.mm; sourceTree = ""; }; - DAE6C3781CC31E2A00DB3429 /* MLNPolyline.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNPolyline.mm; sourceTree = ""; }; - DAE6C3791CC31E2A00DB3429 /* MLNShape.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNShape.mm; sourceTree = ""; }; - DAE6C37A1CC31E2A00DB3429 /* MLNStyle.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNStyle.mm; sourceTree = ""; }; - DAE6C37B1CC31E2A00DB3429 /* MLNTilePyramidOfflineRegion.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNTilePyramidOfflineRegion.mm; sourceTree = ""; }; - DAE6C37C1CC31E2A00DB3429 /* MLNTypes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLNTypes.m; sourceTree = ""; }; - DAE6C37D1CC31E2A00DB3429 /* NSBundle+MLNAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSBundle+MLNAdditions.h"; sourceTree = ""; }; - DAE6C37E1CC31E2A00DB3429 /* NSBundle+MLNAdditions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSBundle+MLNAdditions.mm"; sourceTree = ""; }; - DAE6C37F1CC31E2A00DB3429 /* NSException+MLNAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSException+MLNAdditions.h"; sourceTree = ""; }; - DAE6C3801CC31E2A00DB3429 /* NSProcessInfo+MLNAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSProcessInfo+MLNAdditions.h"; sourceTree = ""; }; - DAE6C3811CC31E2A00DB3429 /* NSProcessInfo+MLNAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSProcessInfo+MLNAdditions.m"; sourceTree = ""; }; - DAE6C3821CC31E2A00DB3429 /* NSString+MLNAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+MLNAdditions.h"; sourceTree = ""; }; - DAE6C3831CC31E2A00DB3429 /* NSString+MLNAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+MLNAdditions.m"; sourceTree = ""; }; - DAE6C39F1CC31E9400DB3429 /* MLNAnnotationImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNAnnotationImage.h; sourceTree = ""; }; - DAE6C3A01CC31E9400DB3429 /* MLNMapView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNMapView.h; sourceTree = ""; }; - DAE6C3A11CC31E9400DB3429 /* MLNMapView+IBAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "MLNMapView+IBAdditions.h"; sourceTree = ""; }; - DAE6C3A21CC31E9400DB3429 /* MLNMapViewDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNMapViewDelegate.h; sourceTree = ""; }; - DAE6C3A71CC31EF300DB3429 /* MLNAnnotationImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLNAnnotationImage.m; sourceTree = ""; }; - DAE6C3A81CC31EF300DB3429 /* MLNAttributionButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNAttributionButton.h; sourceTree = ""; }; - DAE6C3A91CC31EF300DB3429 /* MLNAttributionButton.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNAttributionButton.mm; sourceTree = ""; }; - DAE6C3AA1CC31EF300DB3429 /* MLNCompassCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNCompassCell.h; sourceTree = ""; }; - DAE6C3AB1CC31EF300DB3429 /* MLNCompassCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLNCompassCell.m; sourceTree = ""; }; - DAE6C3AC1CC31EF300DB3429 /* MLNMapView_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNMapView_Private.h; sourceTree = ""; }; - DAE6C3AD1CC31EF300DB3429 /* MLNMapView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNMapView.mm; sourceTree = ""; }; - DAE6C3AE1CC31EF300DB3429 /* MLNMapView+IBAdditions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "MLNMapView+IBAdditions.mm"; sourceTree = ""; }; - DAE6C3AF1CC31EF300DB3429 /* MLNOpenGLLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNOpenGLLayer.h; sourceTree = ""; }; - DAE6C3B01CC31EF300DB3429 /* MLNOpenGLLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNOpenGLLayer.mm; sourceTree = ""; }; - DAE6C3BB1CC31F2E00DB3429 /* default_marker.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = default_marker.pdf; sourceTree = ""; }; - DAE6C3BC1CC31F2E00DB3429 /* mapbox.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = mapbox.pdf; sourceTree = ""; }; - DAE6C3C11CC31F4500DB3429 /* Mapbox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Mapbox.h; path = src/Mapbox.h; sourceTree = SOURCE_ROOT; }; - DAE6C3C61CC3499100DB3429 /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; }; - DAE6C3C81CC34BD800DB3429 /* MLNGeometryTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MLNGeometryTests.mm; path = ../../darwin/test/MLNGeometryTests.mm; sourceTree = ""; }; - DAE6C3CA1CC34BD800DB3429 /* MLNOfflineRegionTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MLNOfflineRegionTests.m; path = ../../darwin/test/MLNOfflineRegionTests.m; sourceTree = ""; }; - DAE6C3CC1CC34BD800DB3429 /* MLNStyleTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MLNStyleTests.mm; path = ../../darwin/test/MLNStyleTests.mm; sourceTree = ""; }; - DAE7DEC31E24549F007505A6 /* MLNNSStringAdditionsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MLNNSStringAdditionsTests.m; path = ../../darwin/test/MLNNSStringAdditionsTests.m; sourceTree = ""; }; - DAE8CCAA1E6E8605009B5CB0 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ru; path = ru.lproj/Foundation.stringsdict; sourceTree = ""; }; - DAE8CCAB1E6E8B72009B5CB0 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; - DAE8CCAC1E6E8B8D009B5CB0 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; - DAE9E0F21EB7BF39001E8E8B /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Foundation.strings; sourceTree = ""; }; - DAE9ED53223897C400C01291 /* gl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = gl; path = gl.lproj/Localizable.strings; sourceTree = ""; }; - DAE9ED54223897ED00C01291 /* gl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = gl; path = gl.lproj/Foundation.strings; sourceTree = ""; }; - DAE9ED55223898B200C01291 /* gl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = gl; path = gl.lproj/Foundation.stringsdict; sourceTree = ""; }; - DAE9ED56223898CF00C01291 /* gl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = gl; path = gl.lproj/Localizable.strings; sourceTree = ""; }; - DAED385D1D62CED700D7640F /* NSURL+MLNAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSURL+MLNAdditions.h"; sourceTree = ""; }; - DAED385E1D62CED700D7640F /* NSURL+MLNAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSURL+MLNAdditions.m"; sourceTree = ""; }; - DAEDC4311D6033F1000224FF /* MLNAttributionInfoTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MLNAttributionInfoTests.m; path = ../../darwin/test/MLNAttributionInfoTests.m; sourceTree = ""; }; - DAEDC4361D606291000224FF /* MLNAttributionButtonTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLNAttributionButtonTests.m; sourceTree = ""; }; - DAF0D80D1DFE0E5D00B28378 /* MLNPointCollection_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNPointCollection_Private.h; sourceTree = ""; }; - DAF0D8151DFE6B1800B28378 /* MLNAttributionInfo_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNAttributionInfo_Private.h; sourceTree = ""; }; - DAF25713201901C100367EF5 /* MLNHillshadeStyleLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNHillshadeStyleLayer.mm; sourceTree = ""; }; - DAF25714201901C200367EF5 /* MLNHillshadeStyleLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNHillshadeStyleLayer.h; sourceTree = ""; }; - DAF2571D201902A500367EF5 /* MLNHillshadeStyleLayerTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MLNHillshadeStyleLayerTests.mm; sourceTree = ""; }; - DAFBD0D51E3FA969000CD6BF /* zh-Hant */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/Localizable.strings"; sourceTree = ""; }; - DAFBD0D61E3FA983000CD6BF /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/Foundation.strings"; sourceTree = ""; }; - DAFEB3702093ACBF00A86A83 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = ""; }; - DAFEB3722093ACDA00A86A83 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Foundation.strings; sourceTree = ""; }; - DAFEB3732093ACE400A86A83 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ko; path = ko.lproj/Foundation.stringsdict; sourceTree = ""; }; - DD0902AF1DB1AC6400C5BDCE /* MLNNetworkConfiguration.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MLNNetworkConfiguration.mm; sourceTree = ""; }; - DD0902B01DB1AC6400C5BDCE /* MLNNetworkConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MLNNetworkConfiguration.h; sourceTree = ""; }; - DD58A4C71D822C6200E1F038 /* MLNExpressionTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MLNExpressionTests.mm; path = ../../darwin/test/MLNExpressionTests.mm; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - DA839E8F1CC2E3400062CAFB /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - DAE6C33D1CC30DB200DB3429 /* Mapbox.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DAE6C3241CC30DB200DB3429 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 5548BE781D09E718005DDE81 /* libmbgl-core.a in Frameworks */, - DA35D9C92409205B0013ECB0 /* libmbgl-vendor-csscolorparser.a in Frameworks */, - 55CF7533213EDADF00ED86C4 /* libmbgl-vendor-icu.a in Frameworks */, - DA35D9CB240920640013ECB0 /* libmbgl-vendor-parsedate.a in Frameworks */, - DAC8325F24049D8700A61BF8 /* libsqlite3.tbd in Frameworks */, - DAC8326024049D9C00A61BF8 /* libz.tbd in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DAE6C32E1CC30DB200DB3429 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - DAE6C3321CC30DB200DB3429 /* Mapbox.framework in Frameworks */, - DA35D9D3240925BD0013ECB0 /* libmbgl-vendor-csscolorparser.a in Frameworks */, - DAE0DD7A1D5F015A005A6BB1 /* libmbgl-core.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 35136D471D42295400C20EFD /* Layers */ = { - isa = PBXGroup; - children = ( - 747ABE66219B2C3200523B67 /* MLNSymbolStyleLayer_Private.h */, - 747ABE62219B2C1700523B67 /* MLNOpenGLStyleLayer_Private.h */, - 747ABE63219B2C1700523B67 /* MLNRasterStyleLayer_Private.h */, - 747ABE60219B2C0000523B67 /* MLNLineStyleLayer_Private.h */, - 747ABE5E219B2BED00523B67 /* MLNHillshadeStyleLayer_Private.h */, - 747ABE56219B2BDB00523B67 /* MLNBackgroundStyleLayer_Private.h */, - 747ABE55219B2BDA00523B67 /* MLNCircleStyleLayer_Private.h */, - 747ABE54219B2BDA00523B67 /* MLNFillExtrusionStyleLayer_Private.h */, - 747ABE57219B2BDB00523B67 /* MLNFillStyleLayer_Private.h */, - 747ABE58219B2BDB00523B67 /* MLNHeatmapStyleLayer_Private.h */, - 749EC88F2199CCB8005608D7 /* MLNStyleLayerManager.h */, - 749EC8902199CCB9005608D7 /* MLNStyleLayerManager.mm */, - DA8F25851D51C9E10010E6B5 /* MLNBackgroundStyleLayer.h */, - DA8F25861D51C9E10010E6B5 /* MLNBackgroundStyleLayer.mm */, - 3527428B1D4C24AB00A1ECE6 /* MLNCircleStyleLayer.h */, - 3527428C1D4C24AB00A1ECE6 /* MLNCircleStyleLayer.mm */, - DAA998F91E9F545C002E6EA6 /* MLNFillExtrusionStyleLayer.h */, - DAA998FA1E9F545C002E6EA6 /* MLNFillExtrusionStyleLayer.mm */, - 35602BF81D3EA99F0050646F /* MLNFillStyleLayer.h */, - 35602BF91D3EA99F0050646F /* MLNFillStyleLayer.mm */, - 35602BFD1D3EA9B40050646F /* MLNForegroundStyleLayer.h */, - 35602BFE1D3EA9B40050646F /* MLNForegroundStyleLayer.mm */, - 8946239A200E73CA00DA8EF2 /* MLNHeatmapStyleLayer.h */, - 8946239B200E73CA00DA8EF2 /* MLNHeatmapStyleLayer.mm */, - DAF25714201901C200367EF5 /* MLNHillshadeStyleLayer.h */, - DAF25713201901C100367EF5 /* MLNHillshadeStyleLayer.mm */, - DA8F25891D51CA540010E6B5 /* MLNLineStyleLayer.h */, - DA8F258A1D51CA540010E6B5 /* MLNLineStyleLayer.mm */, - DA7262051DEEDD460043BB89 /* MLNOpenGLStyleLayer.h */, - DA7262061DEEDD460043BB89 /* MLNOpenGLStyleLayer.mm */, - DA8F258D1D51CA600010E6B5 /* MLNRasterStyleLayer.h */, - DA8F258E1D51CA600010E6B5 /* MLNRasterStyleLayer.mm */, - 3538AA211D542685008EC33D /* MLNStyleLayer.h */, - 35602BFC1D3EA9B40050646F /* MLNStyleLayer_Private.h */, - 3538AA221D542685008EC33D /* MLNStyleLayer.mm */, - DA8F25911D51CA750010E6B5 /* MLNSymbolStyleLayer.h */, - DA8F25921D51CA750010E6B5 /* MLNSymbolStyleLayer.mm */, - DA6408D51DA4E5DA00908C90 /* MLNVectorStyleLayer.h */, - DA6408D61DA4E5DA00908C90 /* MLNVectorStyleLayer.mm */, - ); - name = Layers; - sourceTree = ""; - }; - 352742791D4C235C00A1ECE6 /* Categories */ = { - isa = PBXGroup; - children = ( - DA8F25A61D51CB270010E6B5 /* NSValue+MLNStyleAttributeAdditions.h */, - DA8F25A71D51CB270010E6B5 /* NSValue+MLNStyleAttributeAdditions.mm */, - ); - name = Categories; - sourceTree = ""; - }; - 3527427E1D4C242B00A1ECE6 /* Sources */ = { - isa = PBXGroup; - children = ( - 07F8E2F41F674C8000F794BB /* MLNComputedShapeSource.h */, - 07D947471F6741F500E37934 /* MLNComputedShapeSource_Private.h */, - 07F8E2F51F674C8000F794BB /* MLNComputedShapeSource.mm */, - 352742831D4C244700A1ECE6 /* MLNRasterTileSource.h */, - DA7DC9821DED647F0027472F /* MLNRasterTileSource_Private.h */, - 352742841D4C244700A1ECE6 /* MLNRasterTileSource.mm */, - DACA8620201920BE00E9693A /* MLNRasterDEMSource.h */, - DACA8621201920BE00E9693A /* MLNRasterDEMSource.mm */, - 352742871D4C245800A1ECE6 /* MLNShapeSource.h */, - DA87A99B1DC9D8DD00810D09 /* MLNShapeSource_Private.h */, - 352742881D4C245800A1ECE6 /* MLNShapeSource.mm */, - 3527427F1D4C243B00A1ECE6 /* MLNSource.h */, - DA8F25991D51CAD00010E6B5 /* MLNSource_Private.h */, - 352742801D4C243B00A1ECE6 /* MLNSource.mm */, - DA551B7F1DB496AC0009AFAF /* MLNTileSource.h */, - DA551B801DB496AC0009AFAF /* MLNTileSource_Private.h */, - DA551B811DB496AC0009AFAF /* MLNTileSource.mm */, - DA8F25951D51CAC70010E6B5 /* MLNVectorTileSource.h */, - DA7DC9801DED5F5C0027472F /* MLNVectorTileSource_Private.h */, - DA8F25961D51CAC70010E6B5 /* MLNVectorTileSource.mm */, - 07A019EB1ED662D800ACD43E /* MLNImageSource.h */, - 07A019EC1ED662D800ACD43E /* MLNImageSource.mm */, - ); - name = Sources; - sourceTree = ""; - }; - 3527429B1D4C259500A1ECE6 /* Styling */ = { - isa = PBXGroup; - children = ( - 1753ED3F1E53CE5200A9FD90 /* MLNConversion.h */, - 352742791D4C235C00A1ECE6 /* Categories */, - 35136D471D42295400C20EFD /* Layers */, - 3527427E1D4C242B00A1ECE6 /* Sources */, - 352742771D4C220900A1ECE6 /* MLNStyleValue.h */, - DA8F259B1D51CB000010E6B5 /* MLNStyleValue_Private.h */, - 3527429E1D4C25BD00A1ECE6 /* MLNStyleValue.mm */, - 1F7454A11ECFB00300021D39 /* MLNLight.h */, - 1F7454A21ECFB00300021D39 /* MLNLight.mm */, - 1F7454A01ECFB00300021D39 /* MLNLight_Private.h */, - ); - name = Styling; - sourceTree = ""; - }; - 4031ACFA1E9EB39A00A3EA26 /* Swift Integration */ = { - isa = PBXGroup; - children = ( - 4031ACFB1E9EB3C100A3EA26 /* MLNMapViewDelegateIntegrationTests.swift */, - ); - name = "Swift Integration"; - sourceTree = ""; - }; - 4031AD001E9FD61000A3EA26 /* Test Helpers */ = { - isa = PBXGroup; - children = ( - CA0B3C042329F7E600E4B493 /* MLNTestAssertionHandler.h */, - CA0B3C052329F7E600E4B493 /* MLNTestAssertionHandler.m */, - 4031AD011E9FD6A300A3EA26 /* MLNSDKTestHelpers.swift */, - ); - name = "Test Helpers"; - sourceTree = ""; - }; - 4BBCDC5526526110004106C3 /* Configuration */ = { - isa = PBXGroup; - children = ( - 4BBCDC4C265260FF004106C3 /* MLNDefaultStyle.h */, - 4BBCDC4A265260FF004106C3 /* MLNDefaultStyle.mm */, - 4BBCDC4B265260FF004106C3 /* MLNTileServerOptions.h */, - 4BBCDC49265260FE004106C3 /* MLNTileServerOptions.mm */, - ); - name = Configuration; - sourceTree = ""; - }; - DA33895E1FA3E997001EA329 /* Recovered References */ = { - isa = PBXGroup; - children = ( - ); - name = "Recovered References"; - sourceTree = ""; - }; - DA839E891CC2E3400062CAFB = { - isa = PBXGroup; - children = ( - DA839E941CC2E3400062CAFB /* Demo App */, - DAE6C3291CC30DB200DB3429 /* SDK */, - DAE6C3371CC30DB200DB3429 /* SDK Tests */, - DAE6C31E1CC308BC00DB3429 /* Frameworks */, - DAE6C3C41CC31F7800DB3429 /* Configuration */, - DA839E931CC2E3400062CAFB /* Products */, - DA33895E1FA3E997001EA329 /* Recovered References */, - ); - sourceTree = ""; - }; - DA839E931CC2E3400062CAFB /* Products */ = { - isa = PBXGroup; - children = ( - DA839E921CC2E3400062CAFB /* Mapbox GL.app */, - DAE6C3281CC30DB200DB3429 /* Mapbox.framework */, - DAE6C3311CC30DB200DB3429 /* test.xctest */, - ); - name = Products; - sourceTree = ""; - }; - DA839E941CC2E3400062CAFB /* Demo App */ = { - isa = PBXGroup; - children = ( - DA839E951CC2E3400062CAFB /* AppDelegate.h */, - DA839E961CC2E3400062CAFB /* AppDelegate.m */, - DAE6C2E31CC3050F00DB3429 /* DroppedPinAnnotation.h */, - DAE6C2E41CC3050F00DB3429 /* DroppedPinAnnotation.m */, - 3E6465D8206576A900685536 /* LimeGreenStyleLayer.h */, - 3E6465D7206576A800685536 /* LimeGreenStyleLayer.m */, - DAE6C2E51CC3050F00DB3429 /* LocationCoordinate2DTransformer.h */, - DAE6C2E61CC3050F00DB3429 /* LocationCoordinate2DTransformer.m */, - DA839E9B1CC2E3400062CAFB /* MapDocument.h */, - DA839E9C1CC2E3400062CAFB /* MapDocument.m */, - DA839E9E1CC2E3400062CAFB /* MapDocument.xib */, - DACB0C371E18DFFD005DDBEA /* MLNStyle+MBXAdditions.h */, - DACB0C381E18DFFD005DDBEA /* MLNStyle+MBXAdditions.m */, - DAE6C2E91CC3050F00DB3429 /* OfflinePackNameValueTransformer.h */, - DAE6C2EA1CC3050F00DB3429 /* OfflinePackNameValueTransformer.m */, - DAA48EFB1D6A4731006A7E36 /* StyleLayerIconTransformer.h */, - DAA48EFC1D6A4731006A7E36 /* StyleLayerIconTransformer.m */, - DAE6C2EB1CC3050F00DB3429 /* TimeIntervalTransformer.h */, - DAE6C2EC1CC3050F00DB3429 /* TimeIntervalTransformer.m */, - DA839EA11CC2E3400062CAFB /* Assets.xcassets */, - DA839EA31CC2E3400062CAFB /* MainMenu.xib */, - 358EB3AE1D61F0DB00E46D9C /* amsterdam.geojson */, - DA5589761D320C41006B7F64 /* wms.json */, - DAE6C2E11CC304F900DB3429 /* Credits.rtf */, - DA839EA61CC2E3400062CAFB /* Info.plist */, - 96E027331E57C9A7004B8E66 /* Localizable.strings */, - DA839E981CC2E3400062CAFB /* Supporting Files */, - 89462398200D199100DA8EF2 /* heatmap.json */, - ); - name = "Demo App"; - path = app; - sourceTree = ""; - }; - DA839E981CC2E3400062CAFB /* Supporting Files */ = { - isa = PBXGroup; - children = ( - DA839E991CC2E3400062CAFB /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - DA87A99A1DC9D88800810D09 /* Sources */ = { - isa = PBXGroup; - children = ( - 07A240921F67566F002C8210 /* MLNComputedShapeSourceTests.m */, - DA87A9961DC9D88400810D09 /* MLNShapeSourceTests.mm */, - DA87A9971DC9D88400810D09 /* MLNTileSetTests.mm */, - 920A3E581E6F859D00C16EFC /* MLNSourceQueryTests.m */, - 07BA4CAB1EE21887004528F5 /* MLNImageSourceTests.m */, - ); - name = Sources; - sourceTree = ""; - }; - DA8933A81CCD28D100E68420 /* Kit Resources */ = { - isa = PBXGroup; - children = ( - DA8933AB1CCD290700E68420 /* Localizable.strings */, - DAE6C3BB1CC31F2E00DB3429 /* default_marker.pdf */, - DAE6C3BC1CC31F2E00DB3429 /* mapbox.pdf */, - 1F9EF4051FBA1B0D0063FBB0 /* mapbox_helmet.pdf */, - DA8933A71CCD287300E68420 /* MLNAnnotationCallout.xib */, - ); - name = "Kit Resources"; - sourceTree = ""; - }; - DA8933B21CCD2C0700E68420 /* Foundation Resources */ = { - isa = PBXGroup; - children = ( - DA8933B31CCD2C2500E68420 /* Foundation.strings */, - DA8933B61CCD2C2D00E68420 /* Foundation.stringsdict */, - ); - name = "Foundation Resources"; - path = ../../darwin/resources; - sourceTree = ""; - }; - DA8F257C1D51C5F40010E6B5 /* Layers */ = { - isa = PBXGroup; - children = ( - 170A82C2201FAFF800943087 /* MLNHeatmapColorTests.mm */, - 170A82BE201BDD1B00943087 /* MLNHeatmapStyleLayerTests.mm */, - 40E1601A1DF216E6005EA6D9 /* MLNStyleLayerTests.h */, - 40E1601B1DF216E6005EA6D9 /* MLNStyleLayerTests.m */, - DA2207BA1DC076930002F84D /* test-Bridging-Header.h */, - DAA999001E9F5EC5002E6EA6 /* MLNFillExtrusionStyleLayerTests.mm */, - DA8F25741D51C5F40010E6B5 /* MLNFillStyleLayerTests.mm */, - DAF2571D201902A500367EF5 /* MLNHillshadeStyleLayerTests.mm */, - DA8F25751D51C5F40010E6B5 /* MLNRasterStyleLayerTests.mm */, - DA8F25761D51C5F40010E6B5 /* MLNSymbolStyleLayerTests.mm */, - DA8F25771D51C5F40010E6B5 /* MLNLineStyleLayerTests.mm */, - DA8F25781D51C5F40010E6B5 /* MLNCircleStyleLayerTests.mm */, - DA8F25791D51C5F40010E6B5 /* MLNBackgroundStyleLayerTests.mm */, - ); - name = Layers; - sourceTree = ""; - }; - DA8F257D1D51C5F40010E6B5 /* Styling */ = { - isa = PBXGroup; - children = ( - DA8F257C1D51C5F40010E6B5 /* Layers */, - DA87A99A1DC9D88800810D09 /* Sources */, - 1F7454AA1ED1DDBD00021D39 /* MLNLightTest.mm */, - ); - name = Styling; - path = ../../darwin/test; - sourceTree = ""; - }; - DA8F25B81D51D2280010E6B5 /* Foundation Templates */ = { - isa = PBXGroup; - children = ( - DA8F25B61D51D2240010E6B5 /* MLNStyleLayer.h.ejs */, - DA8F25B71D51D2240010E6B5 /* MLNStyleLayer.mm.ejs */, - DA8F25B51D51D2240010E6B5 /* MLNStyleLayerTests.mm.ejs */, - ); - name = "Foundation Templates"; - path = ../../darwin/src; - sourceTree = ""; - }; - DA90B12C1DB43B180073CF55 /* Categories */ = { - isa = PBXGroup; - children = ( - 355BA4EB1D41633E00CCC6D5 /* NSColor+MLNAdditions.h */, - 355BA4EC1D41633E00CCC6D5 /* NSColor+MLNAdditions.mm */, - 405C03961DB0004E001AC280 /* NSImage+MLNAdditions.h */, - 405C03971DB0004E001AC280 /* NSImage+MLNAdditions.mm */, - DAE6C3801CC31E2A00DB3429 /* NSProcessInfo+MLNAdditions.h */, - DAE6C3811CC31E2A00DB3429 /* NSProcessInfo+MLNAdditions.m */, - ); - name = Categories; - sourceTree = ""; - }; - DAD1657C1CF4CE6B001FF4B9 /* Formatters */ = { - isa = PBXGroup; - children = ( - DA35A2BD1CCA9B1A00E826B2 /* MLNClockDirectionFormatter.h */, - DA35A2BE1CCA9B1A00E826B2 /* MLNClockDirectionFormatter.m */, - DA35A2AB1CCA091800E826B2 /* MLNCompassDirectionFormatter.h */, - DA35A2AC1CCA091800E826B2 /* MLNCompassDirectionFormatter.m */, - DA35A2A31CC9EB1A00E826B2 /* MLNCoordinateFormatter.h */, - DA35A2A51CC9EB2700E826B2 /* MLNCoordinateFormatter.m */, - 35C6DF821E214C0400ACA483 /* MLNDistanceFormatter.h */, - 35C6DF831E214C0400ACA483 /* MLNDistanceFormatter.m */, - ); - name = Formatters; - sourceTree = ""; - }; - DAD1657D1CF4CECB001FF4B9 /* Geometry */ = { - isa = PBXGroup; - children = ( - DAE6C34B1CC31E0400DB3429 /* MLNAnnotation.h */, - CA4045C4216720D700B356E1 /* MLNCluster.h */, - DACC22171CF3D4F700D220D9 /* MLNFeature_Private.h */, - DACC22121CF3D3E200D220D9 /* MLNFeature.h */, - DACC22131CF3D3E200D220D9 /* MLNFeature.mm */, - DAE6C36C1CC31E2A00DB3429 /* MLNGeometry_Private.h */, - DAE6C34C1CC31E0400DB3429 /* MLNGeometry.h */, - DAE6C36D1CC31E2A00DB3429 /* MLNGeometry.mm */, - DAE6C36F1CC31E2A00DB3429 /* MLNMultiPoint_Private.h */, - DAE6C34E1CC31E0400DB3429 /* MLNMultiPoint.h */, - DAE6C3701CC31E2A00DB3429 /* MLNMultiPoint.mm */, - DAE6C3521CC31E0400DB3429 /* MLNOverlay.h */, - DAE6C3531CC31E0400DB3429 /* MLNPointAnnotation.h */, - DAE6C3761CC31E2A00DB3429 /* MLNPointAnnotation.mm */, - DAF0D80D1DFE0E5D00B28378 /* MLNPointCollection_Private.h */, - 4049C2A11DB6CE7800B3F799 /* MLNPointCollection.h */, - 4049C2A71DB6D09B00B3F799 /* MLNPointCollection.mm */, - 9654C12C1FFC394700DB6A19 /* MLNPolygon_Private.h */, - DAE6C3541CC31E0400DB3429 /* MLNPolygon.h */, - DAE6C3771CC31E2A00DB3429 /* MLNPolygon.mm */, - 9654C12A1FFC38E000DB6A19 /* MLNPolyline_Private.h */, - DAE6C3551CC31E0400DB3429 /* MLNPolyline.h */, - DAE6C3781CC31E2A00DB3429 /* MLNPolyline.mm */, - 408AA85A1DAEECF100022900 /* MLNShape_Private.h */, - DAE6C3561CC31E0400DB3429 /* MLNShape.h */, - DAE6C3791CC31E2A00DB3429 /* MLNShape.mm */, - DAD165721CF4CD7A001FF4B9 /* MLNShapeCollection.h */, - DAD165731CF4CD7A001FF4B9 /* MLNShapeCollection.mm */, - ); - name = Geometry; - sourceTree = ""; - }; - DAD1657E1CF4CF04001FF4B9 /* Offline Maps */ = { - isa = PBXGroup; - children = ( - DAE6C34F1CC31E0400DB3429 /* MLNOfflinePack.h */, - DAE6C3711CC31E2A00DB3429 /* MLNOfflinePack_Private.h */, - DAE6C3721CC31E2A00DB3429 /* MLNOfflinePack.mm */, - DAE6C3501CC31E0400DB3429 /* MLNOfflineRegion.h */, - DAE6C3731CC31E2A00DB3429 /* MLNOfflineRegion_Private.h */, - DAE6C3511CC31E0400DB3429 /* MLNOfflineStorage.h */, - DAE6C3741CC31E2A00DB3429 /* MLNOfflineStorage_Private.h */, - DAE6C3751CC31E2A00DB3429 /* MLNOfflineStorage.mm */, - 9250B8C22073C69000EF338C /* MLNShapeOfflineRegion.h */, - 92FC0AE3207CC8DA007B6B54 /* MLNShapeOfflineRegion_Private.h */, - 92FC0AE5207CDD8D007B6B54 /* MLNShapeOfflineRegion.mm */, - DAE6C3581CC31E0400DB3429 /* MLNTilePyramidOfflineRegion.h */, - 9221BAAE20699CBA0054BDF4 /* MLNTilePyramidOfflineRegion_Private.h */, - DAE6C37B1CC31E2A00DB3429 /* MLNTilePyramidOfflineRegion.mm */, - ); - name = "Offline Maps"; - sourceTree = ""; - }; - DAD1657F1CF4CF50001FF4B9 /* Categories */ = { - isa = PBXGroup; - children = ( - 40B77E431DB11BB0003DA2FE /* NSArray+MLNAdditions.h */, - 40B77E421DB11BB0003DA2FE /* NSArray+MLNAdditions.mm */, - DAE6C37D1CC31E2A00DB3429 /* NSBundle+MLNAdditions.h */, - DAE6C37E1CC31E2A00DB3429 /* NSBundle+MLNAdditions.mm */, - 359819571E02F611008FC139 /* NSCoder+MLNAdditions.h */, - 359819581E02F611008FC139 /* NSCoder+MLNAdditions.mm */, - 35C5D8431D6DD66D00E95907 /* NSComparisonPredicate+MLNAdditions.h */, - 35C5D8441D6DD66D00E95907 /* NSComparisonPredicate+MLNAdditions.mm */, - 35C5D8451D6DD66D00E95907 /* NSCompoundPredicate+MLNAdditions.h */, - 35C5D8461D6DD66D00E95907 /* NSCompoundPredicate+MLNAdditions.mm */, - 35D65C581D65AD5500722C23 /* NSDate+MLNAdditions.h */, - 35D65C591D65AD5500722C23 /* NSDate+MLNAdditions.mm */, - 408AA85F1DAEED3300022900 /* NSDictionary+MLNAdditions.h */, - 408AA85E1DAEED3300022900 /* NSDictionary+MLNAdditions.mm */, - DAE6C37F1CC31E2A00DB3429 /* NSException+MLNAdditions.h */, - 3508EC621D749D39009B0EE4 /* NSExpression+MLNAdditions.h */, - DAC25FC9200FD5E2009BE98E /* NSExpression+MLNPrivateAdditions.h */, - 3508EC631D749D39009B0EE4 /* NSExpression+MLNAdditions.mm */, - 352903991D6C63B80002C7DF /* NSPredicate+MLNAdditions.h */, - 3529039A1D6C63B80002C7DF /* NSPredicate+MLNAdditions.mm */, - 1FC481842098F323000D09B4 /* NSPredicate+MLNPrivateAdditions.h */, - DAE6C3821CC31E2A00DB3429 /* NSString+MLNAdditions.h */, - DAE6C3831CC31E2A00DB3429 /* NSString+MLNAdditions.m */, - DAED385D1D62CED700D7640F /* NSURL+MLNAdditions.h */, - DAED385E1D62CED700D7640F /* NSURL+MLNAdditions.m */, - DA35A2CD1CCAAED300E826B2 /* NSValue+MLNAdditions.h */, - DA35A2CE1CCAAED300E826B2 /* NSValue+MLNAdditions.m */, - ); - name = Categories; - sourceTree = ""; - }; - DAE6C31E1CC308BC00DB3429 /* Frameworks */ = { - isa = PBXGroup; - children = ( - DAE6C3451CC31D1200DB3429 /* libmbgl-core.a */, - DA35D9C82409205B0013ECB0 /* libmbgl-vendor-csscolorparser.a */, - 55CF7532213EDADF00ED86C4 /* libmbgl-vendor-icu.a */, - DA35D9CA240920640013ECB0 /* libmbgl-vendor-parsedate.a */, - DAE6C3C61CC3499100DB3429 /* libsqlite3.tbd */, - 55D9B4B01D005D3900C1CCE2 /* libz.tbd */, - ); - name = Frameworks; - sourceTree = ""; - }; - DAE6C3291CC30DB200DB3429 /* SDK */ = { - isa = PBXGroup; - children = ( - DAE6C3C11CC31F4500DB3429 /* Mapbox.h */, - DAE6C3491CC31DF500DB3429 /* Foundation */, - DA8F25B81D51D2280010E6B5 /* Foundation Templates */, - DA8933B21CCD2C0700E68420 /* Foundation Resources */, - DAE6C39E1CC31E7C00DB3429 /* Kit */, - DA8933A81CCD28D100E68420 /* Kit Resources */, - DAE6C32C1CC30DB200DB3429 /* Info.plist */, - ); - name = SDK; - path = sdk; - sourceTree = ""; - }; - DAE6C3371CC30DB200DB3429 /* SDK Tests */ = { - isa = PBXGroup; - children = ( - DAE6C33A1CC30DB200DB3429 /* Info.plist */, - DA2784FD1DF03060001D5B8D /* Media.xcassets */, - CA9461A520884CCB0015EB12 /* MLNAnnotationTests.m */, - DAEDC4361D606291000224FF /* MLNAttributionButtonTests.m */, - DAEDC4311D6033F1000224FF /* MLNAttributionInfoTests.m */, - DA35A2C11CCA9F4A00E826B2 /* MLNClockDirectionFormatterTests.m */, - 3526EABC1DF9B19800006B43 /* MLNCodingTests.mm */, - DA35A2B51CCA14D700E826B2 /* MLNCompassDirectionFormatterTests.m */, - DA35A2A71CC9F41600E826B2 /* MLNCoordinateFormatterTests.m */, - 35C6DF861E214C1800ACA483 /* MLNDistanceFormatterTests.m */, - DA2987591E1A4290002299F5 /* MLNDocumentationExampleTests.swift */, - DA57D4B01EBC699800793288 /* MLNDocumentationGuideTests.swift */, - DD58A4C71D822C6200E1F038 /* MLNExpressionTests.mm */, - DA0CD58D1CF56F5800A5F5A5 /* MLNFeatureTests.mm */, - DAE6C3C81CC34BD800DB3429 /* MLNGeometryTests.mm */, - DA0E9F3A24119F6B007C75D4 /* MLNImageTests.mm */, - DA695423215B1E6C002041A4 /* MLNMapCameraTests.m */, - DAA4227B24294137008457DB /* MLNMapSnapshotterTests.m */, - 076171C4213A0DC200668A35 /* MLNMapViewTests.m */, - 1F95931A1E6DE2B600D5B294 /* MLNNSDateAdditionsTests.mm */, - DAE7DEC31E24549F007505A6 /* MLNNSStringAdditionsTests.m */, - CA0B3C082329FB4800E4B493 /* MLNOfflinePackTests.mm */, - DAE6C3CA1CC34BD800DB3429 /* MLNOfflineRegionTests.m */, - 55E2AD101E5B0A6900E8C587 /* MLNOfflineStorageTests.mm */, - 35C5D84B1D6DD75B00E95907 /* MLNPredicateTests.mm */, - CA8FBC0C21A4A74300D1203C /* MLNRendererConfigurationTests.m */, - CAD9D0AB22A88A32001B25EE /* MLNResourceTests.mm */, - DAE6C3CC1CC34BD800DB3429 /* MLNStyleTests.mm */, - 556660D51E1D07E400E2C41B /* MLNVersionNumber.m */, - DA35D0891E1A631B007DED41 /* one-liner.json */, - DAC8A4832452972F00C795BB /* mixed.json */, - DAC8A47D24527EBB00C795BB /* glyphs.pbf */, - 1F8A59F921653483004DFE75 /* sideload_sat.db */, - DA8F257D1D51C5F40010E6B5 /* Styling */, - 4031ACFA1E9EB39A00A3EA26 /* Swift Integration */, - 4031AD001E9FD61000A3EA26 /* Test Helpers */, - ); - name = "SDK Tests"; - path = test; - sourceTree = ""; - }; - DAE6C3491CC31DF500DB3429 /* Foundation */ = { - isa = PBXGroup; - children = ( - 4BBCDC5526526110004106C3 /* Configuration */, - 3527429B1D4C259500A1ECE6 /* Styling */, - DAD1657F1CF4CF50001FF4B9 /* Categories */, - DAD1657C1CF4CE6B001FF4B9 /* Formatters */, - DAD1657D1CF4CECB001FF4B9 /* Geometry */, - DAD1657E1CF4CF04001FF4B9 /* Offline Maps */, - DAE6C34A1CC31E0400DB3429 /* MLNSettings.h */, - DAE6C36A1CC31E2A00DB3429 /* MLNSettings_Private.h */, - DAE6C36B1CC31E2A00DB3429 /* MLNSettings.mm */, - DA00FC881D5EEAC3009AABC8 /* MLNAttributionInfo.h */, - DAF0D8151DFE6B1800B28378 /* MLNAttributionInfo_Private.h */, - DA00FC891D5EEAC3009AABC8 /* MLNAttributionInfo.mm */, - 1FF4858C2237235200F19727 /* MLNAttributedExpression.h */, - 1FF4858B2237235200F19727 /* MLNAttributedExpression.m */, - 556660C51E1BEA0100E2C41B /* MLNFoundation.h */, - 558DE7A41E56161C00C7916D /* MLNFoundation_Private.h */, - 558DE7A51E56161C00C7916D /* MLNFoundation.mm */, - DAE6C34D1CC31E0400DB3429 /* MLNMapCamera.h */, - DAE6C36E1CC31E2A00DB3429 /* MLNMapCamera.mm */, - 92092EEE1F5EB10E00AF5130 /* MLNMapSnapshotter.h */, - 92092EEF1F5EB10E00AF5130 /* MLNMapSnapshotter.mm */, - DD0902B01DB1AC6400C5BDCE /* MLNNetworkConfiguration.h */, - 1F2B94C2221E22E500210640 /* MLNNetworkConfiguration_Private.h */, - DD0902AF1DB1AC6400C5BDCE /* MLNNetworkConfiguration.mm */, - DA35D9C4240916370013ECB0 /* MLNReachability.h */, - DA35D9C5240916380013ECB0 /* MLNReachability.m */, - 3EA9369A4C46957566058822 /* MLNRendererConfiguration.h */, - 3EA93B1B0864609938506E12 /* MLNRendererConfiguration.m */, - 92F2C3EA1F0E3A1900268EC0 /* MLNRendererFrontend.h */, - DAE6C3571CC31E0400DB3429 /* MLNStyle.h */, - 3537CA731D3F93A600380318 /* MLNStyle_Private.h */, - DAE6C37A1CC31E2A00DB3429 /* MLNStyle.mm */, - DAE6C3591CC31E0400DB3429 /* MLNTypes.h */, - DAE6C37C1CC31E2A00DB3429 /* MLNTypes.m */, - DA87A99F1DC9DC6200810D09 /* MLNValueEvaluator.h */, - 1F8A5A03216D4696004DFE75 /* MLNLoggingConfiguration.h */, - 1F8A5A01216D4695004DFE75 /* MLNLoggingConfiguration_Private.h */, - CF762DEE22DC7EFF00338472 /* MLNLoggingConfiguration.mm */, - ); - name = Foundation; - path = ../darwin/src; - sourceTree = SOURCE_ROOT; - }; - DAE6C39E1CC31E7C00DB3429 /* Kit */ = { - isa = PBXGroup; - children = ( - DA90B12C1DB43B180073CF55 /* Categories */, - DAE6C39F1CC31E9400DB3429 /* MLNAnnotationImage.h */, - DAC2ABC41CC6D343006D18C4 /* MLNAnnotationImage_Private.h */, - DAE6C3A71CC31EF300DB3429 /* MLNAnnotationImage.m */, - DAE6C3A81CC31EF300DB3429 /* MLNAttributionButton.h */, - DAE6C3A91CC31EF300DB3429 /* MLNAttributionButton.mm */, - DAE6C3AA1CC31EF300DB3429 /* MLNCompassCell.h */, - DAE6C3AB1CC31EF300DB3429 /* MLNCompassCell.m */, - DAE6C3A01CC31E9400DB3429 /* MLNMapView.h */, - DAE6C3AC1CC31EF300DB3429 /* MLNMapView_Private.h */, - DAE6C3AD1CC31EF300DB3429 /* MLNMapView.mm */, - 5591AC682298361600FF9ADF /* MLNMapView+Impl.h */, - 5591AC692298361600FF9ADF /* MLNMapView+Impl.mm */, - 55CAF6332294409B00F17770 /* MLNMapView+OpenGL.mm */, - 55CAF6312294407F00F17770 /* MLNMapView+OpenGL.h */, - DAE6C3A11CC31E9400DB3429 /* MLNMapView+IBAdditions.h */, - DAE6C3AE1CC31EF300DB3429 /* MLNMapView+IBAdditions.mm */, - DAE6C3A21CC31E9400DB3429 /* MLNMapViewDelegate.h */, - DAE6C3AF1CC31EF300DB3429 /* MLNOpenGLLayer.h */, - DAE6C3B01CC31EF300DB3429 /* MLNOpenGLLayer.mm */, - ); - name = Kit; - path = src; - sourceTree = SOURCE_ROOT; - }; - DAE6C3C41CC31F7800DB3429 /* Configuration */ = { - isa = PBXGroup; - children = ( - DAC832652404AF9E00A61BF8 /* Makefile */, - DAC832662404AFB400A61BF8 /* ci.xcconfig */, - DAC832632404AF7F00A61BF8 /* darwin.xcconfig */, - DAC832622404AF4300A61BF8 /* macos.xcconfig */, - DAC832682404B26400A61BF8 /* jazzy.yml */, - ); - name = Configuration; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - DAE6C3251CC30DB200DB3429 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 4BBCDC50265260FF004106C3 /* MLNDefaultStyle.h in Headers */, - 556660C61E1BEA0100E2C41B /* MLNFoundation.h in Headers */, - 4BBCDC4F265260FF004106C3 /* MLNTileServerOptions.h in Headers */, - 07F8E2F71F674C8800F794BB /* MLNComputedShapeSource.h in Headers */, - DA8F258F1D51CA600010E6B5 /* MLNRasterStyleLayer.h in Headers */, - 3508EC641D749D39009B0EE4 /* NSExpression+MLNAdditions.h in Headers */, - DAE6C38D1CC31E2A00DB3429 /* MLNOfflineRegion_Private.h in Headers */, - DA7DC9831DED647F0027472F /* MLNRasterTileSource_Private.h in Headers */, - 747ABE5B219B2BDB00523B67 /* MLNBackgroundStyleLayer_Private.h in Headers */, - 1FF4858E2237235300F19727 /* MLNAttributedExpression.h in Headers */, - 1753ED401E53CE6100A9FD90 /* MLNConversion.h in Headers */, - 747ABE59219B2BDB00523B67 /* MLNFillExtrusionStyleLayer_Private.h in Headers */, - DA8F259C1D51CB000010E6B5 /* MLNStyleValue_Private.h in Headers */, - DAE6C35B1CC31E0400DB3429 /* MLNAnnotation.h in Headers */, - DAE6C3B61CC31EF300DB3429 /* MLNMapView_Private.h in Headers */, - 747ABE65219B2C1800523B67 /* MLNRasterStyleLayer_Private.h in Headers */, - 747ABE5D219B2BDB00523B67 /* MLNHeatmapStyleLayer_Private.h in Headers */, - DAF25716201901C200367EF5 /* MLNHillshadeStyleLayer.h in Headers */, - 92092EF01F5EB10E00AF5130 /* MLNMapSnapshotter.h in Headers */, - 3527428D1D4C24AB00A1ECE6 /* MLNCircleStyleLayer.h in Headers */, - DA00FC8A1D5EEAC3009AABC8 /* MLNAttributionInfo.h in Headers */, - DAE6C3B21CC31EF300DB3429 /* MLNAttributionButton.h in Headers */, - DAA998FB1E9F545C002E6EA6 /* MLNFillExtrusionStyleLayer.h in Headers */, - 40B77E451DB11BC9003DA2FE /* NSArray+MLNAdditions.h in Headers */, - 35C5D8471D6DD66D00E95907 /* NSComparisonPredicate+MLNAdditions.h in Headers */, - DAE6C3A31CC31E9400DB3429 /* MLNAnnotationImage.h in Headers */, - DAE6C3A41CC31E9400DB3429 /* MLNMapView.h in Headers */, - DAE6C3611CC31E0400DB3429 /* MLNOfflineStorage.h in Headers */, - 749EC8912199CCB9005608D7 /* MLNStyleLayerManager.h in Headers */, - 352742781D4C220900A1ECE6 /* MLNStyleValue.h in Headers */, - DAE6C35E1CC31E0400DB3429 /* MLNMultiPoint.h in Headers */, - 35602BFF1D3EA9B40050646F /* MLNStyleLayer_Private.h in Headers */, - 92FC0AE4207CC8DA007B6B54 /* MLNShapeOfflineRegion_Private.h in Headers */, - DAF0D8161DFE6B1800B28378 /* MLNAttributionInfo_Private.h in Headers */, - DAE6C3971CC31E2A00DB3429 /* NSBundle+MLNAdditions.h in Headers */, - DAED385F1D62CED700D7640F /* NSURL+MLNAdditions.h in Headers */, - DAD165741CF4CD7A001FF4B9 /* MLNShapeCollection.h in Headers */, - DAE6C3631CC31E0400DB3429 /* MLNPointAnnotation.h in Headers */, - DAC2ABC51CC6D343006D18C4 /* MLNAnnotationImage_Private.h in Headers */, - DAE6C35F1CC31E0400DB3429 /* MLNOfflinePack.h in Headers */, - 1F8A5A04216D4696004DFE75 /* MLNLoggingConfiguration_Private.h in Headers */, - 1FC481852098F323000D09B4 /* NSPredicate+MLNPrivateAdditions.h in Headers */, - DAE6C39C1CC31E2A00DB3429 /* NSString+MLNAdditions.h in Headers */, - 1F8A5A06216D4696004DFE75 /* MLNLoggingConfiguration.h in Headers */, - 3529039B1D6C63B80002C7DF /* NSPredicate+MLNAdditions.h in Headers */, - 747ABE5A219B2BDB00523B67 /* MLNCircleStyleLayer_Private.h in Headers */, - DA8F25971D51CAC70010E6B5 /* MLNVectorTileSource.h in Headers */, - DA7DC9811DED5F5C0027472F /* MLNVectorTileSource_Private.h in Headers */, - DAE6C3861CC31E2A00DB3429 /* MLNGeometry_Private.h in Headers */, - DAE6C3841CC31E2A00DB3429 /* MLNSettings_Private.h in Headers */, - DACA8622201920BE00E9693A /* MLNRasterDEMSource.h in Headers */, - DAE6C3691CC31E0400DB3429 /* MLNTypes.h in Headers */, - 07D9474D1F67441B00E37934 /* MLNComputedShapeSource_Private.h in Headers */, - DAE6C3991CC31E2A00DB3429 /* NSException+MLNAdditions.h in Headers */, - DA8F25871D51C9E10010E6B5 /* MLNBackgroundStyleLayer.h in Headers */, - 4049C2A51DB6CE7F00B3F799 /* MLNPointCollection.h in Headers */, - DAE6C3661CC31E0400DB3429 /* MLNShape.h in Headers */, - DA551B831DB496AC0009AFAF /* MLNTileSource_Private.h in Headers */, - DAC25FCA200FD5E2009BE98E /* NSExpression+MLNPrivateAdditions.h in Headers */, - DA7262071DEEDD460043BB89 /* MLNOpenGLStyleLayer.h in Headers */, - 352742811D4C243B00A1ECE6 /* MLNSource.h in Headers */, - DAE6C3C21CC31F4500DB3429 /* Mapbox.h in Headers */, - DAE6C3641CC31E0400DB3429 /* MLNPolygon.h in Headers */, - DA35A2BF1CCA9B1A00E826B2 /* MLNClockDirectionFormatter.h in Headers */, - 1F2B94C3221E22E600210640 /* MLNNetworkConfiguration_Private.h in Headers */, - 35602BFA1D3EA99F0050646F /* MLNFillStyleLayer.h in Headers */, - DA35A2A41CC9EB1A00E826B2 /* MLNCoordinateFormatter.h in Headers */, - 35C5D8491D6DD66D00E95907 /* NSCompoundPredicate+MLNAdditions.h in Headers */, - 9250B8C32073C69100EF338C /* MLNShapeOfflineRegion.h in Headers */, - 747ABE67219B2C3200523B67 /* MLNSymbolStyleLayer_Private.h in Headers */, - 55CAF6322294407F00F17770 /* MLNMapView+OpenGL.h in Headers */, - DD0902B31DB1AC6400C5BDCE /* MLNNetworkConfiguration.h in Headers */, - DAE6C3621CC31E0400DB3429 /* MLNOverlay.h in Headers */, - DAE6C3651CC31E0400DB3429 /* MLNPolyline.h in Headers */, - DAE6C39A1CC31E2A00DB3429 /* NSProcessInfo+MLNAdditions.h in Headers */, - 92F2C3EB1F0E3A1900268EC0 /* MLNRendererFrontend.h in Headers */, - DA8F258B1D51CA540010E6B5 /* MLNLineStyleLayer.h in Headers */, - 35C6DF841E214C0400ACA483 /* MLNDistanceFormatter.h in Headers */, - DA8F25B21D51CB270010E6B5 /* NSValue+MLNStyleAttributeAdditions.h in Headers */, - 55335DF9212EC542000CE5F8 /* NSImage+MLNAdditions.h in Headers */, - 1F7454A31ECFB00300021D39 /* MLNLight_Private.h in Headers */, - 5591AC6A2298361600FF9ADF /* MLNMapView+Impl.h in Headers */, - 359819591E02F611008FC139 /* NSCoder+MLNAdditions.h in Headers */, - DAE6C38E1CC31E2A00DB3429 /* MLNOfflineStorage_Private.h in Headers */, - 747ABE61219B2C0000523B67 /* MLNLineStyleLayer_Private.h in Headers */, - 747ABE5F219B2BED00523B67 /* MLNHillshadeStyleLayer_Private.h in Headers */, - DA87A9A01DC9DC6200810D09 /* MLNValueEvaluator.h in Headers */, - 8946239D200E744800DA8EF2 /* MLNHeatmapStyleLayer.h in Headers */, - DAE6C3601CC31E0400DB3429 /* MLNOfflineRegion.h in Headers */, - DAE6C3681CC31E0400DB3429 /* MLNTilePyramidOfflineRegion.h in Headers */, - DA35A2CF1CCAAED300E826B2 /* NSValue+MLNAdditions.h in Headers */, - DAE6C3A61CC31E9400DB3429 /* MLNMapViewDelegate.h in Headers */, - DAE6C38B1CC31E2A00DB3429 /* MLNOfflinePack_Private.h in Headers */, - 558DE7A61E56161C00C7916D /* MLNFoundation_Private.h in Headers */, - CA4045C7216720D700B356E1 /* MLNCluster.h in Headers */, - DACC22141CF3D3E200D220D9 /* MLNFeature.h in Headers */, - 3538AA231D542685008EC33D /* MLNStyleLayer.h in Headers */, - DAE6C35C1CC31E0400DB3429 /* MLNGeometry.h in Headers */, - DAE6C35A1CC31E0400DB3429 /* MLNSettings.h in Headers */, - DA551B821DB496AC0009AFAF /* MLNTileSource.h in Headers */, - 35602C001D3EA9B40050646F /* MLNForegroundStyleLayer.h in Headers */, - DAE6C35D1CC31E0400DB3429 /* MLNMapCamera.h in Headers */, - DAE6C3B41CC31EF300DB3429 /* MLNCompassCell.h in Headers */, - DA87A99C1DC9D8DD00810D09 /* MLNShapeSource_Private.h in Headers */, - 3537CA741D3F93A600380318 /* MLNStyle_Private.h in Headers */, - 0721493F1EE200E900085505 /* MLNImageSource.h in Headers */, - DA8F259A1D51CAD00010E6B5 /* MLNSource_Private.h in Headers */, - DA8F25931D51CA750010E6B5 /* MLNSymbolStyleLayer.h in Headers */, - DAE6C3B91CC31EF300DB3429 /* MLNOpenGLLayer.h in Headers */, - DAF0D80E1DFE0E5D00B28378 /* MLNPointCollection_Private.h in Headers */, - 35D65C5A1D65AD5500722C23 /* NSDate+MLNAdditions.h in Headers */, - 355BA4ED1D41633E00CCC6D5 /* NSColor+MLNAdditions.h in Headers */, - DAE6C3891CC31E2A00DB3429 /* MLNMultiPoint_Private.h in Headers */, - 747ABE64219B2C1800523B67 /* MLNOpenGLStyleLayer_Private.h in Headers */, - DAE6C3A51CC31E9400DB3429 /* MLNMapView+IBAdditions.h in Headers */, - DA35A2AD1CCA091800E826B2 /* MLNCompassDirectionFormatter.h in Headers */, - 352742851D4C244700A1ECE6 /* MLNRasterTileSource.h in Headers */, - 9654C12D1FFC394700DB6A19 /* MLNPolygon_Private.h in Headers */, - 408AA85B1DAEECFE00022900 /* MLNShape_Private.h in Headers */, - 9221BAAF20699CBB0054BDF4 /* MLNTilePyramidOfflineRegion_Private.h in Headers */, - DACC22181CF3D4F700D220D9 /* MLNFeature_Private.h in Headers */, - 9654C12B1FFC38E000DB6A19 /* MLNPolyline_Private.h in Headers */, - DA6408D71DA4E5DA00908C90 /* MLNVectorStyleLayer.h in Headers */, - 352742891D4C245800A1ECE6 /* MLNShapeSource.h in Headers */, - 1F7454A41ECFB00300021D39 /* MLNLight.h in Headers */, - 747ABE5C219B2BDB00523B67 /* MLNFillStyleLayer_Private.h in Headers */, - 408AA8671DAEEE3900022900 /* NSDictionary+MLNAdditions.h in Headers */, - DAE6C3671CC31E0400DB3429 /* MLNStyle.h in Headers */, - DA35D9C6240916380013ECB0 /* MLNReachability.h in Headers */, - 3EA9317388DC9A0BF46B7674 /* MLNRendererConfiguration.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXLegacyTarget section */ - DAAA17961CE13BAE00731EFE /* docs */ = { - isa = PBXLegacyTarget; - buildArgumentsString = "xdocument OUTPUT=build/macos/pkg/documentation"; - buildConfigurationList = DAAA17991CE13BAE00731EFE /* Build configuration list for PBXLegacyTarget "docs" */; - buildPhases = ( - ); - buildToolPath = /usr/bin/make; - buildWorkingDirectory = ../../; - dependencies = ( - ); - name = docs; - passBuildSettingsInEnvironment = 1; - productName = docs; - }; -/* End PBXLegacyTarget section */ - -/* Begin PBXNativeTarget section */ - DA839E911CC2E3400062CAFB /* macosapp */ = { - isa = PBXNativeTarget; - buildConfigurationList = DA839EA91CC2E3400062CAFB /* Build configuration list for PBXNativeTarget "macosapp" */; - buildPhases = ( - DA839E8E1CC2E3400062CAFB /* Sources */, - DA839E8F1CC2E3400062CAFB /* Frameworks */, - DA839E901CC2E3400062CAFB /* Resources */, - DAE6C3221CC30B3C00DB3429 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - DAE6C33C1CC30DB200DB3429 /* PBXTargetDependency */, - ); - name = macosapp; - productName = macosapp; - productReference = DA839E921CC2E3400062CAFB /* Mapbox GL.app */; - productType = "com.apple.product-type.application"; - }; - DAE6C3271CC30DB200DB3429 /* dynamic */ = { - isa = PBXNativeTarget; - buildConfigurationList = DAE6C3431CC30DB200DB3429 /* Build configuration list for PBXNativeTarget "dynamic" */; - buildPhases = ( - DAE6C3231CC30DB200DB3429 /* Sources */, - DAE6C3241CC30DB200DB3429 /* Frameworks */, - DAE6C3251CC30DB200DB3429 /* Headers */, - DAE6C3261CC30DB200DB3429 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = dynamic; - productName = dynamic; - productReference = DAE6C3281CC30DB200DB3429 /* Mapbox.framework */; - productType = "com.apple.product-type.framework"; - }; - DAE6C3301CC30DB200DB3429 /* test */ = { - isa = PBXNativeTarget; - buildConfigurationList = DAE6C3441CC30DB200DB3429 /* Build configuration list for PBXNativeTarget "test" */; - buildPhases = ( - DAE6C32D1CC30DB200DB3429 /* Sources */, - DAE6C32E1CC30DB200DB3429 /* Frameworks */, - DAE6C32F1CC30DB200DB3429 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - DAE6C3341CC30DB200DB3429 /* PBXTargetDependency */, - ); - name = test; - productName = dynamicTests; - productReference = DAE6C3311CC30DB200DB3429 /* test.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - DA839E8A1CC2E3400062CAFB /* Project object */ = { - isa = PBXProject; - attributes = { - CLASSPREFIX = MBX; - LastUpgradeCheck = 0930; - ORGANIZATIONNAME = Mapbox; - TargetAttributes = { - DA839E911CC2E3400062CAFB = { - CreatedOnToolsVersion = 7.3; - LastSwiftMigration = 0920; - ProvisioningStyle = Manual; - }; - DAAA17961CE13BAE00731EFE = { - CreatedOnToolsVersion = 7.3.1; - }; - DAE6C3271CC30DB200DB3429 = { - CreatedOnToolsVersion = 7.3; - }; - DAE6C3301CC30DB200DB3429 = { - CreatedOnToolsVersion = 7.3; - LastSwiftMigration = 0920; - }; - }; - }; - buildConfigurationList = DA839E8D1CC2E3400062CAFB /* Build configuration list for PBXProject "macos" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - en, - Base, - "zh-Hans", - "zh-Hant", - de, - fr, - ja, - sv, - vi, - "pt-BR", - es, - pl, - uk, - lt, - ru, - ca, - fi, - nl, - hu, - bg, - ar, - he, - da, - "pt-PT", - ko, - cs, - gl, - ); - mainGroup = DA839E891CC2E3400062CAFB; - productRefGroup = DA839E931CC2E3400062CAFB /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - DA839E911CC2E3400062CAFB /* macosapp */, - DAE6C3271CC30DB200DB3429 /* dynamic */, - DAE6C3301CC30DB200DB3429 /* test */, - DAAA17961CE13BAE00731EFE /* docs */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - DA839E901CC2E3400062CAFB /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DA839EA21CC2E3400062CAFB /* Assets.xcassets in Resources */, - DA839EA01CC2E3400062CAFB /* MapDocument.xib in Resources */, - 353BAEF81D6463B8009A8DA9 /* amsterdam.geojson in Resources */, - 96E027311E57C9A7004B8E66 /* Localizable.strings in Resources */, - 89462399200D199100DA8EF2 /* heatmap.json in Resources */, - DA839EA51CC2E3400062CAFB /* MainMenu.xib in Resources */, - DA5589771D320C41006B7F64 /* wms.json in Resources */, - DAE6C2E21CC304F900DB3429 /* Credits.rtf in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DAE6C3261CC30DB200DB3429 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DA8933AE1CCD290700E68420 /* Localizable.strings in Resources */, - DAE6C3BE1CC31F2E00DB3429 /* default_marker.pdf in Resources */, - DAE6C3BF1CC31F2E00DB3429 /* mapbox.pdf in Resources */, - DA8933A51CCD287300E68420 /* MLNAnnotationCallout.xib in Resources */, - DA8933B51CCD2C2500E68420 /* Foundation.strings in Resources */, - DA8933B81CCD2C2D00E68420 /* Foundation.stringsdict in Resources */, - 1F9EF4061FBA1B0E0063FBB0 /* mapbox_helmet.pdf in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DAE6C32F1CC30DB200DB3429 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 35724FC41D630502002A4AB4 /* amsterdam.geojson in Resources */, - DA2784FE1DF03060001D5B8D /* Media.xcassets in Resources */, - DA35D08A1E1A631B007DED41 /* one-liner.json in Resources */, - DAC8A4842452972F00C795BB /* mixed.json in Resources */, - DAC8A47E24527EBB00C795BB /* glyphs.pbf in Resources */, - 1F8A59FA21653483004DFE75 /* sideload_sat.db in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - DA839E8E1CC2E3400062CAFB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DAA48EFD1D6A4731006A7E36 /* StyleLayerIconTransformer.m in Sources */, - DA839E9D1CC2E3400062CAFB /* MapDocument.m in Sources */, - DAE6C2ED1CC3050F00DB3429 /* DroppedPinAnnotation.m in Sources */, - DAE6C2EE1CC3050F00DB3429 /* LocationCoordinate2DTransformer.m in Sources */, - DAE6C2F11CC3050F00DB3429 /* TimeIntervalTransformer.m in Sources */, - DACB0C391E18DFFD005DDBEA /* MLNStyle+MBXAdditions.m in Sources */, - DA839E9A1CC2E3400062CAFB /* main.m in Sources */, - DA839E971CC2E3400062CAFB /* AppDelegate.m in Sources */, - 3E6465D9206576A900685536 /* LimeGreenStyleLayer.m in Sources */, - DAE6C2F01CC3050F00DB3429 /* OfflinePackNameValueTransformer.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DAE6C3231CC30DB200DB3429 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 07A019EF1ED665CD00ACD43E /* MLNImageSource.mm in Sources */, - 92092EF11F5EB10E00AF5130 /* MLNMapSnapshotter.mm in Sources */, - 40ABDB561DB0022100372083 /* NSImage+MLNAdditions.mm in Sources */, - DAF25715201901C200367EF5 /* MLNHillshadeStyleLayer.mm in Sources */, - DAE6C3901CC31E2A00DB3429 /* MLNPointAnnotation.mm in Sources */, - DAE6C3981CC31E2A00DB3429 /* NSBundle+MLNAdditions.mm in Sources */, - DAE6C3B71CC31EF300DB3429 /* MLNMapView.mm in Sources */, - 55CAF6342294409B00F17770 /* MLNMapView+OpenGL.mm in Sources */, - 40B77E461DB11BCD003DA2FE /* NSArray+MLNAdditions.mm in Sources */, - DAE6C38C1CC31E2A00DB3429 /* MLNOfflinePack.mm in Sources */, - 35D65C5B1D65AD5500722C23 /* NSDate+MLNAdditions.mm in Sources */, - CF762DEF22DC7EFF00338472 /* MLNLoggingConfiguration.mm in Sources */, - DD0902B21DB1AC6400C5BDCE /* MLNNetworkConfiguration.mm in Sources */, - 1F7454A51ECFB00300021D39 /* MLNLight.mm in Sources */, - DAE6C3B11CC31EF300DB3429 /* MLNAnnotationImage.m in Sources */, - 3508EC651D749D39009B0EE4 /* NSExpression+MLNAdditions.mm in Sources */, - DACC22151CF3D3E200D220D9 /* MLNFeature.mm in Sources */, - DA7262081DEEDD460043BB89 /* MLNOpenGLStyleLayer.mm in Sources */, - 355BA4EE1D41633E00CCC6D5 /* NSColor+MLNAdditions.mm in Sources */, - DAE6C3B31CC31EF300DB3429 /* MLNAttributionButton.mm in Sources */, - 35602BFB1D3EA99F0050646F /* MLNFillStyleLayer.mm in Sources */, - DAE6C3931CC31E2A00DB3429 /* MLNShape.mm in Sources */, - 352742861D4C244700A1ECE6 /* MLNRasterTileSource.mm in Sources */, - 558DE7A71E56161C00C7916D /* MLNFoundation.mm in Sources */, - 4BBCDC4E265260FF004106C3 /* MLNDefaultStyle.mm in Sources */, - DAE6C39D1CC31E2A00DB3429 /* NSString+MLNAdditions.m in Sources */, - 3598195A1E02F611008FC139 /* NSCoder+MLNAdditions.mm in Sources */, - 749EC8932199CCB9005608D7 /* MLNStyleLayerManager.mm in Sources */, - DAE6C3941CC31E2A00DB3429 /* MLNStyle.mm in Sources */, - DAE6C3871CC31E2A00DB3429 /* MLNGeometry.mm in Sources */, - 894623A0200E748000DA8EF2 /* MLNHeatmapStyleLayer.mm in Sources */, - 3527428E1D4C24AB00A1ECE6 /* MLNCircleStyleLayer.mm in Sources */, - 35602C011D3EA9B40050646F /* MLNForegroundStyleLayer.mm in Sources */, - 408AA86A1DAEEE5D00022900 /* NSDictionary+MLNAdditions.mm in Sources */, - DA8F25881D51C9E10010E6B5 /* MLNBackgroundStyleLayer.mm in Sources */, - DA551B841DB496AC0009AFAF /* MLNTileSource.mm in Sources */, - DAE6C3B81CC31EF300DB3429 /* MLNMapView+IBAdditions.mm in Sources */, - DA35A2D01CCAAED300E826B2 /* NSValue+MLNAdditions.m in Sources */, - 3538AA241D542685008EC33D /* MLNStyleLayer.mm in Sources */, - DA35A2C01CCA9B1A00E826B2 /* MLNClockDirectionFormatter.m in Sources */, - 07F8E2F81F674C9000F794BB /* MLNComputedShapeSource.mm in Sources */, - DAE6C3BA1CC31EF300DB3429 /* MLNOpenGLLayer.mm in Sources */, - DA35D9C7240916380013ECB0 /* MLNReachability.m in Sources */, - DAE6C38A1CC31E2A00DB3429 /* MLNMultiPoint.mm in Sources */, - DAE6C3961CC31E2A00DB3429 /* MLNTypes.m in Sources */, - 4049C2AD1DB8020600B3F799 /* MLNPointCollection.mm in Sources */, - DA35A2A61CC9EB2700E826B2 /* MLNCoordinateFormatter.m in Sources */, - 352742821D4C243B00A1ECE6 /* MLNSource.mm in Sources */, - DAE6C3881CC31E2A00DB3429 /* MLNMapCamera.mm in Sources */, - DA6408D81DA4E5DA00908C90 /* MLNVectorStyleLayer.mm in Sources */, - 1FF4858D2237235300F19727 /* MLNAttributedExpression.m in Sources */, - DA8F25B31D51CB270010E6B5 /* NSValue+MLNStyleAttributeAdditions.mm in Sources */, - DAE6C3911CC31E2A00DB3429 /* MLNPolygon.mm in Sources */, - 35C6DF851E214C0400ACA483 /* MLNDistanceFormatter.m in Sources */, - DAE6C39B1CC31E2A00DB3429 /* NSProcessInfo+MLNAdditions.m in Sources */, - DAA998FC1E9F545C002E6EA6 /* MLNFillExtrusionStyleLayer.mm in Sources */, - DAE6C38F1CC31E2A00DB3429 /* MLNOfflineStorage.mm in Sources */, - DAED38601D62CED700D7640F /* NSURL+MLNAdditions.m in Sources */, - 35C5D84A1D6DD66D00E95907 /* NSCompoundPredicate+MLNAdditions.mm in Sources */, - DAE6C3951CC31E2A00DB3429 /* MLNTilePyramidOfflineRegion.mm in Sources */, - DAE6C3851CC31E2A00DB3429 /* MLNSettings.mm in Sources */, - DA00FC8B1D5EEAC3009AABC8 /* MLNAttributionInfo.mm in Sources */, - DAE6C3921CC31E2A00DB3429 /* MLNPolyline.mm in Sources */, - 3527428A1D4C245800A1ECE6 /* MLNShapeSource.mm in Sources */, - DAE6C3B51CC31EF300DB3429 /* MLNCompassCell.m in Sources */, - DA8F25901D51CA600010E6B5 /* MLNRasterStyleLayer.mm in Sources */, - DAD165751CF4CD7A001FF4B9 /* MLNShapeCollection.mm in Sources */, - 92FC0AE6207CDD8D007B6B54 /* MLNShapeOfflineRegion.mm in Sources */, - 35C5D8481D6DD66D00E95907 /* NSComparisonPredicate+MLNAdditions.mm in Sources */, - 5591AC6B2298361600FF9ADF /* MLNMapView+Impl.mm in Sources */, - DA35A2AE1CCA091800E826B2 /* MLNCompassDirectionFormatter.m in Sources */, - DACA8623201920BE00E9693A /* MLNRasterDEMSource.mm in Sources */, - DA8F258C1D51CA540010E6B5 /* MLNLineStyleLayer.mm in Sources */, - DA8F25941D51CA750010E6B5 /* MLNSymbolStyleLayer.mm in Sources */, - 3529039C1D6C63B80002C7DF /* NSPredicate+MLNAdditions.mm in Sources */, - DA8F25981D51CAC70010E6B5 /* MLNVectorTileSource.mm in Sources */, - 352742A11D4C25BD00A1ECE6 /* MLNStyleValue.mm in Sources */, - 4BBCDC4D265260FF004106C3 /* MLNTileServerOptions.mm in Sources */, - 3EA93BA38DBB4B814B6C1FCC /* MLNRendererConfiguration.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - DAE6C32D1CC30DB200DB3429 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DA35A2C21CCA9F4A00E826B2 /* MLNClockDirectionFormatterTests.m in Sources */, - DAE6C3D41CC34C9900DB3429 /* MLNOfflineRegionTests.m in Sources */, - DAE6C3D61CC34C9900DB3429 /* MLNStyleTests.mm in Sources */, - 1F7454AB1ED1DDBD00021D39 /* MLNLightTest.mm in Sources */, - 07A240941F675674002C8210 /* MLNComputedShapeSourceTests.m in Sources */, - DAEDC4371D606291000224FF /* MLNAttributionButtonTests.m in Sources */, - CA0B3C072329F7E700E4B493 /* MLNTestAssertionHandler.m in Sources */, - DA695424215B1E6C002041A4 /* MLNMapCameraTests.m in Sources */, - 920A3E591E6F859D00C16EFC /* MLNSourceQueryTests.m in Sources */, - DA35A2B61CCA14D700E826B2 /* MLNCompassDirectionFormatterTests.m in Sources */, - DA0E9F3B24119F6B007C75D4 /* MLNImageTests.mm in Sources */, - 35C6DF871E214C1800ACA483 /* MLNDistanceFormatterTests.m in Sources */, - CAD9D0AC22A88A32001B25EE /* MLNResourceTests.mm in Sources */, - DAE6C3D21CC34C9900DB3429 /* MLNGeometryTests.mm in Sources */, - DA87A9A41DCACC5000810D09 /* MLNSymbolStyleLayerTests.mm in Sources */, - 40E1601D1DF217D6005EA6D9 /* MLNStyleLayerTests.m in Sources */, - 076171C5213A0DC200668A35 /* MLNMapViewTests.m in Sources */, - 170A82BF201BDD1B00943087 /* MLNHeatmapStyleLayerTests.mm in Sources */, - 1F95931B1E6DE2B600D5B294 /* MLNNSDateAdditionsTests.mm in Sources */, - DAF25721201902C100367EF5 /* MLNHillshadeStyleLayerTests.mm in Sources */, - DA87A9A61DCACC5000810D09 /* MLNCircleStyleLayerTests.mm in Sources */, - DA87A99E1DC9DC2100810D09 /* MLNPredicateTests.mm in Sources */, - DD58A4C91D822C6700E1F038 /* MLNExpressionTests.mm in Sources */, - CA0B3C092329FB4800E4B493 /* MLNOfflinePackTests.mm in Sources */, - 170A82C4201FB6EC00943087 /* MLNHeatmapColorTests.mm in Sources */, - 4031ACFC1E9EB3C100A3EA26 /* MLNMapViewDelegateIntegrationTests.swift in Sources */, - CA8FBC0D21A4A74300D1203C /* MLNRendererConfigurationTests.m in Sources */, - 4031AD031E9FD6AA00A3EA26 /* MLNSDKTestHelpers.swift in Sources */, - DAA4227C24294137008457DB /* MLNMapSnapshotterTests.m in Sources */, - DA87A9A71DCACC5000810D09 /* MLNBackgroundStyleLayerTests.mm in Sources */, - DAA999011E9F5EC5002E6EA6 /* MLNFillExtrusionStyleLayerTests.mm in Sources */, - DA29875A1E1A4290002299F5 /* MLNDocumentationExampleTests.swift in Sources */, - 07BA4CAC1EE21887004528F5 /* MLNImageSourceTests.m in Sources */, - DA87A9A51DCACC5000810D09 /* MLNLineStyleLayerTests.mm in Sources */, - DA87A9A31DCACC5000810D09 /* MLNRasterStyleLayerTests.mm in Sources */, - CA9461A620884CCB0015EB12 /* MLNAnnotationTests.m in Sources */, - DA87A9991DC9D88400810D09 /* MLNTileSetTests.mm in Sources */, - DA35A2A81CC9F41600E826B2 /* MLNCoordinateFormatterTests.m in Sources */, - DAE7DEC41E24549F007505A6 /* MLNNSStringAdditionsTests.m in Sources */, - DA87A9981DC9D88400810D09 /* MLNShapeSourceTests.mm in Sources */, - 55E2AD111E5B0A6900E8C587 /* MLNOfflineStorageTests.mm in Sources */, - 3526EABD1DF9B19800006B43 /* MLNCodingTests.mm in Sources */, - DA87A9A21DC9DCF100810D09 /* MLNFillStyleLayerTests.mm in Sources */, - DA57D4B11EBC699800793288 /* MLNDocumentationGuideTests.swift in Sources */, - DAEDC4321D6033F1000224FF /* MLNAttributionInfoTests.m in Sources */, - DA0CD58E1CF56F5800A5F5A5 /* MLNFeatureTests.mm in Sources */, - 556660D61E1D07E400E2C41B /* MLNVersionNumber.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - DAE6C3341CC30DB200DB3429 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DAE6C3271CC30DB200DB3429 /* dynamic */; - targetProxy = DAE6C3331CC30DB200DB3429 /* PBXContainerItemProxy */; - }; - DAE6C33C1CC30DB200DB3429 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DAE6C3271CC30DB200DB3429 /* dynamic */; - targetProxy = DAE6C33B1CC30DB200DB3429 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 96E027331E57C9A7004B8E66 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - 96E027321E57C9A7004B8E66 /* Base */, - 96E027341E57C9A9004B8E66 /* zh-Hans */, - 96E027351E57C9AB004B8E66 /* zh-Hant */, - 96E027361E57C9AC004B8E66 /* de */, - 96E027371E57C9B5004B8E66 /* fr */, - 96E027381E57C9B7004B8E66 /* ja */, - 96E027391E57C9B9004B8E66 /* sv */, - 96E0273A1E57C9BB004B8E66 /* vi */, - 96E0273B1E57C9BC004B8E66 /* pt-BR */, - 966091701E5BBFF700A9A03B /* es */, - 966091711E5BBFF900A9A03B /* pl */, - 966091721E5BBFFA00A9A03B /* uk */, - 966091731E5BBFFA00A9A03B /* lt */, - DA618B131E68850300CB7F44 /* ru */, - DA618B161E6886E000CB7F44 /* ca */, - DA618B271E68926E00CB7F44 /* fi */, - DAE8CCAB1E6E8B72009B5CB0 /* nl */, - DA704CBE1F637531004B3F28 /* hu */, - DA3389611FA3EDCE001EA329 /* bg */, - DA80E95D1FE84A300065FC9B /* ar */, - DACBC6082011885800C4D7E2 /* he */, - DAD88E03202ACF5900AAA536 /* da */, - DA934097208562590059919A /* pt-PT */, - DAFEB3702093ACBF00A86A83 /* ko */, - 1FDB00CC21F8F1FD00D21389 /* cs */, - DAE9ED53223897C400C01291 /* gl */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - DA839E9E1CC2E3400062CAFB /* MapDocument.xib */ = { - isa = PBXVariantGroup; - children = ( - DA839E9F1CC2E3400062CAFB /* Base */, - ); - name = MapDocument.xib; - sourceTree = ""; - }; - DA839EA31CC2E3400062CAFB /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - DA839EA41CC2E3400062CAFB /* Base */, - ); - name = MainMenu.xib; - sourceTree = ""; - }; - DA8933A71CCD287300E68420 /* MLNAnnotationCallout.xib */ = { - isa = PBXVariantGroup; - children = ( - DA8933A61CCD287300E68420 /* Base */, - ); - name = MLNAnnotationCallout.xib; - sourceTree = ""; - }; - DA8933AB1CCD290700E68420 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - DA8933AC1CCD290700E68420 /* Base */, - DA88520F1E0A4D0D009D7AD6 /* zh-Hans */, - DAFBD0D51E3FA969000CD6BF /* zh-Hant */, - DAA32CA61E4C4849006F8D24 /* de */, - DAA32CAF1E4C4B0D006F8D24 /* fr */, - DAA32CB31E4C4CC3006F8D24 /* ja */, - DAA32CBA1E4C4F10006F8D24 /* sv */, - DAA32CC11E4C4F93006F8D24 /* vi */, - DA9C01311E4C7B9F00C4742A /* pt-BR */, - DA737ADF1E5914D300AD2CDE /* es */, - DA737AE41E5915B000AD2CDE /* pl */, - DA737AEC1E59180E00AD2CDE /* uk */, - DA1AC01E1E5B8826006DF1D6 /* lt */, - DA618B141E68852C00CB7F44 /* ru */, - DA618B181E6887C600CB7F44 /* ca */, - DA618B2A1E6892B500CB7F44 /* fi */, - DAE8CCAC1E6E8B8D009B5CB0 /* nl */, - DA704CBF1F637548004B3F28 /* hu */, - DA3389641FA3EE00001EA329 /* bg */, - DACBC60A2011889E00C4D7E2 /* he */, - DAD88E06202ACF9200AAA536 /* da */, - DA9340992085629E0059919A /* pt-PT */, - DA9340A0208565870059919A /* ar */, - 1FDB00CD21F8F1FF00D21389 /* cs */, - DAE9ED56223898CF00C01291 /* gl */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - DA8933B31CCD2C2500E68420 /* Foundation.strings */ = { - isa = PBXVariantGroup; - children = ( - DA8933B41CCD2C2500E68420 /* Base */, - DA8852101E0A4D3A009D7AD6 /* zh-Hans */, - DAFBD0D61E3FA983000CD6BF /* zh-Hant */, - DAA32CA71E4C486D006F8D24 /* de */, - DAA32CB21E4C4CB7006F8D24 /* ja */, - DAA32CC01E4C4F89006F8D24 /* vi */, - DA6023EF1E4CE8E500DBFF23 /* sv */, - DA618B171E68876C00CB7F44 /* ca */, - DA618B231E6891ED00CB7F44 /* lt */, - DAE9E0F21EB7BF39001E8E8B /* es */, - DACCD9C71F1F443B00BB09A1 /* fr */, - DA704CBA1F6372E8004B3F28 /* ru */, - DA704CC61F666385004B3F28 /* uk */, - DA3389601FA3EAC4001EA329 /* pt-BR */, - DA3389621FA3EDEF001EA329 /* bg */, - DACBC6092011888C00C4D7E2 /* he */, - DAD88E04202ACF7C00AAA536 /* da */, - DAFEB3722093ACDA00A86A83 /* ko */, - DAE9ED54223897ED00C01291 /* gl */, - ); - name = Foundation.strings; - sourceTree = ""; - }; - DA8933B61CCD2C2D00E68420 /* Foundation.stringsdict */ = { - isa = PBXVariantGroup; - children = ( - DA8933B71CCD2C2D00E68420 /* en */, - DAA32CA81E4C48B9006F8D24 /* de */, - DAA32CAE1E4C4B03006F8D24 /* fr */, - DA9C01301E4C7B9300C4742A /* pt-BR */, - DA6023F01E4CE8FF00DBFF23 /* sv */, - DA737ADE1E5914AD00AD2CDE /* es */, - DA737AE31E5915A500AD2CDE /* pl */, - DA1AC01F1E5B8904006DF1D6 /* uk */, - DAE8CCAA1E6E8605009B5CB0 /* ru */, - DA618B151E6886DF00CB7F44 /* ca */, - DA618B241E6891F300CB7F44 /* lt */, - DACFE7971F66EA0C00630DA8 /* vi */, - DA3389631FA3EDF5001EA329 /* bg */, - DA33896C1FA3EF51001EA329 /* hu */, - DA80E95F1FE84A540065FC9B /* ar */, - DAD88E05202ACF8200AAA536 /* da */, - DA934098208562870059919A /* pt-PT */, - DAFEB3732093ACE400A86A83 /* ko */, - DAE9ED55223898B200C01291 /* gl */, - ); - name = Foundation.stringsdict; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - DA839EA71CC2E3400062CAFB /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - CURRENT_COMMIT_HASH = deadbeef; - CURRENT_PROJECT_VERSION = 15256; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_CPP_RTTI = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; - GCC_WARN_SHADOW = YES; - GCC_WARN_SIGN_COMPARE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNKNOWN_PRAGMAS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_LABEL = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SYMROOT = "$(PROJECT_DIR)/cmake"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - DA839EA81CC2E3400062CAFB /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - CURRENT_COMMIT_HASH = deadbeef; - CURRENT_PROJECT_VERSION = 15256; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_CPP_RTTI = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = "NDEBUG=1"; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; - GCC_WARN_SHADOW = YES; - GCC_WARN_SIGN_COMPARE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNKNOWN_PRAGMAS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_LABEL = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SYMROOT = "$(PROJECT_DIR)/cmake"; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; - DA839EAA1CC2E3400062CAFB /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DAC832622404AF4300A61BF8 /* macos.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = "-"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = ""; - INFOPLIST_FILE = app/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.13; - OTHER_CFLAGS = "-fvisibility=hidden"; - PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.MapboxGL; - PRODUCT_NAME = "Mapbox GL"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; - }; - name = Debug; - }; - DA839EAB1CC2E3400062CAFB /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DAC832622404AF4300A61BF8 /* macos.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = "-"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = ""; - "EXCLUDED_ARCHS[sdk=*]" = arm64; - INFOPLIST_FILE = app/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.13; - OTHER_CFLAGS = "-fvisibility=hidden"; - PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.MapboxGL; - PRODUCT_NAME = "Mapbox GL"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 4.0; - }; - name = Release; - }; - DAAA17971CE13BAE00731EFE /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - DEBUGGING_SYMBOLS = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - DAAA17981CE13BAE00731EFE /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; - DAE6C33F1CC30DB200DB3429 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DAC832622404AF4300A61BF8 /* macos.xcconfig */; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 15256; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = sdk/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.13; - OTHER_CFLAGS = ( - "-fvisibility=hidden", - "-Wno-ambiguous-macro", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.Mapbox; - PRODUCT_NAME = Mapbox; - SKIP_INSTALL = YES; - VERSION_INFO_PREFIX = "__attribute__((visibility (\"default\"))) "; - }; - name = Debug; - }; - DAE6C3401CC30DB200DB3429 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DAC832622404AF4300A61BF8 /* macos.xcconfig */; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - DEAD_CODE_STRIPPING = YES; - DEFINES_MODULE = YES; - DEPLOYMENT_POSTPROCESSING = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 15256; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = sdk/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - LLVM_LTO = YES; - MACOSX_DEPLOYMENT_TARGET = 10.13; - ONLY_ACTIVE_ARCH = NO; - OTHER_CFLAGS = ( - "-fvisibility=hidden", - "-Wno-ambiguous-macro", - ); - PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.Mapbox; - PRODUCT_NAME = Mapbox; - SKIP_INSTALL = YES; - STRIP_STYLE = "non-global"; - VERSION_INFO_PREFIX = "__attribute__((visibility (\"default\"))) "; - }; - name = Release; - }; - DAE6C3411CC30DB200DB3429 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DAC832622404AF4300A61BF8 /* macos.xcconfig */; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = test/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - OTHER_CFLAGS = "-fvisibility=hidden"; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "$(variant_cflags)", - "$(geometry_cflags)", - "$(geojson_cflags)", - ); - OTHER_SWIFT_FLAGS = "-warnings-as-errors"; - PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.test; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "../darwin/test/test-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.0; - }; - name = Debug; - }; - DAE6C3421CC30DB200DB3429 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DAC832622404AF4300A61BF8 /* macos.xcconfig */; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = test/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - OTHER_CFLAGS = "-fvisibility=hidden"; - OTHER_CPLUSPLUSFLAGS = ( - "$(OTHER_CFLAGS)", - "$(variant_cflags)", - "$(geometry_cflags)", - "$(geojson_cflags)", - ); - OTHER_SWIFT_FLAGS = "-warnings-as-errors"; - PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.test; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "../darwin/test/test-Bridging-Header.h"; - SWIFT_VERSION = 4.0; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - DA839E8D1CC2E3400062CAFB /* Build configuration list for PBXProject "macos" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DA839EA71CC2E3400062CAFB /* Debug */, - DA839EA81CC2E3400062CAFB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - DA839EA91CC2E3400062CAFB /* Build configuration list for PBXNativeTarget "macosapp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DA839EAA1CC2E3400062CAFB /* Debug */, - DA839EAB1CC2E3400062CAFB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - DAAA17991CE13BAE00731EFE /* Build configuration list for PBXLegacyTarget "docs" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DAAA17971CE13BAE00731EFE /* Debug */, - DAAA17981CE13BAE00731EFE /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - DAE6C3431CC30DB200DB3429 /* Build configuration list for PBXNativeTarget "dynamic" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DAE6C33F1CC30DB200DB3429 /* Debug */, - DAE6C3401CC30DB200DB3429 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - DAE6C3441CC30DB200DB3429 /* Build configuration list for PBXNativeTarget "test" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DAE6C3411CC30DB200DB3429 /* Debug */, - DAE6C3421CC30DB200DB3429 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = DA839E8A1CC2E3400062CAFB /* Project object */; -} diff --git a/platform/macos/macos.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/platform/macos/macos.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index f2c779de4..000000000 --- a/platform/macos/macos.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/platform/macos/macos.xcodeproj/xcshareddata/xcschemes/CI.xcscheme b/platform/macos/macos.xcodeproj/xcshareddata/xcschemes/CI.xcscheme deleted file mode 100644 index 77fe6a64c..000000000 --- a/platform/macos/macos.xcodeproj/xcshareddata/xcschemes/CI.xcscheme +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/platform/macos/macos.xcodeproj/xcshareddata/xcschemes/dynamic.xcscheme b/platform/macos/macos.xcodeproj/xcshareddata/xcschemes/dynamic.xcscheme deleted file mode 100644 index a0e4794af..000000000 --- a/platform/macos/macos.xcodeproj/xcshareddata/xcschemes/dynamic.xcscheme +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/platform/macos/macos.xcodeproj/xcshareddata/xcschemes/macosapp.xcscheme b/platform/macos/macos.xcodeproj/xcshareddata/xcschemes/macosapp.xcscheme deleted file mode 100644 index 207b25db8..000000000 --- a/platform/macos/macos.xcodeproj/xcshareddata/xcschemes/macosapp.xcscheme +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/platform/macos/macos.xcworkspace/contents.xcworkspacedata b/platform/macos/macos.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 7dbd65903..000000000 --- a/platform/macos/macos.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - diff --git a/platform/macos/macos.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/platform/macos/macos.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003..000000000 --- a/platform/macos/macos.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/platform/macos/macos.xcworkspace/xcshareddata/xcdebugger/Breakpoints_v2.xcbkptlist b/platform/macos/macos.xcworkspace/xcshareddata/xcdebugger/Breakpoints_v2.xcbkptlist deleted file mode 100644 index 5dce4426f..000000000 --- a/platform/macos/macos.xcworkspace/xcshareddata/xcdebugger/Breakpoints_v2.xcbkptlist +++ /dev/null @@ -1,6 +0,0 @@ - - - diff --git a/platform/macos/ninja b/platform/macos/ninja deleted file mode 100755 index 64fcacc550c7ef470414b11a746f656d8ee75a0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171356 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 z 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 diff --git a/platform/macos/scripts/deploy-packages.sh b/platform/macos/scripts/deploy-packages.sh deleted file mode 100644 index f45b1387c..000000000 --- a/platform/macos/scripts/deploy-packages.sh +++ /dev/null @@ -1,163 +0,0 @@ -#!/usr/bin/env bash - -set -e -set -o pipefail -set -u - -# dynamic environment variables: -# VERSION_TAG={determined automatically}: Version tag in format macos-vX.X.X-pre.X -# GITHUB_RELEASE=true: Upload to github -# BINARY_DIRECTORY=build/macos/deploy: Directory in which to save test packages - -# environment variables and dependencies: -# - You must run "mbx auth ..." before running -# - Set GITHUB_TOKEN to a GitHub API access token in your environment to use GITHUB_RELEASE -# - "wget" is required for downloading the zip files from s3 -# - The "github-release" command is required to use GITHUB_RELEASE - -function step { >&2 echo -e "\033[1m\033[36m* $@\033[0m"; } -function finish { >&2 echo -en "\033[0m"; } -trap finish EXIT - -ENABLE_APP_PUBLISH=${ENABLE_APP_PUBLISH:-NO} - -publish() { - OPTRESET=1 - OPTIND= - local arg - local rule= - local suffix= - local app= - while getopts 'r:s:a:' arg; do - case ${arg} in - r) rule=${OPTARG};; - s) suffix=${OPTARG};; - a) app=${OPTARG};; - *) "Usage: [-r rule] [-s suffix] [-a app]"; return - esac - done - - step "Building: make ${rule} ${suffix}" - make ${rule} - step "Publishing ${rule} with ${suffix}" - local file_name="" - if [ -z ${suffix} ] - then - file_name=mapbox-macos-sdk-${PUBLISH_VERSION}.zip - else - file_name=mapbox-macos-sdk-${PUBLISH_VERSION}-${suffix}.zip - fi - step "Compressing ${file_name}-> ${PWD}../deploy/${file_name}" - cd build/macos/pkg - rm -f ../deploy/${file_name} - zip -yr ../deploy/${file_name} * - cd - - if [[ "${GITHUB_RELEASE}" == true ]]; then - echo "Uploading ${file_name} to GitHub" - github-release upload \ - --tag "macos-v${PUBLISH_VERSION}" \ - --name ${file_name} \ - --file "${BINARY_DIRECTORY}/${file_name}" > /dev/null - fi - if [ ${app} ]; then - file_name="Mapbox GL.app.zip" - step "Compressing ${file_name}…" - cd build/macos/app - rm -f "${file_name}" - zip -yr "../deploy/${file_name}" 'Mapbox GL.app' - cd - - if [[ "${GITHUB_RELEASE}" == true ]]; then - echo "Uploading ${file_name} to GitHub" - github-release upload \ - --tag "macos-v${PUBLISH_VERSION}" \ - --name "${file_name}" \ - --file "${BINARY_DIRECTORY}/${file_name}" > /dev/null - fi - fi -} - -export GITHUB_USER=maplibre -export GITHUB_REPO=maplibre-native -export BUILDTYPE=Release - - -VERSION_TAG=${VERSION_TAG:-''} -PUBLISH_VERSION= -BINARY_DIRECTORY=${BINARY_DIRECTORY:-build/macos/deploy} -GITHUB_RELEASE=${GITHUB_RELEASE:-true} -PUBLISH_PRE_FLAG='' - -if [[ ${GITHUB_RELEASE} = "true" ]]; then - GITHUB_RELEASE=true # Assign bool, not just a string - - if [[ -z `which github-release` ]]; then - step "Installing github-release…" - brew install github-release - if [ -z `which github-release` ]; then - echo "Unable to install github-release. See: https://github.com/aktau/github-release" - exit 1 - fi - fi -fi - -if [[ -z ${VERSION_TAG} ]]; then - step "Determining version number from most recent relevant git tag…" - VERSION_TAG=$( git describe --tags --match=macos-v*.*.* --abbrev=0 ) - echo "Found tag: ${VERSION_TAG}" -fi - -if [[ $( echo ${VERSION_TAG} | grep --invert-match macos-v ) ]]; then - echo "Error: ${VERSION_TAG} is not a valid macOS version tag" - echo "VERSION_TAG should be in format: macos-vX.X.X-pre.X" - exit 1 -fi - -if [[ github-release info --tag ${VERSION_TAG} | grep --quiet "draft: ✗" ]]; then - echo "Error: ${VERSION_TAG} has already been published on GitHub" - echo "See: https://github.com/${GITHUB_USER}/${GITHUB_REPO}/releases/tag/${VERSION_TAG}" - if [[ "${GITHUB_RELEASE}" == true ]]; then - exit 1 - fi -fi - -PUBLISH_VERSION=$( echo ${VERSION_TAG} | sed 's/^macos-v//' ) -git checkout ${VERSION_TAG} - -step "Deploying version ${PUBLISH_VERSION}…" - -if [[ ${#} -eq 3 && $3 == "-g" ]]; then - GITHUB_RELEASE=true -fi - -npm install --ignore-scripts -mkdir -p ${BINARY_DIRECTORY} - -step "Generating release notes…" -RELEASE_NOTES=$( ./platform/macos/scripts/release-notes.js github ) - -if [[ -z "${RELEASE_NOTES}" ]]; then - echo "Release notes cannot be empty." - exit 1 -fi - -if [[ "${GITHUB_RELEASE}" == true ]]; then - step "Create GitHub release…" - if [[ $( echo ${PUBLISH_VERSION} | awk '/[0-9]-/' ) ]]; then - PUBLISH_PRE_FLAG='--pre-release' - fi - github-release release \ - --tag "macos-v${PUBLISH_VERSION}" \ - --name "macos-v${PUBLISH_VERSION}" \ - --description "${RELEASE_NOTES}" \ - --draft ${PUBLISH_PRE_FLAG} -fi - -publish -r xpackage -s symbols - -if [[ ${ENABLE_APP_PUBLISH} = "YES" ]]; then - publish -r "xpackage SYMBOLS=NO" -a true -else - publish -r "xpackage SYMBOLS=NO" -fi; - -step "Finished deploying ${PUBLISH_VERSION} in $(($SECONDS / 60)) minutes and $(($SECONDS % 60)) seconds" diff --git a/platform/macos/scripts/document.sh b/platform/macos/scripts/document.sh deleted file mode 100644 index 173f08aad..000000000 --- a/platform/macos/scripts/document.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env bash - -set -e -set -o pipefail -set -u - -if [ -z `which jazzy` ]; then - echo "Installing jazzy…" - gem install jazzy - if [ -z `which jazzy` ]; then - echo "Unable to install jazzy. See https://github.com/mapbox/mapbox-gl-native-ios/blob/master/platform/macos/INSTALL.md" - exit 1 - fi -fi - -OUTPUT=${OUTPUT:-documentation} - -BRANCH=$( git describe --tags --match=macos-v*.*.* --abbrev=0 ) -SHORT_VERSION=$( echo ${BRANCH} | sed 's/^macos-v//' ) -RELEASE_VERSION=$( echo ${SHORT_VERSION} | sed -e 's/^macos-v//' -e 's/-.*//' ) - -rm -rf /tmp/mbgl -mkdir -p /tmp/mbgl/ -README=/tmp/mbgl/README.md -if [[ ${STANDALONE:-} ]]; then - cp platform/macos/docs/pod-README.md "${README}" - perl -pi -e 's|https://raw.githubusercontent.com/mapbox/mapbox-gl-native-ios/master/platform/macos/docs/||' \ - "${README}" -else - cp platform/macos/docs/doc-README.md "${README}" -fi -# http://stackoverflow.com/a/4858011/4585461 -echo "## Changes in [version ${RELEASE_VERSION}](https://github.com/mapbox/mapbox-gl-native-ios/releases/tag/${BRANCH})" >> "${README}" -sed -n -e '/^## /{' -e ':a' -e 'n' -e '/^## /q' -e 'p' -e 'ba' -e '}' platform/macos/CHANGELOG.md >> "${README}" - -rm -rf ${OUTPUT} -mkdir -p ${OUTPUT} - -cp -r platform/darwin/docs/img "${OUTPUT}" -cp -r platform/macos/docs/img "${OUTPUT}" - -jazzy \ - --config platform/macos/jazzy.yml \ - --sdk macosx \ - --github-file-prefix https://github.com/mapbox/mapbox-gl-native-ios/tree/${BRANCH} \ - --module-version ${SHORT_VERSION} \ - --readme ${README} \ - --documentation="platform/{darwin,macos}/docs/guides/*.md" \ - --theme platform/darwin/docs/theme \ - --output ${OUTPUT} \ - --title "Maps SDK for macOS" \ - --module-version ${SHORT_VERSION} diff --git a/platform/macos/scripts/metrics.sh b/platform/macos/scripts/metrics.sh deleted file mode 100644 index 91dfc6035..000000000 --- a/platform/macos/scripts/metrics.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -set -e -set -o pipefail - -# Track individual architectures -scripts/check_binary_size.js "build/macos/pkg/Mapbox.framework/Versions/Current/Mapbox" "macOS x86_64" diff --git a/platform/macos/scripts/package.sh b/platform/macos/scripts/package.sh deleted file mode 100644 index 627335ae0..000000000 --- a/platform/macos/scripts/package.sh +++ /dev/null @@ -1,127 +0,0 @@ -#!/usr/bin/env bash - -set -e -set -o pipefail -set -u - -NAME=Mapbox -OUTPUT=build/macos/pkg -APP_OUTPUT=build/macos/app -DERIVED_DATA=build/macos -ENABLE_APP_PUBLISH=${ENABLE_APP_PUBLISH:-NO} - -BUILDTYPE=${BUILDTYPE:-Release} -SYMBOLS=${SYMBOLS:-YES} -PRODUCTS=${DERIVED_DATA}/${BUILDTYPE} - -function step { >&2 echo -e "\033[1m\033[36m* $@\033[0m"; } -function finish { >&2 echo -en "\033[0m"; } -trap finish EXIT - -rm -rf ${OUTPUT} ${APP_OUTPUT} - -HASH=`git log | head -1 | awk '{ print $2 }' | cut -c 1-10` && true -PROJ_VERSION=$(git rev-list --count HEAD) -SEM_VERSION=$( git describe --tags --match=macos-v*.*.* --abbrev=0 | sed 's/^macos-v//' ) -SHORT_VERSION=${SEM_VERSION%-*} - -CI_XCCONFIG='' -if [[ ! -z "${CI:=}" ]]; then - xcconfig='platform/darwin/ci.xcconfig' - echo "CI environment, using ${xcconfig}" - CI_XCCONFIG="-xcconfig ./${xcconfig}" -fi - -step "Building dynamic framework (build ${PROJ_VERSION}, version ${SEM_VERSION})…" -xcodebuild \ - CURRENT_SEMANTIC_VERSION=${SEM_VERSION} \ - CURRENT_COMMIT_HASH=${HASH} \ - ${CI_XCCONFIG} \ - -derivedDataPath ${DERIVED_DATA} \ - -archivePath "${APP_OUTPUT}/macosapp.xcarchive" \ - -workspace ./platform/macos/macos.xcworkspace \ - -scheme dynamic \ - -configuration ${BUILDTYPE} \ - -jobs ${JOBS} \ - build | xcpretty - -step "Copying dynamic framework into place" -mkdir -p "${OUTPUT}/${NAME}.framework" -ditto ${PRODUCTS}/${NAME}.framework "${OUTPUT}/${NAME}.framework" -if [[ -e ${PRODUCTS}/${NAME}.framework.dSYM ]]; then - cp -r ${PRODUCTS}/${NAME}.framework.dSYM "${OUTPUT}" -fi - -step "Building and archiving Mapbox GL.app (build ${PROJ_VERSION}, version ${SEM_VERSION})…" -if [[ ${BUILDTYPE} == Release ]]; then - mkdir -p ${APP_OUTPUT} - xcodebuild \ - CURRENT_SEMANTIC_VERSION=${SEM_VERSION} \ - CURRENT_COMMIT_HASH=${HASH} \ - ${CI_XCCONFIG} \ - -derivedDataPath ${DERIVED_DATA} \ - -archivePath "${APP_OUTPUT}/macosapp.xcarchive" \ - -workspace ./platform/macos/macos.xcworkspace \ - -scheme macosapp \ - -configuration ${BUILDTYPE} \ - -jobs ${JOBS} \ - archive | xcpretty -fi - -if [[ ${SYMBOLS} = NO ]]; then - step "Stripping symbols from binaries" - strip -Sx "${OUTPUT}/${NAME}.framework/${NAME}" -fi - -function get_comparable_uuid { - echo $(dwarfdump --uuid ${1} | sed -n 's/.*UUID:\([^\"]*\) .*/\1/p' | sort) -} - -function validate_dsym { - step "Validating dSYM and framework UUIDs…" - DSYM_UUID=$(get_comparable_uuid "${1}") - FRAMEWORK_UUID=$(get_comparable_uuid "${2}") - echo -e "${1}\n ${DSYM_UUID}\n${2}\n ${FRAMEWORK_UUID}" - if [[ ${DSYM_UUID} != ${FRAMEWORK_UUID} ]]; then - echo "Error: dSYM and framework UUIDs do not match." - exit 1 - fi -} - -if [[ ${BUILDTYPE} == Release && ${ENABLE_APP_PUBLISH} = "YES" ]]; then - validate_dsym \ - "${OUTPUT}/${NAME}.framework.dSYM/Contents/Resources/DWARF/${NAME}" \ - "${OUTPUT}/${NAME}.framework/${NAME}" - - step "Exporting Mapbox GL.app" - xcodebuild \ - ${CI_XCCONFIG} \ - -exportArchive \ - -archivePath "${APP_OUTPUT}/macosapp.xcarchive" \ - -exportPath "${APP_OUTPUT}" \ - -exportOptionsPlist platform/macos/ExportOptions.plist -fi - -function create_podspec { - step "Creating local podspec…" - [[ $SYMBOLS = YES ]] && POD_SUFFIX="-symbols" || POD_SUFFIX="" - POD_SOURCE_PATH=' :path => ".",' - POD_FRAMEWORKS=" m.vendored_frameworks = '"${NAME}".framework'" - INPUT_PODSPEC=platform/macos/${NAME}-macOS-SDK${POD_SUFFIX}.podspec - OUTPUT_PODSPEC=${OUTPUT}/${NAME}-macOS-SDK${POD_SUFFIX}.podspec - sed "s/.*:http.*/${POD_SOURCE_PATH}/" ${INPUT_PODSPEC} > ${OUTPUT_PODSPEC} - sed -i '' "s/.*vendored_frameworks.*/${POD_FRAMEWORKS}/" ${OUTPUT_PODSPEC} -} - -create_podspec - -step "Copying library resources…" -cp -pv LICENSE.md "${OUTPUT}" -cp -pv platform/macos/docs/pod-README.md "${OUTPUT}/README.md" -sed -n -e '/^## /,$p' platform/macos/CHANGELOG.md > "${OUTPUT}/CHANGELOG.md" - -step "Generating API documentation…" -make xdocument OUTPUT="${OUTPUT}/documentation" - -step "Checking that all public symbols are exported…" -node platform/darwin/scripts/check-public-symbols.js macOS diff --git a/platform/macos/scripts/release-notes-github.md.ejs b/platform/macos/scripts/release-notes-github.md.ejs deleted file mode 100644 index d0affd8d5..000000000 --- a/platform/macos/scripts/release-notes-github.md.ejs +++ /dev/null @@ -1,2 +0,0 @@ -<%-CHANGELOG-%> - diff --git a/platform/macos/scripts/release-notes-jazzy.md.ejs b/platform/macos/scripts/release-notes-jazzy.md.ejs deleted file mode 100644 index 84e0ebeea..000000000 --- a/platform/macos/scripts/release-notes-jazzy.md.ejs +++ /dev/null @@ -1,15 +0,0 @@ -# [MapLibre Maps SDK for macos] - -The MapLibre Maps SDK for macos is an open-source framework for embedding interactive map views with scalable, customizable vector maps into Cocoa Touch applications on iOS 9.0 and above using Objective-C, Swift, or Interface Builder. It takes stylesheets that conform to the [MapLibre Style Spec](https://maplibre.org/maplibre-style-spec/), applies them to vector tiles that conform to the [Mapbox Vector Tile Specification](https://www.mapbox.com/developers/vector-tiles/), and renders them using OpenGL. - -## Changes in version <%-CURRENTVERSION%> - -<%-CURRENTCHANGELOG%> - -## Recent changes - -<% OTHERRELEASES.forEach(function(release) { %> -### <%-release.version%> - -<%-release.changelog%> -<% }) -%> diff --git a/platform/macos/scripts/release-notes.js b/platform/macos/scripts/release-notes.js deleted file mode 100644 index b0d58c98c..000000000 --- a/platform/macos/scripts/release-notes.js +++ /dev/null @@ -1,103 +0,0 @@ -#!/usr/bin/env node - -const fs = require('fs'); -const execSync = require('child_process').execSync; -const ejs = require('ejs'); -const _ = require('lodash'); -const semver = require('semver'); - -const changelogPath = 'platform/macos/CHANGELOG.md'; -const changelog = fs.readFileSync(changelogPath, 'utf8'); - -let outputMode = {}; -switch(process.argv[2]) { - case "jazzy": - outputMode.isJazzy = true; break; - case "github": - default: - outputMode.isGitHub = true; -} - -/* - Find current and immediately previous releases by parsing git tags. -*/ -let currentVersion = execSync('git describe --tags --match=macos-v*.*.* --abbrev=0') - .toString() - .trim() - .replace('macos-v', ''); - -let gitTags = execSync('git tag --list macos-v*.*.*') - .toString() - .split('\n') - .map(function (tag) { - tag = tag.replace('macos-v', '').trim(); - return semver.clean(tag); - }); -let previousVersion = semver.maxSatisfying(gitTags, "<" + currentVersion); - -/* - Parse the raw changelog text and split it into individual releases. - - This regular expression: - - Matches lines starting with "## x.x.x". - - Groups the version number. - - Skips the (optional) release date. - - Groups the changelog content. - - Ends when another "## x.x.x" is found. -*/ -const regex = /^## (\d+\.\d+\.\d+).*?\n(.+?)(?=\n^## \d+\.\d+\.\d+.*?\n)/gms; - -let releaseNotes = []; -while (match = regex.exec(changelog)) { - releaseNotes.push({ - 'version': match[1], - 'changelog': match[2].trim(), - }); -} - -/* - Match the current tag with the most appropriate release notes. -*/ -const versionsInReleaseNotes = _.map(releaseNotes, 'version'); -const bestReleaseNotesForCurrentVersion = semver.minSatisfying(versionsInReleaseNotes, ">=" + currentVersion); -const currentReleaseNotes = _.find(releaseNotes, { version: bestReleaseNotesForCurrentVersion }); - -if (!currentReleaseNotes) { - console.error('Could not find a release section satisfying %s in %s — did you forget to rename the "main" section to %s?', currentVersion, changelogPath, currentVersion.split("-")[0]); - process.exit(1); -} - -/* - Fill and print the release notes template. -*/ -let templatedReleaseNotes; - -if (outputMode.isGitHub) { - templatedReleaseNotes = ejs.render(fs.readFileSync('platform/macos/scripts/release-notes-github.md.ejs', 'utf8'), { - 'CURRENTVERSION': currentVersion, - 'PREVIOUSVERSION': previousVersion, - 'CHANGELOG': currentReleaseNotes.changelog, - 'isPrerelease': semver.prerelease(currentVersion) - }); -} - -if (outputMode.isJazzy) { - const minorReleaseSeries = semver.major(currentVersion) + "." + semver.minor(currentVersion) + ".0"; - const range = ">=" + minorReleaseSeries + " <" + currentVersion; - const otherReleasesInSeries = _.filter(releaseNotes, function(release) { - return semver.satisfies(release.version, range); - }); - - otherReleasesInSeries.forEach(function(release) { - // Bump section headings from h3 to h4. - release.changelog = release.changelog.replace(/^### /gm, '#### '); - }); - - templatedReleaseNotes = ejs.render(fs.readFileSync('platform/macos/scripts/release-notes-jazzy.md.ejs', 'utf8'), { - 'CURRENTVERSION': currentVersion, - 'CURRENTCHANGELOG': currentReleaseNotes.changelog, - 'OTHERRELEASES': otherReleasesInSeries - }); -} - -process.stdout.write(templatedReleaseNotes); diff --git a/platform/macos/scripts/run-in-macos-gui-env.sh b/platform/macos/scripts/run-in-macos-gui-env.sh deleted file mode 100755 index a0226a198..000000000 --- a/platform/macos/scripts/run-in-macos-gui-env.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env bash - -# This script allows you to run commands from a graphical context -# on macOS. This may be needed to run tests that depend on testmanagerd. -# See: -# https://stackoverflow.com/questions/67688130/run-macos-test-cases-on-the-jenkins-pipeline/71417206#71417206 - -# This script writes out a script that runs a command, then runs it with Terminal.app. -# Next, it prints the output from the script and exits with the same -# exit code as the command. See also this blog post: -# https://aahlenst.dev/blog/accessing-the-macos-gui-in-automation-contexts/#continuous-integration-with-ssh - -set -eo pipefail - -if [ $# -ne 1 ]; then - echo "Usage: $0 " - exit 1 -fi -command="$1" - -run_command_file="$(mktemp)" - -output_file="$(mktemp)" -exit_code_file="$(mktemp)" - -cat << EOF > "$run_command_file" -cd "$(pwd)" - -$command 2>&1 | tee "$output_file" -exit_code=$? -echo $exit_code > "$exit_code_file" - -osascript -e 'tell application "Terminal" to quit' & -EOF - -chmod +x "$run_command_file" -open --wait-apps --new --fresh -a Terminal.app "$run_command_file" - -cat "$output_file" - -exit $(cat "$exit_code_file") diff --git a/platform/macos/scripts/update-version.sh b/platform/macos/scripts/update-version.sh deleted file mode 100644 index 125dde2a1..000000000 --- a/platform/macos/scripts/update-version.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash - -set -e -set -o pipefail -set -u - -function step { >&2 echo -e "\033[1m\033[36m* $@\033[0m"; } -function finish { >&2 echo -en "\033[0m"; } -trap finish EXIT - -if [ $# -eq 0 ]; then - echo "Usage: v" - exit 1 -fi - -SEM_VERSION=$1 -SEM_VERSION=${SEM_VERSION/#macos-} -SEM_VERSION=${SEM_VERSION/#v} -SHORT_VERSION=${SEM_VERSION%-*} - -step "Version ${SEM_VERSION}" - -cd platform/macos/ - -step "Updating Xcode targets to version ${SHORT_VERSION}…" - -xcrun agvtool bump -all -xcrun agvtool new-marketing-version "${SHORT_VERSION}" - -step "Updating CocoaPods podspecs to version ${SEM_VERSION}…" - -find . -type f -name '*.podspec' -exec sed -i '' "s/^ *version *=.*$/ version = '${SEM_VERSION}'/" {} + diff --git a/platform/macos/src/MLNAttributionButton.mm b/platform/macos/src/MLNAttributionButton.mm index 54fae4b85..680233b78 100644 --- a/platform/macos/src/MLNAttributionButton.mm +++ b/platform/macos/src/MLNAttributionButton.mm @@ -9,7 +9,7 @@ - (instancetype)initWithAttributionInfo:(MLNAttributionInfo *)info { if (self = [super initWithFrame:NSZeroRect]) { self.bordered = NO; - self.bezelStyle = NSRegularSquareBezelStyle; + self.bezelStyle = NSBezelStyleBadge; // Extract any prefix consisting of intellectual property symbols. NSScanner *scanner = [NSScanner scannerWithString:info.title.string]; diff --git a/platform/macos/src/MLNMapView+Impl.h b/platform/macos/src/MLNMapView+Impl.h index f385900ae..f74ed884e 100644 --- a/platform/macos/src/MLNMapView+Impl.h +++ b/platform/macos/src/MLNMapView+Impl.h @@ -22,6 +22,9 @@ public: return nullptr; } + // Called by the view delegate when it's time to render. + void render(); + // mbgl::MapObserver implementation void onCameraWillChange(mbgl::MapObserver::CameraChangeMode) override; void onCameraIsChanging() override; diff --git a/platform/macos/src/MLNMapView+Impl.mm b/platform/macos/src/MLNMapView+Impl.mm index c57bb3386..423864f99 100644 --- a/platform/macos/src/MLNMapView+Impl.mm +++ b/platform/macos/src/MLNMapView+Impl.mm @@ -1,5 +1,5 @@ #import "MLNMapView+Impl.h" -#import "MLNStyle_Private.h" +#import #import "NSBundle+MLNAdditions.h" #if MLN_RENDER_BACKEND_METAL @@ -12,12 +12,20 @@ #include std::unique_ptr MLNMapViewImpl::Create(MLNMapView* nativeView) { +#if MLN_RENDER_BACKEND_METAL + return std::make_unique(nativeView); +#else // MLN_RENDER_BACKEND_OPENGL return std::make_unique(nativeView); +#endif } MLNMapViewImpl::MLNMapViewImpl(MLNMapView* nativeView_) : mapView(nativeView_) { } +void MLNMapViewImpl::render() { + [mapView renderSync]; +} + void MLNMapViewImpl::onCameraWillChange(mbgl::MapObserver::CameraChangeMode mode) { bool animated = mode == mbgl::MapObserver::CameraChangeMode::Animated; [mapView cameraWillChangeAnimated:animated]; diff --git a/platform/macos/src/MLNMapView+Metal.h b/platform/macos/src/MLNMapView+Metal.h new file mode 100644 index 000000000..7a361aae2 --- /dev/null +++ b/platform/macos/src/MLNMapView+Metal.h @@ -0,0 +1,46 @@ +#import "MLNMapView+Impl.h" +#import "MLNMapView_Private.h" + +#include +#include + +@class MLNMapViewImplDelegate; + +/// Adapter responsible for bridging calls from mbgl to MLNMapView and Cocoa. +class MLNMapViewMetalImpl final : public MLNMapViewImpl, + public mbgl::mtl::RendererBackend, + public mbgl::gfx::Renderable { +public: + MLNMapViewMetalImpl(MLNMapView*); + ~MLNMapViewMetalImpl() override; + +public: + void restoreFramebufferBinding(); + + // Implementation of mbgl::gfx::RendererBackend +public: + mbgl::gfx::Renderable& getDefaultRenderable() override { + return *this; + } + +private: + void activate() override; + void deactivate() override; + // End implementation of mbgl::gfx::RendererBackend + + // Implementation of mbgl::gl::RendererBackend +public: + void updateAssumedState() override; + // End implementation of mbgl::gl::Rendererbackend + + // Implementation of MLNMapViewImpl +public: + mbgl::gfx::RendererBackend& getRendererBackend() override { + return *this; + } + + mbgl::PremultipliedImage readStillImage() override; + +private: + bool presentsWithTransaction = false; +}; diff --git a/platform/macos/src/MLNMapView+Metal.mm b/platform/macos/src/MLNMapView+Metal.mm new file mode 100644 index 000000000..6628d85cb --- /dev/null +++ b/platform/macos/src/MLNMapView+Metal.mm @@ -0,0 +1,160 @@ +#import "MLNFoundation_Private.h" +#import "MLNLoggingConfiguration_Private.h" +#import "MLNMapView+Metal.h" + +#import + +#import +#import +#import + +#import + +@interface MLNMapViewImplDelegate : NSObject +@end + +@implementation MLNMapViewImplDelegate { + MLNMapViewMetalImpl* _impl; +} + +- (instancetype)initWithImpl:(MLNMapViewMetalImpl*)impl { + if (self = [super init]) { + _impl = impl; + } + return self; +} + +- (void)mtkView:(MTKView *)view drawableSizeWillChange:(CGSize)size {} + +- (void)drawInMTKView:(MTKView *)view { + _impl->render(); +} + +@end + +class MLNMapViewMetalRenderableResource final : public mbgl::mtl::RenderableResource { +public: + MLNMapViewMetalRenderableResource(MLNMapViewMetalImpl& backend_) + : backend(backend_), + delegate([[MLNMapViewImplDelegate alloc] initWithImpl:&backend]) { + } + + void bind() override { + if (!commandQueue) { + commandQueue = [mtlView.device newCommandQueue]; + } + + commandBuffer = [commandQueue commandBuffer]; + commandBufferPtr = NS::RetainPtr((__bridge MTL::CommandBuffer*)commandBuffer); + } + + const mbgl::mtl::RendererBackend& getBackend() const override { return backend; } + + const mbgl::mtl::MTLCommandBufferPtr& getCommandBuffer() const override { + return commandBufferPtr; + } + + virtual mbgl::mtl::MTLBlitPassDescriptorPtr getUploadPassDescriptor() const override { + // Create from render pass descriptor? + return NS::TransferPtr(MTL::BlitPassDescriptor::alloc()->init()); + } + + const mbgl::mtl::MTLRenderPassDescriptorPtr& getRenderPassDescriptor() const override { + if (!cachedRenderPassDescriptor) { + auto* mtlDesc = mtlView.currentRenderPassDescriptor; + cachedRenderPassDescriptor = NS::RetainPtr((__bridge MTL::RenderPassDescriptor*)mtlDesc); + } + return cachedRenderPassDescriptor; + } + + void swap() override { + id currentDrawable = [mtlView currentDrawable]; + [commandBuffer presentDrawable:currentDrawable]; + [commandBuffer commit]; + + // Un-comment for synchronous, which can help troubleshoot rendering problems, + // particularly those related to resource tracking and multiple queued buffers. + //[commandBuffer waitUntilCompleted]; + + commandBuffer = nil; + commandBufferPtr.reset(); + + cachedRenderPassDescriptor.reset(); + } + + mbgl::Size framebufferSize() { + assert(mtlView); + return { static_cast(mtlView.drawableSize.width), + static_cast(mtlView.drawableSize.height) }; + } + +private: + MLNMapViewMetalImpl& backend; + mbgl::mtl::MTLCommandBufferPtr commandBufferPtr; + mutable mbgl::mtl::MTLRenderPassDescriptorPtr cachedRenderPassDescriptor; + +public: + MLNMapViewImplDelegate* delegate = nil; + MTKView *mtlView = nil; + id commandBuffer; + id commandQueue; + + // We count how often the context was activated/deactivated so that we can truly deactivate it + // after the activation count drops to 0. + NSUInteger activationCount = 0; +}; + +MLNMapViewMetalImpl::MLNMapViewMetalImpl(MLNMapView* nativeView_) + : MLNMapViewImpl(nativeView_), + mbgl::mtl::RendererBackend(mbgl::gfx::ContextMode::Unique), + mbgl::gfx::Renderable({ 0, 0 }, std::make_unique(*this)) { + + auto& resource = getResource(); + if (resource.mtlView) { + return; + } + + id device = (__bridge id)resource.getBackend().getDevice().get(); + + resource.mtlView = [[MTKView alloc] initWithFrame:mapView.bounds device:device]; + resource.mtlView.delegate = resource.delegate; + resource.mtlView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable; + resource.mtlView.colorPixelFormat = MTLPixelFormatBGRA8Unorm; + resource.mtlView.depthStencilPixelFormat = MTLPixelFormatDepth32Float_Stencil8; + resource.mtlView.layer.opaque = mapView.opaque; + resource.mtlView.enableSetNeedsDisplay = NO; + CAMetalLayer* metalLayer = MLN_OBJC_DYNAMIC_CAST(resource.mtlView.layer, CAMetalLayer); + metalLayer.presentsWithTransaction = presentsWithTransaction; + + [mapView addSubview:resource.mtlView positioned:NSWindowBelow relativeTo:nil]; +} + +MLNMapViewMetalImpl::~MLNMapViewMetalImpl() = default; + +void MLNMapViewMetalImpl::activate() { + auto& resource = getResource(); + if (resource.activationCount++) { + return; + } +} + +void MLNMapViewMetalImpl::deactivate() { + auto& resource = getResource(); + if (--resource.activationCount) { + return; + } +} + +/// This function is called before we start rendering, when iOS invokes our rendering method. +/// iOS already sets the correct framebuffer and viewport for us, so we need to update the +/// context state with the anticipated values. +void MLNMapViewMetalImpl::updateAssumedState() { + auto& resource = getResource(); + assumeFramebufferBinding(ImplicitFramebufferBinding); + assumeViewport(0, 0, resource.framebufferSize()); +} + +mbgl::PremultipliedImage MLNMapViewMetalImpl::readStillImage() { + // return readFramebuffer(mapView.framebufferSize); // TODO: RendererBackend::readFramebuffer + return {}; +} diff --git a/platform/macos/src/MLNMapView.h b/platform/macos/src/MLNMapView.h index b30c00555..2762b3e26 100644 --- a/platform/macos/src/MLNMapView.h +++ b/platform/macos/src/MLNMapView.h @@ -1,5 +1,6 @@ #import #import +#import #import "MLNFoundation.h" #import "MLNTypes.h" diff --git a/platform/macos/src/MLNMapView.mm b/platform/macos/src/MLNMapView.mm index 21ddd1ba8..a271eb8d0 100644 --- a/platform/macos/src/MLNMapView.mm +++ b/platform/macos/src/MLNMapView.mm @@ -672,6 +672,11 @@ public: _mbglMap->setPrefetchZoomDelta(prefetchesTiles ? mbgl::util::DEFAULT_PREFETCH_ZOOM_DELTA : 0); } +- (BOOL)prefetchesTiles +{ + return _mbglMap->getPrefetchZoomDelta() > 0 ? YES : NO; +} + - (mbgl::Renderer *)renderer { return _rendererFrontend->getRenderer(); } diff --git a/platform/macos/test/CI.xctestplan b/platform/macos/test/CI.xctestplan deleted file mode 100644 index f3b18bec2..000000000 --- a/platform/macos/test/CI.xctestplan +++ /dev/null @@ -1,35 +0,0 @@ -{ - "configurations" : [ - { - "id" : "8091A03F-018D-4679-99F3-5E8DB029511E", - "name" : "Configuration 1", - "options" : { - - } - } - ], - "defaultOptions" : { - "codeCoverage" : false, - "language" : "en", - "region" : "US", - "targetForVariableExpansion" : { - "containerPath" : "container:macos.xcodeproj", - "identifier" : "DA839E911CC2E3400062CAFB", - "name" : "macosapp" - } - }, - "testTargets" : [ - { - "skippedTests" : [ - "MLNMapSnapshotterTests\/testLocalGlyphRendering", - "MLNOfflineStorageTests" - ], - "target" : { - "containerPath" : "container:macos.xcodeproj", - "identifier" : "DAE6C3301CC30DB200DB3429", - "name" : "test" - } - } - ], - "version" : 1 -} diff --git a/scripts/check_benchmark_results.sh b/scripts/check_benchmark_results.sh deleted file mode 100755 index 0637dc189..000000000 --- a/scripts/check_benchmark_results.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash - -# Usage: -# check_benchmark_results.sh - -# Benchmark comparison script uses a hard-coded 5% threshold by default, but it causes random failures -# Increase the threshold to 15% - -if [ "$(uname)" == "Darwin" ]; then - sed -i '' s/"if res > 0.05"/"if res > 0.15"/ $PWD/vendor/benchmark/tools/gbench/report.py -elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then - sed -i s/"if res > 0.05"/"if res > 0.15"/ $PWD/vendor/benchmark/tools/gbench/report.py -fi - -# Run the bencmark comparison -vendor/benchmark/tools/compare.py benchmarks $1 $2 > $3 - -# Find cases where the average is above threshold -tests=`fgrep mean $3 | cut -c1-85 | grep 91m` - -if [ -z "$tests" ] -then - echo "" >> $3 - echo "PASSED, all benchmarks within 15% threshold" >> $3 - - ansi2html < $3 > $4 - exit 0 -else - test_names=`fgrep mean $3 | cut -c1-85 | grep 91m | cut -f1 -d' '` - - echo "" >> $3 - echo "FAILED, following benchmarks are not within 15% threshold:" >> $3 - echo "" >> $3 - for t in $test_names; - do - echo $t >> $3 - done - - ansi2html < $3 > $4 - exit 1 -fi diff --git a/scripts/config.xcconfig.in b/scripts/config.xcconfig.in deleted file mode 100644 index 9370ed094..000000000 --- a/scripts/config.xcconfig.in +++ /dev/null @@ -1,11 +0,0 @@ -// Do not edit -- generated by CMake - -// mbgl-core -mbgl_core_INCLUDE_DIRECTORIES = "$," ">" -mbgl_core_LINK_LIBRARIES = "$" - -// mbgl-filesource -mbgl_filesource_INCLUDE_DIRECTORIES = "$," ">" -mbgl_filesource_LINK_LIBRARIES = "$" - -#include? "../../platform/darwin/developer.xcconfig" \ No newline at end of file diff --git a/scripts/launch-c-xcode.in b/scripts/launch-c-xcode.in deleted file mode 100644 index 837e1738e..000000000 --- a/scripts/launch-c-xcode.in +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -export CCACHE_CPP2=true -exec "@C_LAUNCHER@" "${PATH%%/Contents/Developer/*}/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" "$@" diff --git a/scripts/launch-c.in b/scripts/launch-c.in deleted file mode 100644 index 94555f32a..000000000 --- a/scripts/launch-c.in +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -export CCACHE_CPP2=true -exec "@C_LAUNCHER@" "$@" diff --git a/scripts/launch-cxx-xcode.in b/scripts/launch-cxx-xcode.in deleted file mode 100644 index 9532b6f9a..000000000 --- a/scripts/launch-cxx-xcode.in +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -export CCACHE_CPP2=true -exec "@CXX_LAUNCHER@" "${PATH%%/Contents/Developer/*}/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++" "$@" diff --git a/scripts/launch-cxx.in b/scripts/launch-cxx.in deleted file mode 100644 index 46671c1c6..000000000 --- a/scripts/launch-cxx.in +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -export CCACHE_CPP2=true -exec "@CXX_LAUNCHER@" "$@" diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp index 56dc856e1..72f16e364 100644 --- a/src/mbgl/renderer/renderer_impl.cpp +++ b/src/mbgl/renderer/renderer_impl.cpp @@ -77,6 +77,7 @@ void Renderer::Impl::render(const RenderTree& renderTree, #if MLN_RENDER_BACKEND_METAL if constexpr (EnableMetalCapture) { const auto& mtlBackend = static_cast(backend); + const auto& mtlDevice = mtlBackend.getDevice(); if (!commandCaptureScope) { diff --git a/vendor/glfw.BUILD b/vendor/glfw.BUILD new file mode 100644 index 000000000..dfd867cb9 --- /dev/null +++ b/vendor/glfw.BUILD @@ -0,0 +1,10 @@ +cc_library( + name = "glfw", + hdrs = glob([ + "include/GLFW/*.h", + ]), + includes = [ + "include", + ], + visibility = ["//visibility:public"], +) diff --git a/vendor/libuv.BUILD b/vendor/libuv.BUILD new file mode 100644 index 000000000..f37a18d41 --- /dev/null +++ b/vendor/libuv.BUILD @@ -0,0 +1,6 @@ +cc_library( + name = "libuv", + hdrs = glob(["include/**/*.h"]), + includes = ["include"], + visibility = ["//visibility:public"], +)