diff --git a/.github/workflows/ios-ci.yml b/.github/workflows/ios-ci.yml index 190ba797a..e251c6882 100644 --- a/.github/workflows/ios-ci.yml +++ b/.github/workflows/ios-ci.yml @@ -332,13 +332,30 @@ jobs: run: | VERSION=${{ env.version }} COCOAPODS_TRUNK_TOKEN=${{ secrets.COCOAPODS_PASSWORD }} pod trunk push MapLibre.podspec + ios-build-cmake: + needs: pre_job + runs-on: macos-latest + if: needs.pre_job.outputs.should_skip != 'true' + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 + + - name: Configure build with CMake + run: cmake --preset ios + + - name: Build mbgl-core + run: cmake --build build-ios --target mbgl-core ios-sdk-static app + ios-ci-result: runs-on: ubuntu-latest if: needs.pre_job.outputs.should_skip != 'true' && always() needs: - pre_job - ios-build + - ios-build-cmake steps: - name: Mark result as failed - if: needs.ios-build.result != 'success' + if: needs.ios-build.result != 'success' || needs.ios-build-cmake.result != 'success' run: exit 1 diff --git a/.github/workflows/node-ci.yml b/.github/workflows/node-ci.yml index 980eb50c5..44d3f639f 100644 --- a/.github/workflows/node-ci.yml +++ b/.github/workflows/node-ci.yml @@ -167,7 +167,7 @@ jobs: if: ${{contains(runner.name, 'GitHub Actions')}} uses: jwlawson/actions-setup-cmake@v2 with: - cmake-version: '3.29.2' + cmake-version: '3.31' - name: cmake version run: | @@ -204,16 +204,7 @@ jobs: - name: Configure maplibre-native (MacOS) if: runner.os == 'MacOS' run: | - cmake . -B build \ - -G Ninja \ - -DCMAKE_BUILD_TYPE=${{ env.BUILDTYPE }} \ - -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ - -DMLN_WITH_NODE=ON \ - -DMLN_WITH_OPENGL=OFF \ - -DMLN_WITH_METAL=ON \ - -DMLN_LEGACY_RENDERER=OFF \ - -DMLN_DRAWABLE_RENDERER=ON \ - -DMLN_WITH_WERROR=OFF + cmake --preset macos-node -DCMAKE_BUILD_TYPE=${{ env.BUILDTYPE }} - name: Configure maplibre-native (Linux) if: runner.os == 'Linux' diff --git a/CMakeLists.txt b/CMakeLists.txt index a2e863fa5..812c66458 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,7 +86,7 @@ target_compile_options( $<$:-fsanitize=float-divide-by-zero, -fsanitize-blacklist=${UBSAN_BLACKLIST}> $<$:-fembed-bitcode> - $<$,$,$>>>:-fno-rtti> + $<$,$>,$,$>>>:-fno-rtti> $<$,$>>:-Wall> $<$,$>>:-Wshadow> $<$,$>>:-Wextra> @@ -1268,6 +1268,7 @@ if(MLN_WITH_METAL) ${PROJECT_SOURCE_DIR}/src/mbgl/shaders/mtl/raster.cpp ${PROJECT_SOURCE_DIR}/src/mbgl/shaders/mtl/symbol.cpp ${PROJECT_SOURCE_DIR}/src/mbgl/shaders/mtl/widevector.cpp + ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/mtl/custom_layer_render_parameters.cpp ) find_library(METAL_FRAMEWORK Metal) @@ -1372,12 +1373,12 @@ endif() if(MLN_DRAWABLE_RENDERER) list(APPEND SRC_FILES - ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/custom_drawable_layer.cpp ${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/custom_drawable_layer_factory.cpp - ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/custom_drawable_layer_impl.cpp - ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/custom_drawable_layer_impl.hpp ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_custom_drawable_layer.cpp ${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_custom_drawable_layer.hpp + ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/custom_drawable_layer_impl.cpp + ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/custom_drawable_layer_impl.hpp + ${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/custom_drawable_layer.cpp ) endif() @@ -1579,7 +1580,11 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL Android) elseif(CMAKE_SYSTEM_NAME STREQUAL Linux) include(${PROJECT_SOURCE_DIR}/platform/linux/linux.cmake) elseif(CMAKE_SYSTEM_NAME STREQUAL Darwin) + include(${PROJECT_SOURCE_DIR}/platform/darwin/darwin.cmake) include(${PROJECT_SOURCE_DIR}/platform/macos/macos.cmake) +elseif(CMAKE_SYSTEM_NAME STREQUAL iOS) + include(${PROJECT_SOURCE_DIR}/platform/darwin/darwin.cmake) + include(${PROJECT_SOURCE_DIR}/platform/ios/ios.cmake) elseif(WIN32) include(${PROJECT_SOURCE_DIR}/platform/windows/windows.cmake) else() diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 000000000..f6be192d2 --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,59 @@ +{ + "version": 10, + "cmakeMinimumRequired": { + "major": 3, + "minor": 21, + "patch": 0 + }, + "configurePresets": [ + { + "name": "ios", + "displayName": "iOS", + "generator": "Xcode", + "description": "Create Xcode project for iOS", + "binaryDir": "${sourceDir}/build-ios", + "cacheVariables": { + "CMAKE_SYSTEM_NAME": "iOS", + "CMAKE_CXX_COMPILER_LAUNCHER": "ccache", + "MLN_WITH_METAL": "ON", + "MLN_WITH_OPENGL": "OFF", + "MLN_DRAWABLE_RENDERER": "ON" + } + }, + { + "name": "macos", + "displayName": "macOS", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-macos", + "cacheVariables": { + "CMAKE_SYSTEM_NAME": "Darwin", + "CMAKE_CXX_COMPILER_LAUNCHER": "ccache", + "MLN_WITH_METAL": "ON", + "MLN_WITH_OPENGL": "OFF", + "MLN_DRAWABLE_RENDERER": "ON" + } + }, + { + "name": "macos-vulkan", + "displayName": "macOS", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build-macos-vulkan", + "cacheVariables": { + "CMAKE_SYSTEM_NAME": "Darwin", + "CMAKE_CXX_COMPILER_LAUNCHER": "ccache", + "MLN_WITH_VULKAN": "ON", + "MLN_WITH_OPENGL": "OFF", + "MLN_DRAWABLE_RENDERER": "ON" + } + }, + { + "name": "macos-node", + "inherits": "macos", + "binaryDir": "${sourceDir}/build", + "cacheVariables": { + "MLN_WITH_NODE": "ON", + "MLN_WITH_WERROR": "OFF" + } + } + ] +} diff --git a/docs/mdbook/src/ios/README.md b/docs/mdbook/src/ios/README.md index a8671a1fe..eb42e12ef 100644 --- a/docs/mdbook/src/ios/README.md +++ b/docs/mdbook/src/ios/README.md @@ -73,6 +73,20 @@ bazel run //platform/ios:App --//:renderer=metal You can also build targets from the command line. For example, if you want to build your own XCFramework, see the 'Build XCFramework' step in the [iOS CI workflow](../../.github/workflows/ios-ci.yml). -## Swift App +## CMake -There is also an example app built with Swift instead of Objective-C. The target is called `MapLibreApp` and the source code lives in `platform/ios/app-swift`. +It is also possible to generate an Xcode project using CMake. As of February 2025, targets `mbgl-core`, `ios-sdk-static` and `app` (Objective-C development app) are supported. + +``` +cmake --preset ios -DDEVELOPMENT_TEAM_ID=YOUR_TEAM_ID +xed build-ios/MapLibre\ Native.xcodeproj +``` + +## Distribution + +MapLibre iOS is distributed as an XCFramework via the [maplibre/maplibre-gl-native-distribution](https://github.com/maplibre/maplibre-gl-native-distribution) repository. See [Release MapLibre iOS](./release.md) for the release process. Refer to the [`ios-ci.yml`](https://github.com/maplibre/maplibre-native/blob/main/.github/workflows/ios-ci.yml) workflow for an up-to-date recipe for building an XCFramework. As of February 2025 we use: + +``` +bazel build --compilation_mode=opt --features=dead_strip,thin_lto --objc_enable_binary_stripping \ + --apple_generate_dsym --output_groups=+dsyms --//:renderer=metal //platform/ios:MapLibre.dynamic --embed_label=maplibre_ios_"$(cat VERSION)" +``` diff --git a/docs/mdbook/src/platforms.md b/docs/mdbook/src/platforms.md index 20a83499e..4608c5855 100644 --- a/docs/mdbook/src/platforms.md +++ b/docs/mdbook/src/platforms.md @@ -48,9 +48,12 @@ In 2023 we co-opted Bazel as a build tool (generator), mostly due to it having b | Platform | CMake | Bazel | |---|---|---| | Android | ✅ (via Gradle) | ❌ | -| iOS | ❌ | ✅ | +| iOS | ✅[^3] | ✅ | | Linux | ✅ | ✅ | -| Windows | ✅ | ❌ | +| Windows | ✅ | ✅ | | macOS | ✅ | ✅ | | Node.js | ✅ | ❌ | | Qt | ✅ | ❌ | + + +[^3]: Some targets are supported, see [here](ios/README.md#cmake). diff --git a/include/mbgl/mtl/index_buffer_resource.hpp b/include/mbgl/mtl/index_buffer_resource.hpp index cdbe2997e..703a561aa 100644 --- a/include/mbgl/mtl/index_buffer_resource.hpp +++ b/include/mbgl/mtl/index_buffer_resource.hpp @@ -8,7 +8,7 @@ namespace mtl { class IndexBufferResource : public gfx::IndexBufferResource { public: - IndexBufferResource() noexcept = default; + IndexBufferResource() noexcept = delete; IndexBufferResource(BufferResource&&) noexcept; IndexBufferResource(IndexBufferResource&& other) noexcept : buffer(std::move(other.buffer)) {} diff --git a/include/mbgl/mtl/vertex_buffer_resource.hpp b/include/mbgl/mtl/vertex_buffer_resource.hpp index aa9f2c16e..a52d718e7 100644 --- a/include/mbgl/mtl/vertex_buffer_resource.hpp +++ b/include/mbgl/mtl/vertex_buffer_resource.hpp @@ -10,7 +10,7 @@ namespace mtl { class VertexBufferResource : public gfx::VertexBufferResource { public: - VertexBufferResource() noexcept = default; + VertexBufferResource() noexcept = delete; VertexBufferResource(BufferResource&&) noexcept; VertexBufferResource(VertexBufferResource&& other) noexcept : buffer(std::move(other.buffer)) {} diff --git a/platform/darwin/BUILD.bazel b/platform/darwin/BUILD.bazel index 9c59e9f55..540614772 100644 --- a/platform/darwin/BUILD.bazel +++ b/platform/darwin/BUILD.bazel @@ -200,7 +200,7 @@ cc_library( objc_library( name = "darwin-objc", srcs = [ - "src/native_apple_interface.m", + "core/native_apple_interface.m", ], hdrs = [ "include/mbgl/interface/native_apple_interface.h", @@ -227,15 +227,15 @@ objc_library( objc_library( name = "darwin-objcpp", srcs = [ + "core/collator.mm", + "core/http_file_source.mm", + "core/image.mm", + "core/local_glyph_rasterizer.mm", + "core/logging_nslog.mm", + "core/nsthread.mm", + "core/number_format.mm", + "core/string_nsstring.mm", "src/CFHandle.hpp", - "src/collator.mm", - "src/http_file_source.mm", - "src/image.mm", - "src/local_glyph_rasterizer.mm", - "src/logging_nslog.mm", - "src/nsthread.mm", - "src/number_format.mm", - "src/string_nsstring.mm", ] + select({ "//:metal_renderer": [], "//conditions:default": ["src/headless_backend_eagl.mm"], @@ -252,6 +252,7 @@ objc_library( ], includes = [ "include", + "src", ], sdk_frameworks = [ "CoreText", @@ -269,9 +270,9 @@ objc_library( objc_library( name = "darwin-loop", srcs = [ - "src/async_task.cpp", - "src/run_loop.cpp", - "src/timer.cpp", + "core/async_task.cpp", + "core/run_loop.cpp", + "core/timer.cpp", ] + select({ "//:metal_renderer": [], "//conditions:default": ["src/gl_functions.cpp"], diff --git a/platform/darwin/src/async_task.cpp b/platform/darwin/core/async_task.cpp similarity index 100% rename from platform/darwin/src/async_task.cpp rename to platform/darwin/core/async_task.cpp diff --git a/platform/darwin/src/collator.mm b/platform/darwin/core/collator.mm similarity index 100% rename from platform/darwin/src/collator.mm rename to platform/darwin/core/collator.mm diff --git a/platform/darwin/src/http_file_source.mm b/platform/darwin/core/http_file_source.mm similarity index 99% rename from platform/darwin/src/http_file_source.mm rename to platform/darwin/core/http_file_source.mm index 09117872b..4956df8bc 100644 --- a/platform/darwin/src/http_file_source.mm +++ b/platform/darwin/core/http_file_source.mm @@ -86,7 +86,6 @@ class HTTPFileSource::Impl { public: Impl(const ResourceOptions& resourceOptions_, const ClientOptions& clientOptions_) : resourceOptions(resourceOptions_.clone()), clientOptions(clientOptions_.clone()) { - @autoreleasepool { NSURLSessionConfiguration *sessionConfig = MLNNativeNetworkManager.sharedManager.sessionConfiguration; session = [NSURLSession sessionWithConfiguration:sessionConfig]; @@ -95,8 +94,6 @@ public: } else { userAgent = sessionConfig.HTTPAdditionalHeaders[@"User-Agent"]; } - - } } void setResourceOptions(ResourceOptions options); @@ -280,7 +277,7 @@ std::unique_ptr HTTPFileSource::request(const Resource& resource, [MLNNativeNetworkManager.sharedManager startDownloadEvent:url.relativePath type:@"tile"]; } - __block NSURLSession *session; + __block NSURLSession *session = nil; // Use the delegate's session if there is one, otherwise use the one that // was created when this class was constructed. diff --git a/platform/darwin/src/image.mm b/platform/darwin/core/image.mm similarity index 100% rename from platform/darwin/src/image.mm rename to platform/darwin/core/image.mm diff --git a/platform/darwin/src/local_glyph_rasterizer.mm b/platform/darwin/core/local_glyph_rasterizer.mm similarity index 100% rename from platform/darwin/src/local_glyph_rasterizer.mm rename to platform/darwin/core/local_glyph_rasterizer.mm diff --git a/platform/darwin/src/logging_nslog.mm b/platform/darwin/core/logging_nslog.mm similarity index 100% rename from platform/darwin/src/logging_nslog.mm rename to platform/darwin/core/logging_nslog.mm diff --git a/platform/darwin/src/native_apple_interface.m b/platform/darwin/core/native_apple_interface.m similarity index 100% rename from platform/darwin/src/native_apple_interface.m rename to platform/darwin/core/native_apple_interface.m diff --git a/platform/darwin/src/nsthread.mm b/platform/darwin/core/nsthread.mm similarity index 100% rename from platform/darwin/src/nsthread.mm rename to platform/darwin/core/nsthread.mm diff --git a/platform/darwin/src/number_format.mm b/platform/darwin/core/number_format.mm similarity index 100% rename from platform/darwin/src/number_format.mm rename to platform/darwin/core/number_format.mm diff --git a/platform/darwin/src/run_loop.cpp b/platform/darwin/core/run_loop.cpp similarity index 100% rename from platform/darwin/src/run_loop.cpp rename to platform/darwin/core/run_loop.cpp diff --git a/platform/darwin/src/string_nsstring.mm b/platform/darwin/core/string_nsstring.mm similarity index 100% rename from platform/darwin/src/string_nsstring.mm rename to platform/darwin/core/string_nsstring.mm diff --git a/platform/darwin/src/timer.cpp b/platform/darwin/core/timer.cpp similarity index 100% rename from platform/darwin/src/timer.cpp rename to platform/darwin/core/timer.cpp diff --git a/platform/darwin/darwin.cmake b/platform/darwin/darwin.cmake new file mode 100644 index 000000000..158ed0a35 --- /dev/null +++ b/platform/darwin/darwin.cmake @@ -0,0 +1,167 @@ +enable_language(OBJC OBJCXX Swift) + +target_link_libraries( + mbgl-core + PRIVATE + "-framework CoreGraphics" + "-framework CoreLocation" + "-framework CoreImage" + "-framework SystemConfiguration" + mbgl-vendor-icu + sqlite3 + z +) + +target_sources( + mbgl-core + PRIVATE + ${PROJECT_SOURCE_DIR}/platform/darwin/core/async_task.cpp + ${PROJECT_SOURCE_DIR}/platform/darwin/core/collator.mm + ${PROJECT_SOURCE_DIR}/platform/darwin/core/http_file_source.mm + ${PROJECT_SOURCE_DIR}/platform/darwin/core/image.mm + ${PROJECT_SOURCE_DIR}/platform/darwin/core/local_glyph_rasterizer.mm + ${PROJECT_SOURCE_DIR}/platform/darwin/core/logging_nslog.mm + ${PROJECT_SOURCE_DIR}/platform/darwin/core/native_apple_interface.m + ${PROJECT_SOURCE_DIR}/platform/darwin/core/nsthread.mm + ${PROJECT_SOURCE_DIR}/platform/darwin/core/number_format.mm + ${PROJECT_SOURCE_DIR}/platform/darwin/core/run_loop.cpp + ${PROJECT_SOURCE_DIR}/platform/darwin/core/string_nsstring.mm + ${PROJECT_SOURCE_DIR}/platform/darwin/core/timer.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_backend.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_frontend.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/layermanager/layer_manager.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/map/map_snapshotter.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/platform/time.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/asset_file_source.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/mbtiles_file_source.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/database_file_source.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_manager.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_request.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_request.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_source.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/main_resource_loader.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_database.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_download.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/online_file_source.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/$,pmtiles_file_source.cpp,pmtiles_file_source_stub.cpp> + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/sqlite3.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/bidi.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/compression.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/filesystem.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/monotonic_timer.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/png_writer.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread_local.cpp + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/utf.cpp +) + +target_include_directories( + mbgl-core + PUBLIC + ${PROJECT_SOURCE_DIR}/platform/darwin/include + ${PROJECT_SOURCE_DIR}/platform/default/include + PRIVATE + ${PROJECT_SOURCE_DIR}/platform/darwin/src ${PROJECT_SOURCE_DIR}/platform/macos/src +) + +if(MLN_WITH_METAL) + target_sources( + mbgl-core + PRIVATE + ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/mtl/headless_backend.cpp + ) +endif() + +include(${PROJECT_SOURCE_DIR}/vendor/icu.cmake) + +set(CMAKE_OBJC_FLAGS "-fobjc-arc") +set(CMAKE_OBJCXX_FLAGS "-fobjc-arc") + +set(MLN_GENERATED_DARWIN_CODE_DIR + ${CMAKE_BINARY_DIR}/generated-darwin-code/src +) + +set(MLN_GENERATED_DARWIN_STYLE_SOURCE + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNLight.mm" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNBackgroundStyleLayer.mm" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNCircleStyleLayer.mm" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNFillExtrusionStyleLayer.mm" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNFillStyleLayer.mm" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNHeatmapStyleLayer.mm" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNHillshadeStyleLayer.mm" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNLineStyleLayer.mm" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNRasterStyleLayer.mm" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNSymbolStyleLayer.mm" +) + +set(MLN_GENERATED_DARWIN_STYLE_PUBLIC_HEADERS + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNBackgroundStyleLayer.h" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNFillExtrusionStyleLayer.h" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNHeatmapStyleLayer.h" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNLight.h" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNLineStyleLayer.h" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNSymbolStyleLayer.h" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNCircleStyleLayer.h" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNFillStyleLayer.h" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNHillshadeStyleLayer.h" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNRasterStyleLayer.h" +) + +set(MLN_GENERATED_DARWIN_STYLE_HEADERS + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNRasterStyleLayer_Private.h" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNBackgroundStyleLayer_Private.h" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNFillExtrusionStyleLayer_Private.h" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNHeatmapStyleLayer_Private.h" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNLineStyleLayer_Private.h" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNSymbolStyleLayer_Private.h" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNCircleStyleLayer_Private.h" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNFillStyleLayer_Private.h" + "${MLN_GENERATED_DARWIN_CODE_DIR}/MLNHillshadeStyleLayer_Private.h" + ${MLN_GENERATED_DARWIN_STYLE_PUBLIC_HEADERS} +) + +find_program(BAZEL bazel REQUIRED) + +add_custom_command( + OUTPUT ${MLN_GENERATED_DARWIN_STYLE_SOURCE} ${MLN_GENERATED_DARWIN_STYLE_HEADERS} + COMMAND ${CMAKE_COMMAND} -E rm -Rf + "${PROJECT_SOURCE_DIR}/bazel-bin/platform/darwin/src" + COMMAND ${BAZEL} build //platform/darwin:generated_code + COMMAND ${CMAKE_COMMAND} -E copy_directory + "${PROJECT_SOURCE_DIR}/bazel-bin/platform/darwin/src" + ${MLN_GENERATED_DARWIN_CODE_DIR} + COMMENT "Generating Darwin style source and header files" + VERBATIM +) + +add_custom_target(mbgl-darwin-style-code + DEPENDS ${MLN_GENERATED_DARWIN_STYLE_SOURCE} ${MLN_GENERATED_DARWIN_STYLE_HEADERS} +) + +add_library( + custom-layer-examples + EXCLUDE_FROM_ALL + "${CMAKE_CURRENT_LIST_DIR}/app/ExampleCustomDrawableStyleLayer.mm" + "${CMAKE_CURRENT_LIST_DIR}/app/CustomStyleLayerExample.m" +) + +target_link_libraries( + custom-layer-examples + PUBLIC ios-sdk-static + PRIVATE mbgl-compiler-options mbgl-core +) + +if(MLN_WITH_METAL) + target_compile_definitions( + custom-layer-examples + PRIVATE MLN_RENDER_BACKEND_METAL=1 + ) +endif() + +target_include_directories( + custom-layer-examples + PUBLIC + "${CMAKE_CURRENT_LIST_DIR}/app" + PRIVATE + "${PROJECT_SOURCE_DIR}/src" # FIXME: should not use private headers +) diff --git a/platform/darwin/loop-files.json b/platform/darwin/loop-files.json deleted file mode 100644 index 9f99f3976..000000000 --- a/platform/darwin/loop-files.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "//": "This file can be edited manually and is the canonical source.", - "sources": [ - "platform/darwin/src/async_task.cpp", - "platform/darwin/src/run_loop.cpp", - "platform/darwin/src/timer.cpp" - ], - "public_headers": {}, - "private_headers": {} -} diff --git a/platform/darwin/src/NSBundle+MLNAdditions.mm b/platform/darwin/src/NSBundle+MLNAdditions.mm index d8c71c325..67887d0be 100644 --- a/platform/darwin/src/NSBundle+MLNAdditions.mm +++ b/platform/darwin/src/NSBundle+MLNAdditions.mm @@ -18,7 +18,7 @@ const MLNExceptionName MLNBundleNotFoundException = @"MLNBundleNotFoundException bundle = [self bundleWithPath:bundlePath]; } else { [NSException raise:MLNBundleNotFoundException - format:@"The MapLibre framework bundle could not be found. If using the MapLibre Native for iOS as a static framework, make sure that MapLibre bundle is copied into the root of the app bundle."]; + format:@"The MapLibre framework bundle could not be found. If using MapLibre iOS as a static framework, make sure that MapLibre bundle is copied into the root of the app bundle."]; } } #endif diff --git a/platform/default/src/mbgl/storage/pmtiles_file_source.cpp b/platform/default/src/mbgl/storage/pmtiles_file_source.cpp index 7cd00be03..e5811375d 100644 --- a/platform/default/src/mbgl/storage/pmtiles_file_source.cpp +++ b/platform/default/src/mbgl/storage/pmtiles_file_source.cpp @@ -119,7 +119,7 @@ public: req, tileID, header.root_dir_offset, - header.root_dir_bytes, + static_cast(header.root_dir_bytes), 0, [=, this](std::pair tileAddress, std::unique_ptr tileError) { if (tileError) { diff --git a/platform/ios/BUILD.bazel b/platform/ios/BUILD.bazel index c7ce3e9b9..a87208953 100644 --- a/platform/ios/BUILD.bazel +++ b/platform/ios/BUILD.bazel @@ -18,7 +18,7 @@ load( "MLN_IOS_PUBLIC_OBJCPP_SOURCE", "MLN_IOS_PUBLIC_OBJC_SOURCE", "MLN_IOS_SDK_HEADERS", - "MLN_PUBLIC_IOS_APP_SOPURCE", + "MLN_PUBLIC_IOS_APP_SOURCE", ) load("//platform/ios/bazel:macros.bzl", "info_plist") load("//platform/ios/bazel:provisioning.bzl", "configure_device_profiles") @@ -60,7 +60,7 @@ filegroup( filegroup( name = "ios_app_srcs", - srcs = MLN_PUBLIC_IOS_APP_SOPURCE, + srcs = MLN_PUBLIC_IOS_APP_SOURCE, visibility = ["//visibility:public"], ) @@ -350,7 +350,7 @@ exports_files( MLN_IOS_PUBLIC_OBJCPP_METAL_SOURCE + MLN_IOS_PUBLIC_OBJCPP_OPENGL_SOURCE + MLN_IOS_PUBLIC_OBJC_SOURCE + - MLN_PUBLIC_IOS_APP_SOPURCE, + MLN_PUBLIC_IOS_APP_SOURCE, ) js_library( diff --git a/platform/ios/app/CMakeLists.txt b/platform/ios/app/CMakeLists.txt new file mode 100644 index 000000000..38bb9f98e --- /dev/null +++ b/platform/ios/app/CMakeLists.txt @@ -0,0 +1,62 @@ +cmake_minimum_required(VERSION 3.20) +project(app LANGUAGES C CXX OBJC OBJCXX) + +set(CMAKE_OSX_ARCHITECTURES "arm64") +set(CMAKE_OSX_DEPLOYMENT_TARGET "14.0") + +file(GLOB APP_SOURCES CONFIGURE_DEPENDS + "*.m" "*.mm" +) + +set(APP_RESOURCES + Assets.xcassets + Base.lproj + LaunchScreen.storyboard + Main.storyboard + Settings.bundle +) + +add_executable(app + ${APP_SOURCES} + ${APP_RESOURCES} +) + +target_include_directories( + app PRIVATE + "${PROJECT_SOURCE_DIR}" +) + +set_target_properties(app PROPERTIES + MACOSX_BUNDLE YES + MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_LIST_DIR}/Info.plist" + XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "org.maplibre.app" + XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "YES" + XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "${DEVELOPMENT_TEAM_ID}" + XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer" + XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC "YES" +) + +add_custom_command(TARGET app POST_BUILD + COMMAND plutil -insert CFBundleShortVersionString -string "1.0.0" "$/Info.plist" + COMMENT "Injecting CFBundleShortVersionString..." +) + +add_custom_command(TARGET app POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + "$/Mapbox.bundle" + "$/Mapbox.bundle" + COMMAND ls "$" +) + +target_link_libraries( + app + custom-layer-examples # ios-sdk-static transitive dependency +) + +foreach(resource_file ${APP_RESOURCES}) + set_source_files_properties( + ${resource_file} + PROPERTIES + MACOSX_PACKAGE_LOCATION "Resources" + ) +endforeach() diff --git a/platform/ios/app/MBXViewController.mm b/platform/ios/app/MBXViewController.mm index 46a446ef0..0adaddeb6 100644 --- a/platform/ios/app/MBXViewController.mm +++ b/platform/ios/app/MBXViewController.mm @@ -13,7 +13,7 @@ #import "MBXState.h" #import "MLNSettings.h" -#import "platform/ios/src/MLNMapView_Private.h" +#import "MLNMapView_Private.h" #import "CustomStyleLayerExample.h" diff --git a/platform/ios/bazel/files.bzl b/platform/ios/bazel/files.bzl index 28c055cac..4667a1da8 100644 --- a/platform/ios/bazel/files.bzl +++ b/platform/ios/bazel/files.bzl @@ -78,7 +78,7 @@ MLN_IOS_PUBLIC_OBJCPP_METAL_SOURCE = [ "src/MLNMapView+Metal.mm", ] -MLN_PUBLIC_IOS_APP_SOPURCE = [ +MLN_PUBLIC_IOS_APP_SOURCE = [ "app/MBXAnnotationView.m", "app/MBXAppDelegate.m", "app/MBXCustomCalloutView.h", diff --git a/platform/ios/core-files.json b/platform/ios/core-files.json deleted file mode 100644 index 91ca4395b..000000000 --- a/platform/ios/core-files.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "//": "This file can be edited manually and is the canonical source.", - "sources": [ - "platform/darwin/src/collator.mm", - "platform/darwin/src/gl_functions.cpp", - "platform/darwin/src/headless_backend_eagl.mm", - "platform/darwin/src/image.mm", - "platform/darwin/src/local_glyph_rasterizer.mm", - "platform/darwin/src/logging_nslog.mm", - "platform/darwin/src/number_format.mm", - "platform/darwin/src/nsthread.mm", - "platform/darwin/src/reachability.m", - "platform/darwin/src/string_nsstring.mm", - "platform/default/src/mbgl/gfx/headless_backend.cpp", - "platform/default/src/mbgl/gfx/headless_frontend.cpp", - "platform/default/src/mbgl/gl/headless_backend.cpp", - "platform/default/src/mbgl/map/map_snapshotter.cpp", - "platform/default/src/mbgl/text/bidi.cpp", - "platform/default/src/mbgl/util/compression.cpp", - "platform/default/src/mbgl/util/png_writer.cpp", - "platform/default/src/mbgl/util/thread_local.cpp", - "platform/default/src/mbgl/util/utf.cpp" - ], - "public_headers": { - "mbgl/storage/reachability.h": "platform/darwin/include/mbgl/storage/reachability.h", - "mbgl/util/image+MLNAdditions.hpp": "platform/darwin/include/mbgl/util/image+MLNAdditions.hpp", - "mbgl/gfx/headless_backend.hpp": "platform/default/include/mbgl/gfx/headless_backend.hpp", - "mbgl/gfx/headless_frontend.hpp": "platform/default/include/mbgl/gfx/headless_frontend.hpp", - "mbgl/gl/headless_backend.hpp": "platform/default/include/mbgl/gl/headless_backend.hpp", - "mbgl/map/map_snapshotter.hpp": "platform/default/include/mbgl/map/map_snapshotter.hpp" - }, - "private_headers": { - "CFHandle.hpp": "platform/darwin/src/CFHandle.hpp" - } -} diff --git a/platform/ios/ios.cmake b/platform/ios/ios.cmake new file mode 100644 index 000000000..0be447426 --- /dev/null +++ b/platform/ios/ios.cmake @@ -0,0 +1,128 @@ +target_include_directories( + mbgl-core + PRIVATE + ${PROJECT_SOURCE_DIR}/platform/ios/src +) + +file(GLOB_RECURSE IOS_SDK_SOURCE_FILES + "${PROJECT_SOURCE_DIR}/platform/darwin/src/*.m" + "${PROJECT_SOURCE_DIR}/platform/darwin/src/*.mm" + "${CMAKE_CURRENT_LIST_DIR}/src/*.m" + "${CMAKE_CURRENT_LIST_DIR}/src/*.mm" +) + +file(GLOB_RECURSE IOS_SDK_RESOURCE_FILES + "${CMAKE_CURRENT_LIST_DIR}/resources/*" +) + + +if(NOT MLN_WITH_OPENGL) + list(FILTER IOS_SDK_SOURCE_FILES EXCLUDE REGEX ".*(OpenGL|gl).*") +elseif(NOT MLN_WITH_METAL) + list(FILTER IOS_SDK_SOURCE_FILES EXCLUDE REGEX ".*Metal.*") +endif() + +set(FRAMEWORK_BUNDLE_DIR ${CMAKE_CURRENT_BINARY_DIR}/Mapbox.bundle) + +find_program(ACTOOL_EXECUTABLE actool + HINTS + /Applications/Xcode.app/Contents/Developer/usr/bin + DOC "Xcode Asset Catalog Compiler (actool)" +) +if(NOT ACTOOL_EXECUTABLE) + message(FATAL_ERROR "Could not find actool. Ensure Xcode is installed.") +endif() + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/Mapbox.bundle/Assets.car + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/Mapbox.bundle + COMMAND ${ACTOOL_EXECUTABLE} + --compile ${FRAMEWORK_BUNDLE_DIR} + --platform iphoneos + --minimum-deployment-target 12.0 + ${CMAKE_CURRENT_LIST_DIR}/resources/Images.xcassets + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_LIST_DIR}/framework/Info-static.plist + ${CMAKE_CURRENT_BINARY_DIR}/Mapbox.bundle/Info.plist + DEPENDS ${CMAKE_CURRENT_LIST_DIR}/resources/Images.xcassets + COMMENT "Compiling Images.xcassets into Mapbox.bundle/Assets.car" +) + +list(APPEND IOS_SDK_RESOURCE_FILES ${FRAMEWORK_BUNDLE_DIR}) + +add_custom_target(create-framework-bundle + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Mapbox.bundle/Assets.car +) + +add_library( + ios-sdk-static + STATIC ${IOS_SDK_SOURCE_FILES} ${MLN_GENERATED_DARWIN_STYLE_SOURCE} + ${IOS_SDK_RESOURCE_FILES} +) + +set_source_files_properties( + ${FRAMEWORK_BUNDLE_DIR} + PROPERTIES + MACOSX_PACKAGE_LOCATION "Resources" + GENERATED TRUE +) + +add_dependencies(ios-sdk-static create-framework-bundle) + +set_target_properties(ios-sdk-static PROPERTIES + FRAMEWORK TRUE + # This makes the .framework contain a static library instead of a dynamic one: + XCODE_ATTRIBUTE_MACH_O_TYPE "staticlib" + + # Provide a unique bundle identifier + MACOSX_FRAMEWORK_IDENTIFIER "org.maplibre.ios" + + # FIXME: versioning + MACOSX_FRAMEWORK_BUNDLE_VERSION "1.0" + MACOSX_FRAMEWORK_SHORT_VERSION_STRING "1.0" +) + +if(MLN_WITH_METAL) + message(STATUS "Configuring Metal renderer backend") + target_compile_definitions( + ios-sdk-static + PRIVATE MLN_RENDER_BACKEND_METAL=1 + ) +endif() + +target_include_directories( + ios-sdk-static + PUBLIC ${MLN_GENERATED_DARWIN_CODE_DIR} ${CMAKE_CURRENT_LIST_DIR}/src ${PROJECT_SOURCE_DIR}/platform/darwin/src + PRIVATE ${PROJECT_SOURCE_DIR}/src +) + +include("${CMAKE_CURRENT_LIST_DIR}/vendor/calloutview.cmake") + +target_link_libraries( + ios-sdk-static + PUBLIC mbgl-core + PRIVATE mbgl-compiler-options mbgl-vendor-calloutview mbgl-vendor-metal-cpp mbgl-vendor-polylabel + "-framework CoreText" + "-framework CoreImage" + "-framework CoreGraphics" + "-framework QuartzCore" + "-framework UIKit" + "-framework MetalKit" + "-framework ImageIO" +) + +target_link_options(ios-sdk-static INTERFACE -ObjC) + +add_dependencies(ios-sdk-static mbgl-darwin-style-code) + +add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/app") + +set(DEVELOPMENT_TEAM_ID "" CACHE STRING "Apple Development Team ID") + +if(NOT DEVELOPMENT_TEAM_ID) + message(STATUS "No Apple Developer Team ID set (-DDEVELOPMENT_TEAM_ID=YOUR_TEAM_ID). Configuring build without signing.") + set(CMAKE_OSX_SYSROOT iphonesimulator) + set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO") + set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") + set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "") +endif() diff --git a/platform/ios/scripts/generate-file-lists.js b/platform/ios/scripts/generate-file-lists.js deleted file mode 100755 index afd41952e..000000000 --- a/platform/ios/scripts/generate-file-lists.js +++ /dev/null @@ -1,157 +0,0 @@ -#!/usr/bin/env node - -const child_process = require('child_process'); -const fs = require('fs'); -const path = require('path'); -const xcode = require('xcode'); - -require('../../../scripts/style-code'); - -const classifier = /^(?:(?:(?:platform|vendor)\/(?:(?!include|src).)*\/|(?:test|benchmark)\/)?(?:(include|src)\/)?)?(.+\.h(?:pp|xx)?)$/; - -function generateFileList(filename, roots, regex, patterns) { - writeFileList( - filename, - [].concat.apply([], roots.map(function(root) { - return child_process - .execSync(`git -C ${root} ls-files ${patterns.map((p) => '"' + p + '"').join(' ')}`) - .toString() - .trim() - .split('\n') - .map(file => path.join(root, file)) - }))) -} - -function writeFileList(filename, files) { - const json = { - "//": "This file is generated. Do not edit. Regenerate it with scripts/generate-file-lists.js", - sources: [], - public_headers: {}, - private_headers: {} - }; - files.sort(); - for (const file of files) { - const match = file.match(classifier); - if (!match) { - json.sources.push(file); - } else if (match[1] === 'src') { - json.private_headers[match[2]] = file; - } else { - if (match[1] !== 'include') { - console.warn(`* ${file} is not in include or src directory. Treating as public header.`); - } - json.public_headers[match[2]] = file; - } - } - writeIfModified(filename, JSON.stringify(json, null, 4) + '\n'); -} - -function generateXcodeSourceList(project, target, name) { - const projectPath = path.dirname(project); - let objects = xcode.project(path.join(project, 'project.pbxproj')).parseSync().hash.project.objects; - - // Build reverse lookup table for file => group - let objToGroup = {}; - Object.keys(objects.PBXGroup) - .filter(name => !/_comment$/.test(name)) - .forEach(name => objects.PBXGroup[name].children - .forEach(child => objToGroup[child.value] = name)); - - // Retrieve the target - const targetObj = Object.keys(objects.PBXNativeTarget) - .filter(name => !/_comment$/.test(name)) - .map(name => objects.PBXNativeTarget[name]) - .filter(project => project.name == target)[0]; - - // Retrieve the sources associated with the target. - const sourcesObjs = targetObj.buildPhases - .map(phase => objects.PBXSourcesBuildPhase[phase.value] || objects.PBXHeadersBuildPhase[phase.value]) - .filter(phase => phase); - - const json = { - "//": "This file is generated. Do not edit. Regenerate it with scripts/generate-file-lists.js", - sources: [], - public_headers: {}, - private_headers: {} - }; - - sourcesObjs - .forEach(sourcesObj => sourcesObj.files - .map(file => objects.PBXBuildFile[file.value]) - .forEach(buildFile => { - // const isPublic = buildFile.settings && buildFile.settings.ATTRIBUTES && buildFile.settings.ATTRIBUTES.indexOf('Public') >= 0 || false; - const fileRef = buildFile.fileRef; - // Look up the full path, and fully qualified group name for every source reference - let fileObj = objects.PBXFileReference[fileRef]; - - // Ascend the group tree to find the full path. - let fullPath = [ fileObj.path.replace(/^"(.+)"$/, '$1') ]; - for (let ref = fileRef, obj = fileObj; obj.sourceTree != 'SOURCE_ROOT' && ref in objToGroup;) { - ref = objToGroup[ref]; - obj = objects.PBXGroup[ref]; - if (obj.path) { - fullPath.unshift(obj.path.replace(/^"(.+)"$/, '$1')); - } - } - fullPath.unshift(projectPath); - - const fullPathName = path.join.apply(path, fullPath); - - if (sourcesObj.isa === 'PBXHeadersBuildPhase') { - const isPublic = buildFile.settings && buildFile.settings.ATTRIBUTES && buildFile.settings.ATTRIBUTES.indexOf('Public') >= 0 || false; - json[isPublic ? 'public_headers' : 'private_headers'][path.basename(fullPathName)] = fullPathName; - } else { - json.sources.push(fullPathName); - } - }) - ); - - json.public_headers['Mapbox/Mapbox.h'] = json.public_headers['Mapbox.h']; - delete json.public_headers['Mapbox.h']; - - writeIfModified(`${projectPath}/${name || target}-files.json`, JSON.stringify(json, null, 4) + '\n'); -} - -generateFileList('src/core-files.json', [ '.' ], /^(?:src|include)\/(?:mbgl\/)?(.+)\/[^\/]+$/, - [ 'include/*.hpp', 'include/*.h', 'src/*.hpp', 'src/*.cpp', 'src/*.h', 'src/*.c' ]); - -generateFileList('benchmark/benchmark-files.json', [ '.' ], /^benchmark\/(?:(?:src|include)\/)?(?:mbgl\/)?(?:(.+)\/)?[^\/]+$/, - [ 'benchmark/*.hpp', 'benchmark/*.cpp', 'benchmark/*.host', 'benchmark/*.c' ]); - -generateFileList('test/test-files.json', [ '.' ], /^test\/(?:(?:src|include)\/)?(?:mbgl\/)?(?:(.+)\/)?[^\/]+$/, - [ 'test/*.hpp', 'test/*.cpp', 'test/*.h', 'test/*.c' ]); - -generateXcodeSourceList('platform/macos/macos.xcodeproj', 'dynamic', 'sdk'); - -generateXcodeSourceList('platform/ios/ios.xcodeproj', 'dynamic', 'sdk'); - -const vendorRegex = /^(?:(?:src|include)\/)?(?:(.+)\/)?[^\/]+$/ -generateFileList('vendor/boost-files.json', [ 'vendor/boost' ], vendorRegex, [ "include/**/*.hpp", "include/**/*.h" ]); -generateFileList('vendor/cheap-ruler-cpp-files.json', [ 'vendor/cheap-ruler-cpp' ], vendorRegex, [ "include/**/*.hpp" ]); -generateFileList('vendor/earcut.hpp-files.json', [ 'vendor/earcut.hpp' ], vendorRegex, [ "include/**/*.hpp" ]); -generateFileList('vendor/eternal-files.json', [ 'vendor/eternal' ], vendorRegex, [ "include/**/*.hpp" ]); -generateFileList('vendor/expected-files.json', [ 'vendor/expected' ], vendorRegex, [ "include/expected.hpp" ]); -generateFileList('vendor/geojson-vt-cpp-files.json', [ 'vendor/geojson-vt-cpp' ], vendorRegex, [ "include/**/*.hpp" ]); -generateFileList('vendor/icu-files.json', [ 'vendor/icu' ], vendorRegex, [ "include/**/*.h", "src/*.h", "src/*.cpp" ]); -generateFileList('vendor/mapbox-base-files.json', - [ 'vendor/mapbox-base/extras/kdbush.hpp', - 'vendor/mapbox-base/extras/filesystem', - 'vendor/mapbox-base/extras/rapidjson', - 'vendor/mapbox-base/mapbox/pixelmatch-cpp', - 'vendor/mapbox-base/mapbox/geometry.hpp', - 'vendor/mapbox-base/mapbox/variant', - 'vendor/mapbox-base/mapbox/optional', - 'vendor/mapbox-base/mapbox/supercluster.hpp', - 'vendor/mapbox-base/mapbox/geojson.hpp', - 'vendor/mapbox-base/mapbox/jni.hpp', - 'vendor/mapbox-base/mapbox/weak', - 'vendor/mapbox-base/mapbox/typewrapper', - 'vendor/mapbox-base/mapbox/value'], - vendorRegex, [ "include/*.hpp", "include/**/*.hpp", "include/**/*.h", ":!:include/jni/string_conversion.hpp" ]); -generateFileList('vendor/polylabel-files.json', [ 'vendor/polylabel' ], vendorRegex, [ "include/**/*.hpp" ]); -generateFileList('vendor/protozero-files.json', [ 'vendor/protozero' ], vendorRegex, [ "include/**/*.hpp" ]); -generateFileList('vendor/shelf-pack-cpp-files.json', [ 'vendor/shelf-pack-cpp' ], vendorRegex, [ "include/**/*.hpp" ]); -generateFileList('vendor/sqlite-files.json', [ 'vendor/sqlite' ], vendorRegex, [ "include/*.h", "src/*.c" ]); -generateFileList('vendor/unique_resource-files.json', [ 'vendor/unique_resource' ], vendorRegex, [ "unique_resource.hpp" ]); -generateFileList('vendor/vector-tile-files.json', [ 'vendor/vector-tile' ], vendorRegex, [ "include/**/*.hpp" ]); -generateFileList('vendor/wagyu-files.json', [ 'vendor/wagyu' ], vendorRegex, [ "include/**/*.hpp" ]); diff --git a/platform/ios/sdk-files.json b/platform/ios/sdk-files.json deleted file mode 100644 index 57464ddd8..000000000 --- a/platform/ios/sdk-files.json +++ /dev/null @@ -1,315 +0,0 @@ -{ - "//": "This file is generated. Do not edit. Regenerate it with scripts/generate-file-lists.js", - "sources": [ - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEDate.m", - "platform/darwin/src/MLNBackgroundStyleLayer.mm", - "platform/darwin/src/NSComparisonPredicate+MLNAdditions.mm", - "platform/darwin/src/NSURL+MLNAdditions.m", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEvent.m", - "platform/ios/src/MLNUserLocationAnnotationView.m", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEventsConfiguration.m", - "platform/ios/src/MLNFaux3DUserLocationAnnotationView.m", - "platform/darwin/src/MLNFeature.mm", - "platform/ios/src/UIImage+MLNAdditions.mm", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEMetricsManager.m", - "platform/ios/src/MLNMapView+Impl.mm", - "platform/ios/src/MLNAnnotationContainerView.m", - "platform/ios/src/MLNCompactCalloutView.m", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEDependencyManager.m", - "platform/darwin/src/MLNPointAnnotation.mm", - "platform/ios/src/MLNMapView+OpenGL.mm", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEConstants.m", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEPinningConfigurationProvider.m", - "platform/ios/src/MLNAnnotationView.mm", - "platform/darwin/src/MLNCircleStyleLayer.mm", - "platform/ios/src/UIViewController+MLNAdditions.m", - "platform/darwin/src/NSValue+MLNStyleAttributeAdditions.mm", - "platform/darwin/src/MLNVectorStyleLayer.mm", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEUniqueIdentifier.m", - "platform/darwin/src/MLNShapeSource.mm", - "platform/ios/src/UIDevice+MLNAdditions.m", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMECertPin.m", - "platform/darwin/src/NSArray+MLNAdditions.mm", - "platform/ios/src/UIView+MLNAdditions.m", - "platform/ios/src/NSOrthography+MLNAdditions.m", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEDispatchManager.m", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMETimerManager.m", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/CLLocation+MMEMobileEvents.m", - "platform/darwin/src/MLNRasterStyleLayer.mm", - "platform/darwin/src/MLNForegroundStyleLayer.mm", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEventLogReportViewController.m", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEConfigurator.m", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/NSData+MMEGZIP.m", - "platform/darwin/src/MLNAttributionInfo.mm", - "platform/darwin/src/NSBundle+MLNAdditions.mm", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEUINavigation.m", - "platform/ios/src/MLNUserLocationHeadingArrowLayer.m", - "platform/ios/src/MLNUserLocation.m", - "platform/darwin/src/MLNMapSnapshotter.mm", - "platform/darwin/src/MLNVectorTileSource.mm", - "platform/darwin/src/MLNRasterTileSource.mm", - "platform/ios/vendor/SMCalloutView/SMCalloutView.m", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/MMECategoryLoader.m", - "platform/darwin/src/MLNSource.mm", - "platform/darwin/src/MLNLight.mm", - "platform/darwin/src/MLNClockDirectionFormatter.m", - "platform/darwin/src/MLNShapeCollection.mm", - "platform/darwin/src/MLNHillshadeStyleLayer.mm", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/UIKit+MMEMobileEvents.m", - "platform/darwin/src/MLNSymbolStyleLayer.mm", - "platform/darwin/src/MLNLoggingConfiguration.mm", - "platform/darwin/src/MLNStyleValue.mm", - "platform/darwin/src/MLNOfflinePack.mm", - "platform/darwin/src/MLNComputedShapeSource.mm", - "platform/darwin/src/MLNDistanceFormatter.m", - "platform/ios/src/MLNMapboxEvents.m", - "platform/darwin/src/MLNSDKMetricsManager.m", - "platform/ios/src/MLNCompassButton.mm", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEAPIClient.m", - "platform/ios/src/MLNMapView.mm", - "platform/ios/src/MLNAnnotationImage.m", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMELocationManager.m", - "platform/darwin/src/MLNShape.mm", - "platform/darwin/src/MLNCompassDirectionFormatter.m", - "platform/darwin/src/MLNNetworkConfiguration.mm", - "platform/darwin/src/MLNStyleLayer.mm", - "platform/darwin/src/MLNStyleLayerManager.mm", - "platform/darwin/src/NSValue+MLNAdditions.m", - "platform/darwin/src/MLNImageSource.mm", - "platform/darwin/src/NSString+MLNAdditions.m", - "platform/darwin/src/NSDictionary+MLNAdditions.mm", - "platform/darwin/src/MLNCoordinateFormatter.m", - "platform/darwin/src/MLNShapeOfflineRegion.mm", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEMetrics.m", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEUIApplicationWrapper.m", - "platform/darwin/src/MLNStyle.mm", - "platform/darwin/src/NSCoder+MLNAdditions.mm", - "platform/darwin/src/MLNAttributedExpression.m", - "platform/darwin/src/MLNGeometry.mm", - "platform/darwin/src/MLNFoundation.mm", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMECommonEventData.m", - "platform/darwin/src/NSExpression+MLNAdditions.mm", - "platform/darwin/src/MLNMultiPoint.mm", - "platform/darwin/src/MLNTypes.m", - "platform/darwin/src/MLNFillExtrusionStyleLayer.mm", - "platform/darwin/src/MLNTileSource.mm", - "platform/ios/src/MLNScaleBar.mm", - "platform/darwin/src/MLNMapCamera.mm", - "platform/darwin/src/MLNRasterDEMSource.mm", - "platform/darwin/src/MLNPolygon.mm", - "platform/darwin/src/NSPredicate+MLNAdditions.mm", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/Reachability/MMEReachability.m", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMENSURLSessionWrapper.m", - "platform/ios/src/MLNUserLocationHeadingBeamLayer.m", - "platform/darwin/src/MLNHeatmapStyleLayer.mm", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEventLogger.m", - "platform/darwin/src/NSDate+MLNAdditions.mm", - "platform/darwin/src/MLNLocationManager.m", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/CLLocationManager+MMEMobileEvents.m", - "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEventsManager.m", - "platform/darwin/src/MLNFillStyleLayer.mm", - "platform/darwin/src/MLNOfflineStorage.mm", - "platform/darwin/src/MLNTilePyramidOfflineRegion.mm", - "platform/darwin/src/MLNPointCollection.mm", - "platform/darwin/src/MLNLineStyleLayer.mm", - "platform/ios/src/MLNMapAccessibilityElement.mm", - "platform/darwin/src/MLNCustomStyleLayer.mm", - "platform/darwin/src/MLNSettings.mm", - "platform/darwin/src/NSCompoundPredicate+MLNAdditions.mm", - "platform/ios/src/MLNTelemetryConfig.m", - "platform/darwin/src/MLNPolyline.mm", - "platform/ios/src/UIColor+MLNAdditions.mm", - "platform/darwin/src/MLNRendererConfiguration.mm" - ], - "public_headers": { - "MLNFoundation.h": "platform/darwin/src/MLNFoundation.h", - "MLNShapeOfflineRegion.h": "platform/darwin/src/MLNShapeOfflineRegion.h", - "MLNFillStyleLayer.h": "platform/darwin/src/MLNFillStyleLayer.h", - "MLNAnnotationImage.h": "platform/ios/src/MLNAnnotationImage.h", - "MLNHillshadeStyleLayer.h": "platform/darwin/src/MLNHillshadeStyleLayer.h", - "MLNCluster.h": "platform/darwin/src/MLNCluster.h", - "MLNClockDirectionFormatter.h": "platform/darwin/src/MLNClockDirectionFormatter.h", - "MLNSymbolStyleLayer.h": "platform/darwin/src/MLNSymbolStyleLayer.h", - "MLNAttributionInfo.h": "platform/darwin/src/MLNAttributionInfo.h", - "MLNPolyline.h": "platform/darwin/src/MLNPolyline.h", - "MLNStyleLayer.h": "platform/darwin/src/MLNStyleLayer.h", - "MLNCameraChangeReason.h": "platform/ios/src/MLNCameraChangeReason.h", - "MLNCalloutView.h": "platform/ios/src/MLNCalloutView.h", - "NSExpression+MLNAdditions.h": "platform/darwin/src/NSExpression+MLNAdditions.h", - "MLNShape.h": "platform/darwin/src/MLNShape.h", - "MLNBackgroundStyleLayer.h": "platform/darwin/src/MLNBackgroundStyleLayer.h", - "MLNStyle.h": "platform/darwin/src/MLNStyle.h", - "MLNUserLocationAnnotationView.h": "platform/ios/src/MLNUserLocationAnnotationView.h", - "MLNAnnotation.h": "platform/darwin/src/MLNAnnotation.h", - "MLNCompassButton.h": "platform/ios/src/MLNCompassButton.h", - "MLNLight.h": "platform/darwin/src/MLNLight.h", - "MLNPointCollection.h": "platform/darwin/src/MLNPointCollection.h", - "MLNAnnotationView.h": "platform/ios/src/MLNAnnotationView.h", - "MLNFillExtrusionStyleLayer.h": "platform/darwin/src/MLNFillExtrusionStyleLayer.h", - "MLNRasterStyleLayer.h": "platform/darwin/src/MLNRasterStyleLayer.h", - "MLNSettings.h": "platform/darwin/src/MLNSettings.h", - "NSValue+MLNAdditions.h": "platform/darwin/src/NSValue+MLNAdditions.h", - "MLNVectorStyleLayer.h": "platform/darwin/src/MLNVectorStyleLayer.h", - "MLNNetworkConfiguration.h": "platform/darwin/src/MLNNetworkConfiguration.h", - "MLNComputedShapeSource.h": "platform/darwin/src/MLNComputedShapeSource.h", - "MLNSDKMetricsManager.h": "platform/darwin/src/MLNSDKMetricsManager.h", - "MLNLoggingConfiguration.h": "platform/darwin/src/MLNLoggingConfiguration.h", - "MLNLocationManager.h": "platform/darwin/src/MLNLocationManager.h", - "MLNRasterDEMSource.h": "platform/darwin/src/MLNRasterDEMSource.h", - "MLNLineStyleLayer.h": "platform/darwin/src/MLNLineStyleLayer.h", - "MLNImageSource.h": "platform/darwin/src/MLNImageSource.h", - "MLNOfflinePack.h": "platform/darwin/src/MLNOfflinePack.h", - "MLNUserLocation.h": "platform/ios/src/MLNUserLocation.h", - "MLNMapView+IBAdditions.h": "platform/ios/src/MLNMapView+IBAdditions.h", - "MLNShapeCollection.h": "platform/darwin/src/MLNShapeCollection.h", - "MLNShapeSource.h": "platform/darwin/src/MLNShapeSource.h", - "NSPredicate+MLNAdditions.h": "platform/darwin/src/NSPredicate+MLNAdditions.h", - "MLNMapSnapshotter.h": "platform/darwin/src/MLNMapSnapshotter.h", - "MLNCoordinateFormatter.h": "platform/darwin/src/MLNCoordinateFormatter.h", - "MLNStyleValue.h": "platform/darwin/src/MLNStyleValue.h", - "MLNOverlay.h": "platform/darwin/src/MLNOverlay.h", - "MLNCompassDirectionFormatter.h": "platform/darwin/src/MLNCompassDirectionFormatter.h", - "MLNTypes.h": "platform/darwin/src/MLNTypes.h", - "MLNGeometry.h": "platform/darwin/src/MLNGeometry.h", - "MLNSource.h": "platform/darwin/src/MLNSource.h", - "MLNRasterTileSource.h": "platform/darwin/src/MLNRasterTileSource.h", - "MLNPolygon.h": "platform/darwin/src/MLNPolygon.h", - "MLNPointAnnotation.h": "platform/darwin/src/MLNPointAnnotation.h", - "MLNHeatmapStyleLayer.h": "platform/darwin/src/MLNHeatmapStyleLayer.h", - "MLNCircleStyleLayer.h": "platform/darwin/src/MLNCircleStyleLayer.h", - "MLNMultiPoint.h": "platform/darwin/src/MLNMultiPoint.h", - "MLNAttributedExpression.h": "platform/darwin/src/MLNAttributedExpression.h", - "MLNFeature.h": "platform/darwin/src/MLNFeature.h", - "MLNMapCamera.h": "platform/darwin/src/MLNMapCamera.h", - "MLNForegroundStyleLayer.h": "platform/darwin/src/MLNForegroundStyleLayer.h", - "MLNOfflineRegion.h": "platform/darwin/src/MLNOfflineRegion.h", - "MLNTileOperation.h": "platform/darwin/src/MLNTileOperation.h", - "MLNMapViewDelegate.h": "platform/ios/src/MLNMapViewDelegate.h", - "MLNDistanceFormatter.h": "platform/darwin/src/MLNDistanceFormatter.h", - "MLNCustomStyleLayer.h": "platform/darwin/src/MLNCustomStyleLayer.h", - "MLNTileSource.h": "platform/darwin/src/MLNTileSource.h", - "MLNTilePyramidOfflineRegion.h": "platform/darwin/src/MLNTilePyramidOfflineRegion.h", - "MLNVectorTileSource.h": "platform/darwin/src/MLNVectorTileSource.h", - "MLNOfflineStorage.h": "platform/darwin/src/MLNOfflineStorage.h", - "MLNScaleBar.h": "platform/ios/src/MLNScaleBar.h", - "MLNMapView.h": "platform/ios/src/MLNMapView.h", - "Mapbox/Mapbox.h": "platform/ios/src/Mapbox.h" - }, - "private_headers": { - "MLNFillStyleLayer_Private.h": "platform/darwin/src/MLNFillStyleLayer_Private.h", - "MLNOfflinePack_Private.h": "platform/darwin/src/MLNOfflinePack_Private.h", - "MLNCompassButton_Private.h": "platform/ios/src/MLNCompassButton_Private.h", - "MLNSource_Private.h": "platform/darwin/src/MLNSource_Private.h", - "MLNAnnotationView_Private.h": "platform/ios/src/MLNAnnotationView_Private.h", - "MLNValueEvaluator.h": "platform/darwin/src/MLNValueEvaluator.h", - "NSBundle+MLNAdditions.h": "platform/darwin/src/NSBundle+MLNAdditions.h", - "MLNBackgroundStyleLayer_Private.h": "platform/darwin/src/MLNBackgroundStyleLayer_Private.h", - "MLNHillshadeStyleLayer_Private.h": "platform/darwin/src/MLNHillshadeStyleLayer_Private.h", - "NSCoder+MLNAdditions.h": "platform/darwin/src/NSCoder+MLNAdditions.h", - "MLNComputedShapeSource_Private.h": "platform/darwin/src/MLNComputedShapeSource_Private.h", - "MLNPolyline_Private.h": "platform/darwin/src/MLNPolyline_Private.h", - "MLNShapeSource_Private.h": "platform/darwin/src/MLNShapeSource_Private.h", - "NSData+MMEGZIP.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/NSData+MMEGZIP.h", - "NSValue+MLNStyleAttributeAdditions.h": "platform/darwin/src/NSValue+MLNStyleAttributeAdditions.h", - "MLNLineStyleLayer_Private.h": "platform/darwin/src/MLNLineStyleLayer_Private.h", - "MLNRasterStyleLayer_Private.h": "platform/darwin/src/MLNRasterStyleLayer_Private.h", - "MLNOfflineStorage_Private.h": "platform/darwin/src/MLNOfflineStorage_Private.h", - "MLNAnnotationContainerView_Private.h": "platform/ios/src/MLNAnnotationContainerView_Private.h", - "MLNStyle_Private.h": "platform/darwin/src/MLNStyle_Private.h", - "MMECategoryLoader.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/MMECategoryLoader.h", - "MLNHeatmapStyleLayer_Private.h": "platform/darwin/src/MLNHeatmapStyleLayer_Private.h", - "NSPredicate+MLNPrivateAdditions.h": "platform/darwin/src/NSPredicate+MLNPrivateAdditions.h", - "MLNSDKMetricsManager_Private.h": "platform/darwin/src/MLNSDKMetricsManager_Private.h", - "MLNNetworkConfiguration_Private.h": "platform/darwin/src/MLNNetworkConfiguration_Private.h", - "NSDate+MLNAdditions.h": "platform/darwin/src/NSDate+MLNAdditions.h", - "MLNCompactCalloutView.h": "platform/ios/src/MLNCompactCalloutView.h", - "MLNStyleLayerManager.h": "platform/darwin/src/MLNStyleLayerManager.h", - "MLNUserLocation_Private.h": "platform/ios/src/MLNUserLocation_Private.h", - "MLNUserLocationHeadingArrowLayer.h": "platform/ios/src/MLNUserLocationHeadingArrowLayer.h", - "MLNSettings_Private.h": "platform/darwin/src/MLNSettings_Private.h", - "UIViewController+MLNAdditions.h": "platform/ios/src/UIViewController+MLNAdditions.h", - "MLNVectorTileSource_Private.h": "platform/darwin/src/MLNVectorTileSource_Private.h", - "MLNCircleStyleLayer_Private.h": "platform/darwin/src/MLNCircleStyleLayer_Private.h", - "NSArray+MLNAdditions.h": "platform/darwin/src/NSArray+MLNAdditions.h", - "MLNShape_Private.h": "platform/darwin/src/MLNShape_Private.h", - "MLNPolygon_Private.h": "platform/darwin/src/MLNPolygon_Private.h", - "MLNStyleLayer_Private.h": "platform/darwin/src/MLNStyleLayer_Private.h", - "UIView+MLNAdditions.h": "platform/ios/src/UIView+MLNAdditions.h", - "MLNLocationManager_Private.h": "platform/darwin/src/MLNLocationManager_Private.h", - "MLNMapView+OpenGL.h": "platform/ios/src/MLNMapView+OpenGL.h", - "MLNLoggingConfiguration_Private.h": "platform/darwin/src/MLNLoggingConfiguration_Private.h", - "NSComparisonPredicate+MLNAdditions.h": "platform/darwin/src/NSComparisonPredicate+MLNAdditions.h", - "MLNMapAccessibilityElement.h": "platform/ios/src/MLNMapAccessibilityElement.h", - "MMEDate.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEDate.h", - "NSString+MLNAdditions.h": "platform/darwin/src/NSString+MLNAdditions.h", - "UIDevice+MLNAdditions.h": "platform/ios/src/UIDevice+MLNAdditions.h", - "MLNMapSnapshotter_Private.h": "platform/darwin/src/MLNMapSnapshotter_Private.h", - "MLNRendererFrontend.h": "platform/darwin/src/MLNRendererFrontend.h", - "MLNStyleValue_Private.h": "platform/darwin/src/MLNStyleValue_Private.h", - "MLNFillExtrusionStyleLayer_Private.h": "platform/darwin/src/MLNFillExtrusionStyleLayer_Private.h", - "NSException+MLNAdditions.h": "platform/darwin/src/NSException+MLNAdditions.h", - "MLNSymbolStyleLayer_Private.h": "platform/darwin/src/MLNSymbolStyleLayer_Private.h", - "MLNTilePyramidOfflineRegion_Private.h": "platform/darwin/src/MLNTilePyramidOfflineRegion_Private.h", - "MLNUserLocationHeadingIndicator.h": "platform/ios/src/MLNUserLocationHeadingIndicator.h", - "NSDictionary+MLNAdditions.h": "platform/darwin/src/NSDictionary+MLNAdditions.h", - "UIKit+MMEMobileEvents.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/UIKit+MMEMobileEvents.h", - "MLNFoundation_Private.h": "platform/darwin/src/MLNFoundation_Private.h", - "MLNUserLocationHeadingBeamLayer.h": "platform/ios/src/MLNUserLocationHeadingBeamLayer.h", - "MMECertPin.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMECertPin.h", - "MLNMapView_Private.h": "platform/ios/src/MLNMapView_Private.h", - "MLNMapboxEvents.h": "platform/ios/src/MLNMapboxEvents.h", - "NSURL+MLNAdditions.h": "platform/darwin/src/NSURL+MLNAdditions.h", - "MLNMultiPoint_Private.h": "platform/darwin/src/MLNMultiPoint_Private.h", - "UIColor+MLNAdditions.h": "platform/ios/src/UIColor+MLNAdditions.h", - "MLNAttributionInfo_Private.h": "platform/darwin/src/MLNAttributionInfo_Private.h", - "MBXSKUToken.h": "platform/ios/vendor/mapbox-accounts-ios/MBXSKUToken.h", - "SMCalloutView.h": "platform/ios/vendor/SMCalloutView/SMCalloutView.h", - "MLNOfflineRegion_Private.h": "platform/darwin/src/MLNOfflineRegion_Private.h", - "MMEPinningConfigurationProvider.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEPinningConfigurationProvider.h", - "MLNPointCollection_Private.h": "platform/darwin/src/MLNPointCollection_Private.h", - "UIImage+MLNAdditions.h": "platform/ios/src/UIImage+MLNAdditions.h", - "NSOrthography+MLNAdditions.h": "platform/ios/src/NSOrthography+MLNAdditions.h", - "MLNLight_Private.h": "platform/darwin/src/MLNLight_Private.h", - "MLNAnnotationContainerView.h": "platform/ios/src/MLNAnnotationContainerView.h", - "MLNAnnotationImage_Private.h": "platform/ios/src/MLNAnnotationImage_Private.h", - "MLNConversion.h": "platform/darwin/src/MLNConversion.h", - "MLNShapeOfflineRegion_Private.h": "platform/darwin/src/MLNShapeOfflineRegion_Private.h", - "MLNTelemetryConfig.h": "platform/ios/src/MLNTelemetryConfig.h", - "MLNGeometry_Private.h": "platform/darwin/src/MLNGeometry_Private.h", - "NSCompoundPredicate+MLNAdditions.h": "platform/darwin/src/NSCompoundPredicate+MLNAdditions.h", - "NSExpression+MLNPrivateAdditions.h": "platform/darwin/src/NSExpression+MLNPrivateAdditions.h", - "MLNCustomStyleLayer_Private.h": "platform/darwin/src/MLNCustomStyleLayer_Private.h", - "MLNTileSource_Private.h": "platform/darwin/src/MLNTileSource_Private.h", - "MLNFaux3DUserLocationAnnotationView.h": "platform/ios/src/MLNFaux3DUserLocationAnnotationView.h", - "MLNUserLocationAnnotationView_Private.h": "platform/ios/src/MLNUserLocationAnnotationView_Private.h", - "MLNRasterTileSource_Private.h": "platform/darwin/src/MLNRasterTileSource_Private.h", - "MLNFeature_Private.h": "platform/darwin/src/MLNFeature_Private.h", - "MLNRendererConfiguration.h": "platform/darwin/src/MLNRendererConfiguration.h", - "MMEReachability.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/Reachability/MMEReachability.h", - "MMENamespacedDependencies.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMENamespacedDependencies.h", - "MapboxMobileEvents.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MapboxMobileEvents.h", - "MMEAPIClient.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEAPIClient.h", - "MMECommonEventData.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMECommonEventData.h", - "MMEConstants.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEConstants.h", - "MMEDependencyManager.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEDependencyManager.h", - "MMEEvent.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEvent.h", - "CLLocation+MMEMobileEvents.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/CLLocation+MMEMobileEvents.h", - "MMEEventLogger.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEventLogger.h", - "MMEEventLogReportViewController.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEventLogReportViewController.h", - "MMEEventsConfiguration.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEventsConfiguration.h", - "MMEConfigurator.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEConfigurator.h", - "MMELocationManager.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMELocationManager.h", - "MMEMetrics.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEMetrics.h", - "MMEMetricsManager.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEMetricsManager.h", - "MMENSURLSessionWrapper.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMENSURLSessionWrapper.h", - "MLNMapView+Impl.h": "platform/ios/src/MLNMapView+Impl.h", - "MMETimerManager.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMETimerManager.h", - "MMETypes.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMETypes.h", - "CLLocationManager+MMEMobileEvents.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/Categories/CLLocationManager+MMEMobileEvents.h", - "MMEUIApplicationWrapper.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEUIApplicationWrapper.h", - "MMEUINavigation.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEUINavigation.h", - "MMEUniqueIdentifier.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEUniqueIdentifier.h", - "MMEDispatchManager.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEDispatchManager.h", - "MMEEventsManager.h": "platform/ios/vendor/mapbox-events-ios/MapboxMobileEvents/MMEEventsManager.h" - } -} diff --git a/platform/ios/vendor/SMCalloutView/LICENSE b/platform/ios/vendor/SMCalloutView/LICENSE new file mode 100644 index 000000000..d9a10c0d8 --- /dev/null +++ b/platform/ios/vendor/SMCalloutView/LICENSE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/platform/ios/vendor/calloutview.cmake b/platform/ios/vendor/calloutview.cmake new file mode 100644 index 000000000..6b490ba1f --- /dev/null +++ b/platform/ios/vendor/calloutview.cmake @@ -0,0 +1,21 @@ +if(TARGET mbgl-vendor-calloutview) + return() +endif() + +add_library( + mbgl-vendor-calloutview ${CMAKE_CURRENT_LIST_DIR}/SMCalloutView/SMCalloutView.m +) + +target_include_directories( + mbgl-vendor-calloutview SYSTEM + INTERFACE ${CMAKE_CURRENT_LIST_DIR}/SMCalloutView +) + +set_target_properties( + mbgl-vendor-calloutview + PROPERTIES + INTERFACE_MAPLIBRE_NAME "Boost C++ Libraries" + INTERFACE_MAPLIBRE_URL "https://github.com/nfarina/calloutview" + INTERFACE_MAPLIBRE_AUTHOR "Nick Farina" + INTERFACE_MAPLIBRE_LICENSE ${CMAKE_CURRENT_LIST_DIR}/SMCalloutView/LICENSE +) diff --git a/platform/macos/Mapbox-macOS-SDK-symbols.podspec b/platform/macos/Mapbox-macOS-SDK-symbols.podspec deleted file mode 100644 index 8329235d4..000000000 --- a/platform/macos/Mapbox-macOS-SDK-symbols.podspec +++ /dev/null @@ -1,30 +0,0 @@ -Pod::Spec.new do |m| - - version = '0.16.0' - - m.name = 'Mapbox-macOS-SDK-symbols' - m.version = "#{version}-symbols" - - m.summary = 'Open-source, interactive, fully customizable vector maps.' - m.description = 'Interactive, fully customizable vector maps with tight platform integration and high-performance OpenGL rendering.' - m.homepage = 'https://mapbox.github.io/mapbox-gl-native/macos/' - m.license = { :type => 'BSD', :file => 'LICENSE.md' } - m.author = { 'Mapbox' => 'mobile@mapbox.com' } - m.screenshot = "https://mapbox.github.io/mapbox-gl-native/macos/#{version}/img/screenshot.jpg" - m.social_media_url = 'https://twitter.com/mapbox' - m.documentation_url = 'https://mapbox.github.io/mapbox-gl-native/macos/' - - m.source = { - :http => "https://github.com/mapbox/mapbox-gl-native-ios/releases/download/macos-v#{version}/mapbox-macos-sdk-#{m.version.to_s}.zip", - :flatten => true - } - - m.platform = :osx - m.osx.deployment_target = '10.11' - - m.requires_arc = true - - m.vendored_frameworks = 'Mapbox.framework' - m.module_name = 'Mapbox' - -end diff --git a/platform/macos/Mapbox-macOS-SDK.podspec b/platform/macos/Mapbox-macOS-SDK.podspec deleted file mode 100644 index 36c43543e..000000000 --- a/platform/macos/Mapbox-macOS-SDK.podspec +++ /dev/null @@ -1,30 +0,0 @@ -Pod::Spec.new do |m| - - version = '0.16.0' - - m.name = 'Mapbox-macOS-SDK' - m.version = version - - m.summary = 'Open-source, interactive, fully customizable vector maps.' - m.description = 'Interactive, fully customizable vector maps with tight platform integration and high-performance OpenGL rendering.' - m.homepage = 'https://mapbox.github.io/mapbox-gl-native/macos/' - m.license = { :type => 'BSD', :file => 'LICENSE.md' } - m.author = { 'Mapbox' => 'mobile@mapbox.com' } - m.screenshot = "https://mapbox.github.io/mapbox-gl-native/macos/#{version}/img/screenshot.jpg" - m.social_media_url = 'https://twitter.com/mapbox' - m.documentation_url = 'https://mapbox.github.io/mapbox-gl-native/macos/' - - m.source = { - :http => "https://github.com/mapbox/mapbox-gl-native-ios/releases/download/macos-v#{version}/mapbox-macos-sdk-#{m.version.to_s}.zip", - :flatten => true - } - - m.platform = :osx - m.osx.deployment_target = '10.11' - - m.requires_arc = true - - m.vendored_frameworks = 'Mapbox.framework' - m.module_name = 'Mapbox' - -end diff --git a/platform/macos/core-files.json b/platform/macos/core-files.json deleted file mode 100644 index 02cb1be86..000000000 --- a/platform/macos/core-files.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "//": "This file can be edited manually and is the canonical source.", - "sources": [ - "platform/darwin/src/collator.mm", - "platform/darwin/src/gl_functions.cpp", - "platform/darwin/src/image.mm", - "platform/darwin/src/local_glyph_rasterizer.mm", - "platform/darwin/src/logging_nslog.mm", - "platform/darwin/src/nsthread.mm", - "platform/darwin/src/number_format.mm", - "platform/darwin/src/reachability.m", - "platform/darwin/src/string_nsstring.mm", - "platform/default/src/mbgl/gfx/headless_backend.cpp", - "platform/default/src/mbgl/gfx/headless_frontend.cpp", - "platform/default/src/mbgl/gl/headless_backend.cpp", - "platform/default/src/mbgl/map/map_snapshotter.cpp", - "platform/default/src/mbgl/text/bidi.cpp", - "platform/default/src/mbgl/util/compression.cpp", - "platform/default/src/mbgl/util/png_writer.cpp", - "platform/default/src/mbgl/util/thread_local.cpp", - "platform/default/src/mbgl/util/utf.cpp" - ], - "public_headers": { - "mbgl/storage/reachability.h": "platform/darwin/include/mbgl/storage/reachability.h", - "mbgl/util/image+MLNAdditions.hpp": "platform/darwin/include/mbgl/util/image+MLNAdditions.hpp", - "mbgl/gfx/headless_backend.hpp": "platform/default/include/mbgl/gfx/headless_backend.hpp", - "mbgl/gfx/headless_frontend.hpp": "platform/default/include/mbgl/gfx/headless_frontend.hpp", - "mbgl/gl/headless_backend.hpp": "platform/default/include/mbgl/gl/headless_backend.hpp", - "mbgl/map/map_snapshotter.hpp": "platform/default/include/mbgl/map/map_snapshotter.hpp" - }, - "private_headers": { - "CFHandle.hpp": "platform/darwin/src/CFHandle.hpp" - } -} diff --git a/platform/macos/macos.cmake b/platform/macos/macos.cmake index 1dad9549a..910310776 100644 --- a/platform/macos/macos.cmake +++ b/platform/macos/macos.cmake @@ -11,6 +11,13 @@ set_target_properties(mbgl-core PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH[vari set_target_properties(mbgl-core PROPERTIES XCODE_ATTRIBUTE_CLANG_ENABLE_OBJC_ARC YES) +target_link_libraries( + mbgl-core + PRIVATE + "-framework AppKit" +) + + if(MLN_WITH_OPENGL) find_package(OpenGL REQUIRED) @@ -30,16 +37,6 @@ if(MLN_WITH_OPENGL) ) endif() -if(MLN_WITH_METAL) - find_package(OpenGL REQUIRED) - - target_sources( - mbgl-core - PRIVATE - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/mtl/headless_backend.cpp - ) -endif() - if(MLN_WITH_VULKAN) find_package(Vulkan REQUIRED) @@ -60,49 +57,6 @@ if(MLN_WITH_VULKAN) set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) endif() -target_sources( - mbgl-core - PRIVATE - ${PROJECT_SOURCE_DIR}/platform/darwin/src/async_task.cpp - ${PROJECT_SOURCE_DIR}/platform/darwin/src/collator.mm - ${PROJECT_SOURCE_DIR}/platform/darwin/src/http_file_source.mm - ${PROJECT_SOURCE_DIR}/platform/darwin/src/image.mm - ${PROJECT_SOURCE_DIR}/platform/darwin/src/local_glyph_rasterizer.mm - ${PROJECT_SOURCE_DIR}/platform/darwin/src/logging_nslog.mm - ${PROJECT_SOURCE_DIR}/platform/darwin/src/native_apple_interface.m - ${PROJECT_SOURCE_DIR}/platform/darwin/src/nsthread.mm - ${PROJECT_SOURCE_DIR}/platform/darwin/src/number_format.mm - ${PROJECT_SOURCE_DIR}/platform/darwin/src/run_loop.cpp - ${PROJECT_SOURCE_DIR}/platform/darwin/src/string_nsstring.mm - ${PROJECT_SOURCE_DIR}/platform/darwin/src/timer.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_backend.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/gfx/headless_frontend.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/layermanager/layer_manager.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/map/map_snapshotter.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/platform/time.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/asset_file_source.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/mbtiles_file_source.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/database_file_source.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_manager.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/file_source_request.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_request.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/local_file_source.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/main_resource_loader.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_database.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/offline_download.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/online_file_source.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/$,pmtiles_file_source.cpp,pmtiles_file_source_stub.cpp> - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/storage/sqlite3.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/text/bidi.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/compression.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/filesystem.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/monotonic_timer.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/png_writer.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/thread_local.cpp - ${PROJECT_SOURCE_DIR}/platform/default/src/mbgl/util/utf.cpp -) - target_compile_options(mbgl-core PRIVATE -fobjc-arc) # FIXME: Should not be needed, but now needed by node because of the headless frontend. @@ -114,21 +68,7 @@ target_include_directories( target_include_directories( mbgl-core PRIVATE - ${PROJECT_SOURCE_DIR}/platform/darwin/include ${PROJECT_SOURCE_DIR}/platform/darwin/src ${PROJECT_SOURCE_DIR}/platform/macos/src -) - -include(${PROJECT_SOURCE_DIR}/vendor/icu.cmake) - -target_link_libraries( - mbgl-core - PRIVATE - "-framework AppKit" - "-framework CoreGraphics" - "-framework CoreLocation" - "-framework SystemConfiguration" - mbgl-vendor-icu - sqlite3 - z + ${PROJECT_SOURCE_DIR}/platform/macos/src ) add_subdirectory(${PROJECT_SOURCE_DIR}/bin) diff --git a/platform/macos/sdk-files.json b/platform/macos/sdk-files.json deleted file mode 100644 index 4dd33d2fd..000000000 --- a/platform/macos/sdk-files.json +++ /dev/null @@ -1,216 +0,0 @@ -{ - "//": "This file is generated. Do not edit. Regenerate it with scripts/generate-file-lists.js", - "sources": [ - "platform/darwin/src/MLNImageSource.mm", - "platform/darwin/src/MLNMapSnapshotter.mm", - "platform/macos/src/NSImage+MLNAdditions.mm", - "platform/darwin/src/MLNHillshadeStyleLayer.mm", - "platform/darwin/src/MLNPointAnnotation.mm", - "platform/darwin/src/MLNSDKMetricsManager.m", - "platform/darwin/src/NSBundle+MLNAdditions.mm", - "platform/macos/src/MLNMapView.mm", - "platform/macos/src/MLNMapView+OpenGL.mm", - "platform/darwin/src/NSArray+MLNAdditions.mm", - "platform/darwin/src/MLNOfflinePack.mm", - "platform/darwin/src/NSDate+MLNAdditions.mm", - "platform/darwin/src/MLNLoggingConfiguration.mm", - "platform/darwin/src/MLNNetworkConfiguration.mm", - "platform/darwin/src/MLNLight.mm", - "platform/macos/src/MLNAnnotationImage.m", - "platform/darwin/src/NSExpression+MLNAdditions.mm", - "platform/darwin/src/MLNFeature.mm", - "platform/darwin/src/MLNCustomStyleLayer.mm", - "platform/macos/src/NSColor+MLNAdditions.mm", - "platform/macos/src/MLNAttributionButton.mm", - "platform/darwin/src/MLNFillStyleLayer.mm", - "platform/darwin/src/MLNShape.mm", - "platform/darwin/src/MLNRasterTileSource.mm", - "platform/darwin/src/MLNFoundation.mm", - "platform/darwin/src/NSString+MLNAdditions.m", - "platform/darwin/src/NSCoder+MLNAdditions.mm", - "platform/darwin/src/MLNStyleLayerManager.mm", - "platform/darwin/src/MLNStyle.mm", - "platform/darwin/src/MLNGeometry.mm", - "platform/darwin/src/MLNHeatmapStyleLayer.mm", - "platform/darwin/src/MLNCircleStyleLayer.mm", - "platform/darwin/src/MLNForegroundStyleLayer.mm", - "platform/darwin/src/NSDictionary+MLNAdditions.mm", - "platform/darwin/src/MLNBackgroundStyleLayer.mm", - "platform/darwin/src/MLNTileSource.mm", - "platform/macos/src/MLNMapView+IBAdditions.mm", - "platform/darwin/src/NSValue+MLNAdditions.m", - "platform/darwin/src/MLNStyleLayer.mm", - "platform/darwin/src/MLNClockDirectionFormatter.m", - "platform/darwin/src/MLNComputedShapeSource.mm", - "platform/macos/src/MLNOpenGLLayer.mm", - "platform/darwin/src/MLNMultiPoint.mm", - "platform/darwin/src/MLNTypes.m", - "platform/darwin/src/MLNPointCollection.mm", - "platform/darwin/src/MLNCoordinateFormatter.m", - "platform/darwin/src/MLNSource.mm", - "platform/darwin/src/MLNMapCamera.mm", - "platform/darwin/src/MLNVectorStyleLayer.mm", - "platform/darwin/src/MLNAttributedExpression.m", - "platform/darwin/src/NSValue+MLNStyleAttributeAdditions.mm", - "platform/darwin/src/MLNPolygon.mm", - "platform/darwin/src/MLNDistanceFormatter.m", - "platform/macos/src/NSProcessInfo+MLNAdditions.m", - "platform/darwin/src/MLNFillExtrusionStyleLayer.mm", - "platform/darwin/src/MLNOfflineStorage.mm", - "platform/darwin/src/NSURL+MLNAdditions.m", - "platform/darwin/src/NSCompoundPredicate+MLNAdditions.mm", - "platform/darwin/src/MLNTilePyramidOfflineRegion.mm", - "platform/darwin/src/MLNSettings.mm", - "platform/darwin/src/MLNAttributionInfo.mm", - "platform/darwin/src/MLNPolyline.mm", - "platform/darwin/src/MLNShapeSource.mm", - "platform/macos/src/MLNCompassCell.m", - "platform/darwin/src/MLNRasterStyleLayer.mm", - "platform/darwin/src/MLNShapeCollection.mm", - "platform/darwin/src/MLNShapeOfflineRegion.mm", - "platform/darwin/src/NSComparisonPredicate+MLNAdditions.mm", - "platform/macos/src/MLNMapView+Impl.mm", - "platform/darwin/src/MLNCompassDirectionFormatter.m", - "platform/darwin/src/MLNRasterDEMSource.mm", - "platform/darwin/src/MLNLineStyleLayer.mm", - "platform/darwin/src/MLNSymbolStyleLayer.mm", - "platform/darwin/src/NSPredicate+MLNAdditions.mm", - "platform/darwin/src/MLNVectorTileSource.mm", - "platform/darwin/src/MLNStyleValue.mm", - "platform/darwin/src/MLNRendererConfiguration.mm" - ], - "public_headers": { - "MLNFoundation.h": "platform/darwin/src/MLNFoundation.h", - "MLNComputedShapeSource.h": "platform/darwin/src/MLNComputedShapeSource.h", - "MLNRasterStyleLayer.h": "platform/darwin/src/MLNRasterStyleLayer.h", - "NSExpression+MLNAdditions.h": "platform/darwin/src/NSExpression+MLNAdditions.h", - "MLNAttributedExpression.h": "platform/darwin/src/MLNAttributedExpression.h", - "MLNAnnotation.h": "platform/darwin/src/MLNAnnotation.h", - "MLNHillshadeStyleLayer.h": "platform/darwin/src/MLNHillshadeStyleLayer.h", - "MLNMapSnapshotter.h": "platform/darwin/src/MLNMapSnapshotter.h", - "MLNCircleStyleLayer.h": "platform/darwin/src/MLNCircleStyleLayer.h", - "MLNAttributionInfo.h": "platform/darwin/src/MLNAttributionInfo.h", - "MLNFillExtrusionStyleLayer.h": "platform/darwin/src/MLNFillExtrusionStyleLayer.h", - "MLNAnnotationImage.h": "platform/macos/src/MLNAnnotationImage.h", - "MLNMapView.h": "platform/macos/src/MLNMapView.h", - "MLNOfflineStorage.h": "platform/darwin/src/MLNOfflineStorage.h", - "MLNStyleValue.h": "platform/darwin/src/MLNStyleValue.h", - "MLNSDKMetricsManager.h": "platform/darwin/src/MLNSDKMetricsManager.h", - "MLNMultiPoint.h": "platform/darwin/src/MLNMultiPoint.h", - "MLNShapeCollection.h": "platform/darwin/src/MLNShapeCollection.h", - "MLNPointAnnotation.h": "platform/darwin/src/MLNPointAnnotation.h", - "MLNOfflinePack.h": "platform/darwin/src/MLNOfflinePack.h", - "MLNLoggingConfiguration.h": "platform/darwin/src/MLNLoggingConfiguration.h", - "NSPredicate+MLNAdditions.h": "platform/darwin/src/NSPredicate+MLNAdditions.h", - "MLNVectorTileSource.h": "platform/darwin/src/MLNVectorTileSource.h", - "MLNRasterDEMSource.h": "platform/darwin/src/MLNRasterDEMSource.h", - "MLNTypes.h": "platform/darwin/src/MLNTypes.h", - "MLNBackgroundStyleLayer.h": "platform/darwin/src/MLNBackgroundStyleLayer.h", - "MLNPointCollection.h": "platform/darwin/src/MLNPointCollection.h", - "MLNShape.h": "platform/darwin/src/MLNShape.h", - "MLNCustomStyleLayer.h": "platform/darwin/src/MLNCustomStyleLayer.h", - "MLNSource.h": "platform/darwin/src/MLNSource.h", - "MLNPolygon.h": "platform/darwin/src/MLNPolygon.h", - "MLNClockDirectionFormatter.h": "platform/darwin/src/MLNClockDirectionFormatter.h", - "MLNFillStyleLayer.h": "platform/darwin/src/MLNFillStyleLayer.h", - "MLNCoordinateFormatter.h": "platform/darwin/src/MLNCoordinateFormatter.h", - "MLNShapeOfflineRegion.h": "platform/darwin/src/MLNShapeOfflineRegion.h", - "MLNNetworkConfiguration.h": "platform/darwin/src/MLNNetworkConfiguration.h", - "MLNOverlay.h": "platform/darwin/src/MLNOverlay.h", - "MLNPolyline.h": "platform/darwin/src/MLNPolyline.h", - "MLNLineStyleLayer.h": "platform/darwin/src/MLNLineStyleLayer.h", - "MLNDistanceFormatter.h": "platform/darwin/src/MLNDistanceFormatter.h", - "MLNHeatmapStyleLayer.h": "platform/darwin/src/MLNHeatmapStyleLayer.h", - "MLNOfflineRegion.h": "platform/darwin/src/MLNOfflineRegion.h", - "MLNTilePyramidOfflineRegion.h": "platform/darwin/src/MLNTilePyramidOfflineRegion.h", - "NSValue+MLNAdditions.h": "platform/darwin/src/NSValue+MLNAdditions.h", - "MLNTileOperation.h": "platform/darwin/src/MLNTileOperation.h", - "MLNMapViewDelegate.h": "platform/macos/src/MLNMapViewDelegate.h", - "MLNCluster.h": "platform/darwin/src/MLNCluster.h", - "MLNFeature.h": "platform/darwin/src/MLNFeature.h", - "MLNStyleLayer.h": "platform/darwin/src/MLNStyleLayer.h", - "MLNGeometry.h": "platform/darwin/src/MLNGeometry.h", - "MLNSettings.h": "platform/darwin/src/MLNSettings.h", - "MLNTileSource.h": "platform/darwin/src/MLNTileSource.h", - "MLNForegroundStyleLayer.h": "platform/darwin/src/MLNForegroundStyleLayer.h", - "MLNMapCamera.h": "platform/darwin/src/MLNMapCamera.h", - "MLNImageSource.h": "platform/darwin/src/MLNImageSource.h", - "MLNSymbolStyleLayer.h": "platform/darwin/src/MLNSymbolStyleLayer.h", - "MLNMapView+IBAdditions.h": "platform/macos/src/MLNMapView+IBAdditions.h", - "MLNCompassDirectionFormatter.h": "platform/darwin/src/MLNCompassDirectionFormatter.h", - "MLNRasterTileSource.h": "platform/darwin/src/MLNRasterTileSource.h", - "MLNVectorStyleLayer.h": "platform/darwin/src/MLNVectorStyleLayer.h", - "MLNShapeSource.h": "platform/darwin/src/MLNShapeSource.h", - "MLNLight.h": "platform/darwin/src/MLNLight.h", - "MLNStyle.h": "platform/darwin/src/MLNStyle.h", - "Mapbox/Mapbox.h": "platform/macos/src/Mapbox.h" - }, - "private_headers": { - "MLNOfflineRegion_Private.h": "platform/darwin/src/MLNOfflineRegion_Private.h", - "MLNRasterTileSource_Private.h": "platform/darwin/src/MLNRasterTileSource_Private.h", - "MLNBackgroundStyleLayer_Private.h": "platform/darwin/src/MLNBackgroundStyleLayer_Private.h", - "MLNConversion.h": "platform/darwin/src/MLNConversion.h", - "MLNFillExtrusionStyleLayer_Private.h": "platform/darwin/src/MLNFillExtrusionStyleLayer_Private.h", - "MLNStyleValue_Private.h": "platform/darwin/src/MLNStyleValue_Private.h", - "MLNMapView_Private.h": "platform/macos/src/MLNMapView_Private.h", - "MLNRasterStyleLayer_Private.h": "platform/darwin/src/MLNRasterStyleLayer_Private.h", - "MLNHeatmapStyleLayer_Private.h": "platform/darwin/src/MLNHeatmapStyleLayer_Private.h", - "MLNAttributionButton.h": "platform/macos/src/MLNAttributionButton.h", - "NSArray+MLNAdditions.h": "platform/darwin/src/NSArray+MLNAdditions.h", - "NSComparisonPredicate+MLNAdditions.h": "platform/darwin/src/NSComparisonPredicate+MLNAdditions.h", - "MLNStyleLayerManager.h": "platform/darwin/src/MLNStyleLayerManager.h", - "MLNStyleLayer_Private.h": "platform/darwin/src/MLNStyleLayer_Private.h", - "MLNShapeOfflineRegion_Private.h": "platform/darwin/src/MLNShapeOfflineRegion_Private.h", - "MLNAttributionInfo_Private.h": "platform/darwin/src/MLNAttributionInfo_Private.h", - "NSBundle+MLNAdditions.h": "platform/darwin/src/NSBundle+MLNAdditions.h", - "NSURL+MLNAdditions.h": "platform/darwin/src/NSURL+MLNAdditions.h", - "MLNAnnotationImage_Private.h": "platform/macos/src/MLNAnnotationImage_Private.h", - "MLNLoggingConfiguration_Private.h": "platform/darwin/src/MLNLoggingConfiguration_Private.h", - "NSPredicate+MLNPrivateAdditions.h": "platform/darwin/src/NSPredicate+MLNPrivateAdditions.h", - "NSString+MLNAdditions.h": "platform/darwin/src/NSString+MLNAdditions.h", - "MLNCircleStyleLayer_Private.h": "platform/darwin/src/MLNCircleStyleLayer_Private.h", - "MLNVectorTileSource_Private.h": "platform/darwin/src/MLNVectorTileSource_Private.h", - "MLNGeometry_Private.h": "platform/darwin/src/MLNGeometry_Private.h", - "MLNSettings_Private.h": "platform/darwin/src/MLNSettings_Private.h", - "MLNComputedShapeSource_Private.h": "platform/darwin/src/MLNComputedShapeSource_Private.h", - "NSException+MLNAdditions.h": "platform/darwin/src/NSException+MLNAdditions.h", - "MLNTileSource_Private.h": "platform/darwin/src/MLNTileSource_Private.h", - "NSExpression+MLNPrivateAdditions.h": "platform/darwin/src/NSExpression+MLNPrivateAdditions.h", - "MLNSDKMetricsManager_Private.h": "platform/darwin/src/MLNSDKMetricsManager_Private.h", - "MLNNetworkConfiguration_Private.h": "platform/darwin/src/MLNNetworkConfiguration_Private.h", - "NSCompoundPredicate+MLNAdditions.h": "platform/darwin/src/NSCompoundPredicate+MLNAdditions.h", - "MLNSymbolStyleLayer_Private.h": "platform/darwin/src/MLNSymbolStyleLayer_Private.h", - "MLNMapView+OpenGL.h": "platform/macos/src/MLNMapView+OpenGL.h", - "NSProcessInfo+MLNAdditions.h": "platform/macos/src/NSProcessInfo+MLNAdditions.h", - "MLNRendererFrontend.h": "platform/darwin/src/MLNRendererFrontend.h", - "NSValue+MLNStyleAttributeAdditions.h": "platform/darwin/src/NSValue+MLNStyleAttributeAdditions.h", - "NSImage+MLNAdditions.h": "platform/macos/src/NSImage+MLNAdditions.h", - "MLNLight_Private.h": "platform/darwin/src/MLNLight_Private.h", - "MLNMapView+Impl.h": "platform/macos/src/MLNMapView+Impl.h", - "NSCoder+MLNAdditions.h": "platform/darwin/src/NSCoder+MLNAdditions.h", - "MLNOfflineStorage_Private.h": "platform/darwin/src/MLNOfflineStorage_Private.h", - "MLNLineStyleLayer_Private.h": "platform/darwin/src/MLNLineStyleLayer_Private.h", - "MLNHillshadeStyleLayer_Private.h": "platform/darwin/src/MLNHillshadeStyleLayer_Private.h", - "MLNValueEvaluator.h": "platform/darwin/src/MLNValueEvaluator.h", - "MLNOfflinePack_Private.h": "platform/darwin/src/MLNOfflinePack_Private.h", - "MLNFoundation_Private.h": "platform/darwin/src/MLNFoundation_Private.h", - "MLNCompassCell.h": "platform/macos/src/MLNCompassCell.h", - "MLNShapeSource_Private.h": "platform/darwin/src/MLNShapeSource_Private.h", - "MLNStyle_Private.h": "platform/darwin/src/MLNStyle_Private.h", - "MLNSource_Private.h": "platform/darwin/src/MLNSource_Private.h", - "MLNOpenGLLayer.h": "platform/macos/src/MLNOpenGLLayer.h", - "MLNPointCollection_Private.h": "platform/darwin/src/MLNPointCollection_Private.h", - "NSDate+MLNAdditions.h": "platform/darwin/src/NSDate+MLNAdditions.h", - "NSColor+MLNAdditions.h": "platform/macos/src/NSColor+MLNAdditions.h", - "MLNMultiPoint_Private.h": "platform/darwin/src/MLNMultiPoint_Private.h", - "MLNCustomStyleLayer_Private.h": "platform/darwin/src/MLNCustomStyleLayer_Private.h", - "MLNPolygon_Private.h": "platform/darwin/src/MLNPolygon_Private.h", - "MLNShape_Private.h": "platform/darwin/src/MLNShape_Private.h", - "MLNTilePyramidOfflineRegion_Private.h": "platform/darwin/src/MLNTilePyramidOfflineRegion_Private.h", - "MLNFeature_Private.h": "platform/darwin/src/MLNFeature_Private.h", - "MLNPolyline_Private.h": "platform/darwin/src/MLNPolyline_Private.h", - "MLNFillStyleLayer_Private.h": "platform/darwin/src/MLNFillStyleLayer_Private.h", - "NSDictionary+MLNAdditions.h": "platform/darwin/src/NSDictionary+MLNAdditions.h", - "MLNRendererConfiguration.h": "platform/darwin/src/MLNRendererConfiguration.h" - } -} diff --git a/src/mbgl/mtl/context.cpp b/src/mbgl/mtl/context.cpp index afa1756b0..eb57ffd12 100644 --- a/src/mbgl/mtl/context.cpp +++ b/src/mbgl/mtl/context.cpp @@ -366,7 +366,6 @@ bool Context::renderTileClippingMasks(gfx::RenderPass& renderPass, vertDesc->layouts()->setObject(layoutDesc.get(), ShaderClass::attributes[0].index); // Create a render pipeline state, telling Metal how to render the primitives - const auto& renderPassDescriptor = mtlRenderPass.getDescriptor(); const std::size_t hash = mbgl::util::hash(ShaderClass::attributes[0].index, 0, MTL::VertexFormatShort2, diff --git a/src/mbgl/mtl/drawable.cpp b/src/mbgl/mtl/drawable.cpp index 27ca784a5..e41d8c79c 100644 --- a/src/mbgl/mtl/drawable.cpp +++ b/src/mbgl/mtl/drawable.cpp @@ -252,7 +252,8 @@ void Drawable::draw(PaintParameters& parameters) const { const auto stencilMode = enableStencil ? parameters.stencilModeForClipping(tileID->toUnwrapped()) : gfx::StencilMode::disabled(); impl->depthStencilState = context.makeDepthStencilState(depthMode, stencilMode, renderable); - impl->previousStencilMode = *newStencilMode; + // FIXME: https://github.com/maplibre/maplibre-native/issues/3248 + if (newStencilMode) impl->previousStencilMode = *newStencilMode; } renderPass.setDepthStencilState(impl->depthStencilState); renderPass.setStencilReference(impl->previousStencilMode.ref); @@ -387,8 +388,6 @@ void Drawable::setVertexAttrId(const size_t id) { } void Drawable::bindAttributes(RenderPass& renderPass) const noexcept { - const auto& encoder = renderPass.getMetalEncoder(); - NS::UInteger attributeIndex = 0; for (const auto& binding : impl->attributeBindings) { const auto* buffer = static_cast(binding ? binding->vertexBufferResource @@ -402,8 +401,6 @@ void Drawable::bindAttributes(RenderPass& renderPass) const noexcept { } void Drawable::bindInstanceAttributes(RenderPass& renderPass) const noexcept { - const auto& encoder = renderPass.getMetalEncoder(); - NS::UInteger attributeIndex = 0; for (const auto& binding : impl->instanceBindings) { if (binding.has_value()) { @@ -520,7 +517,6 @@ void Drawable::upload(gfx::UploadPass& uploadPass_) { assert(false); return; } - const auto& shaderMTL = static_cast(*shader); auto& uploadPass = static_cast(uploadPass_); auto& contextBase = uploadPass.getContext(); diff --git a/src/mbgl/mtl/layer_group.cpp b/src/mbgl/mtl/layer_group.cpp index 406624e68..e3016cbf6 100644 --- a/src/mbgl/mtl/layer_group.cpp +++ b/src/mbgl/mtl/layer_group.cpp @@ -43,7 +43,6 @@ void LayerGroup::render(RenderOrchestrator&, PaintParameters& parameters) { const auto debugGroup = parameters.encoder->createDebugGroup(getName() + "-render"); #endif - auto& context = static_cast(parameters.context); auto& renderPass = static_cast(*parameters.renderPass); bool bindUBOs = false; diff --git a/src/mbgl/mtl/tile_layer_group.cpp b/src/mbgl/mtl/tile_layer_group.cpp index 2993a919b..82eb2ff6c 100644 --- a/src/mbgl/mtl/tile_layer_group.cpp +++ b/src/mbgl/mtl/tile_layer_group.cpp @@ -111,7 +111,6 @@ void TileLayerGroup::render(RenderOrchestrator&, PaintParameters& parameters) { } }; - const auto depthMode = parameters.depthModeFor3D(); if (stencil3d) { stencilMode3d = parameters.stencilModeFor3D(); encoder->setStencilReferenceValue(stencilMode3d.ref); diff --git a/src/mbgl/mtl/upload_pass.cpp b/src/mbgl/mtl/upload_pass.cpp index a47193101..e31af6e5b 100644 --- a/src/mbgl/mtl/upload_pass.cpp +++ b/src/mbgl/mtl/upload_pass.cpp @@ -165,11 +165,6 @@ gfx::AttributeBindingArray UploadPass::buildAttributeBindings( gfx::AttributeBindingArray bindings; bindings.resize(defaults.allocatedSize()); - constexpr std::size_t align = 16; - constexpr std::uint8_t padding = 0; - - uint32_t vertexStride = 0; - // For each attribute in the program, with the corresponding default and optional override... const auto resolveAttr = [&](const size_t id, auto& default_, auto& override_) -> void { auto& effectiveAttr = override_ ? *override_ : default_;