diff --git a/.bazelrc b/.bazelrc index 320763927b3..1f834b3a07c 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 66ce77b7ead..a3fcc7121bb 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -7.0.0 +7.1.0 diff --git a/.clang-format b/.clang-format index e6e6177a85c..8a61bdedbbc 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 c914f3b52d8..18748ae33ed 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 f942d35d9c1..aadbc15f69e 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 - - - 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 + key: ${{ runner.os }}-bazel-${{ hashFiles('.bazelversion', '.bazelrc', 'WORKSPACE', 'WORKSPACE.bazel', 'MODULE.bazel') }} + restore-keys: | + ${{ runner.os }}-bazel- + path: ~/.cache/bazel + + - name: Install dependencies 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 + brew install bazelisk webp libuv webp icu4c jpeg-turbo glfw + brew link icu4c --force + + - 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 bc0225edda4..70bd2e69e78 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 56e744c46db..ec5888a557b 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 e69de29bb2d..e4df7e1b330 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 78687119e2c..f9c6559d6b4 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 00000000000..d7842244870 --- /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 b6bb55cf6cb..26e1fa11ba0 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 c3f25715aff..697e923d16e 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 b381a1f62a4..c400cd44e80 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 331fa679133..2ac4c6c3cfa 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 00000000000..3b8861d608f --- /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 3c406f9eace..a794bdebadf 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 2618778b743..9616a3d72a4 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 5877c911b54..0f2f52a825f 100644 --- a/platform/darwin/src/MLNLocationManager.m +++ b/platform/darwin/src/MLNLocationManager.m @@ -94,9 +94,11 @@ - (void)startUpdatingLocation { [self.locationManager startUpdatingLocation]; } +#if TARGET_OS_IPHONE - (void)stopUpdatingHeading { [self.locationManager stopUpdatingHeading]; } +#endif - (void)stopUpdatingLocation { [self.locationManager stopUpdatingLocation]; @@ -105,7 +107,9 @@ - (void)stopUpdatingLocation { - (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 cf82bcf0a91..078e3b05d1b 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 00000000000..0f0850722b7 --- /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 00000000000..f1440bab146 --- /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 00000000000..3f776bf40ad --- /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 5bfa8272e45..5658ba54e9a 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::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); + glfwWindowHint(GLFW_CONTEXT_CREATION_API, GLFW_EGL_CONTEXT_API); #endif #ifdef DEBUG - glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GL_TRUE); + 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_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); + 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 c5e496df97f..003b019ffa0 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 00000000000..11ea485b27a --- /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 00000000000..e497712681e --- /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 f34aca7a5c5..1fd08ccaee8 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 b63814a116c..14898bc9628 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 fc5dfdb9e16..00cf6684905 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 91e2141e02d..2205f732775 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 84a11273964..5713f583fca 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 f3af526eb6b..cfa0ef787a2 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 00000000000..02b1b3408b5 --- /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 813880dcbb4..7ef54ff48b2 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 64858e440b0..00000000000 --- 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 21af10c08aa..00000000000 --- 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 c2e56bce47a..00000000000 --- 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 c9a38a4615e..d4b27fe0e8c 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 88a45c15ce0..00000000000 --- 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 867ac7165da..e962282f342 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 fbf35e5d612..c6dbc376809 100644 Binary files a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon128x128.png and b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon128x128.png differ diff --git a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon128x128@2x.png b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon128x128@2x.png index e60680874a3..0bb4a93b269 100644 Binary files a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon128x128@2x.png and b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon128x128@2x.png differ diff --git a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon16x16.png b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon16x16.png index 361198da923..13bfd11bf3b 100644 Binary files a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon16x16.png and b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon16x16.png differ 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 f6bf78a4b4a..d9bbd57f2e6 100644 Binary files a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon16x16@2x.png and b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon16x16@2x.png differ diff --git a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon256x256.png b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon256x256.png index e60680874a3..0bb4a93b269 100644 Binary files a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon256x256.png and b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon256x256.png differ 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 e7c0271490e..596cf9252b0 100644 Binary files a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon256x256@2x.png and b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon256x256@2x.png differ diff --git a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon32x32.png b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon32x32.png index e9198992690..d9bbd57f2e6 100644 Binary files a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon32x32.png and b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon32x32.png differ 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 5035f60941f..43efec54e53 100644 Binary files a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon32x32@2x.png and b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon32x32@2x.png differ diff --git a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon512x512.png b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon512x512.png index e7c0271490e..596cf9252b0 100644 Binary files a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon512x512.png and b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon512x512.png differ diff --git a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon512x512@2x.png b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon512x512@2x.png index a2e1dfd02b0..9d3a6542f7e 100644 Binary files a/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon512x512@2x.png and b/platform/macos/app/Assets.xcassets/AppIcon.appiconset/AppIcon512x512@2x.png differ diff --git a/platform/macos/app/Assets.xcassets/Contents.json b/platform/macos/app/Assets.xcassets/Contents.json index da4a164c918..73c00596a7f 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 00000000000..459065e4a9c --- /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 c5a56bb547a..04642426daf 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 a88843174f1..209439c9485 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 3bdccbe13b8..c8fded1f129 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 e39a3dcb709..1c86475f6d9 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 4cafdc46e17..71ba8400271 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 @@ - (void)updateAnimatedImageSource:(NSTimer *)timer { } } -- (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 bbf6d34d3b4..3fc02919ae0 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 7d7ec411485..889fabb1b76 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 176f78a8b20..00000000000 --- 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 c917dee7e06..00000000000 --- 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 3dfe1a1a771..00000000000 --- 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 f2c779de46b..00000000000 --- 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 77fe6a64c25..00000000000 --- 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 a0e4794afde..00000000000 --- 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 207b25db8f8..00000000000 --- 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 7dbd65903bc..00000000000 --- 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 18d981003d6..00000000000 --- 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 5dce4426f3c..00000000000 --- 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 64fcacc550c..00000000000 Binary files a/platform/macos/ninja and /dev/null differ diff --git a/platform/macos/scripts/deploy-packages.sh b/platform/macos/scripts/deploy-packages.sh deleted file mode 100644 index f45b1387c03..00000000000 --- 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 173f08aad87..00000000000 --- 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 91dfc60358b..00000000000 --- 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 627335ae0f7..00000000000 --- 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 d0affd8d57c..00000000000 --- 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 84e0ebeea9c..00000000000 --- 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 b0d58c98c60..00000000000 --- 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 a0226a19835..00000000000 --- 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 125dde2a14c..00000000000 --- 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 54fae4b8521..680233b789d 100644 --- a/platform/macos/src/MLNAttributionButton.mm +++ b/platform/macos/src/MLNAttributionButton.mm @@ -9,7 +9,7 @@ @implementation MLNAttributionButton - (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 f385900ae82..f74ed884ea5 100644 --- a/platform/macos/src/MLNMapView+Impl.h +++ b/platform/macos/src/MLNMapView+Impl.h @@ -22,6 +22,9 @@ class MLNMapViewImpl : public mbgl::MapObserver { 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 c57bb338653..423864f99e8 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 00000000000..7a361aae210 --- /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 00000000000..6628d85cb28 --- /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 b30c0055507..2762b3e2611 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 21ddd1ba894..a271eb8d0a2 100644 --- a/platform/macos/src/MLNMapView.mm +++ b/platform/macos/src/MLNMapView.mm @@ -672,6 +672,11 @@ - (void)setPrefetchesTiles:(BOOL)prefetchesTiles _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 f3b18bec24a..00000000000 --- 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 0637dc1898e..00000000000 --- 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 9370ed0948e..00000000000 --- 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 837e1738e81..00000000000 --- 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 94555f32aa0..00000000000 --- 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 9532b6f9afe..00000000000 --- 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 46671c1c64d..00000000000 --- 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 56dc856e1e3..72f16e36474 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 00000000000..dfd867cb9a3 --- /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 00000000000..f37a18d41ae --- /dev/null +++ b/vendor/libuv.BUILD @@ -0,0 +1,6 @@ +cc_library( + name = "libuv", + hdrs = glob(["include/**/*.h"]), + includes = ["include"], + visibility = ["//visibility:public"], +)