diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index b61f006ed..1668b8229 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,20 +1,43 @@
# Contributing
-If you have a usage question for a product built on MapLibre GL (such as our iOS or Android SDKs), please visit `#maplibre-native` Slack channel at https://slack.openstreetmap.us/.
+## Documentation
+
+- For a high-level overview of MapLibre GL Native, check out the [MapLibre GL Native Markdown Book](https://maplibre.org/maplibre-gl-native/docs/book/).
+- See [`DEVELOPING.md`](DEVELOPING.md) for getting started with development.
+
+## Source code checkout
+
+```bash
+git clone --recurse-submodules https://github.com/maplibre/maplibre-gl-native.git
+```
+
+## Building
+
+MapLibre GL Native shares a single C++ core library with all platforms. To build it, we utilize CMake.
+
+To build, run the following from the root directory
+```bash
+cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DMBGL_WITH_CORE_ONLY=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DMBGL_WITH_COVERAGE=ON
+```
+
+`CMAKE_BUILD_TYPE=Debug` will build debug artifacts. You can opt to omit it if that is not necessary.
+`MBGL_WITH_CORE_ONLY=ON` will build only the core libraries.
+Built artifacts should be available on `build` folder.
+
+
+## Guidelines
If you want to contribute code:
-1. Please familiarize yourself with the [install process](README.md#installation).
+1. Please familiarize yourself with the installation process of your chosen platform.
1. Ensure that existing [pull requests](https://github.com/maplibre/maplibre-gl-native/pulls) and [issues](https://github.com/maplibre/maplibre-gl-native/issues) don’t already cover your contribution or question.
-1. Pull requests are gladly accepted. If there are any changes that developers using one of the GL SDKs should be aware of, please update the **master** section of the relevant changelog(s):
- * [MapLibre Maps SDK for iOS](platform/ios/CHANGELOG.md)
- * [MapLibre Maps SDK for macOS](platform/macos/CHANGELOG.md)
+1. Pull requests are gladly accepted. If there are any changes that developers using one of the GL SDKs should be aware of, please update the **main** section of the relevant `CHANGELOG.md`.
-1. Prefix your commit messages with the platform(s) your changes affect: `[ios]` or `[macos]`.
+4. Prefix your commit messages with the platform(s) your changes affect, e.g. `[ios]`.
-Please note the special instructions for contributing new source code files, asset files, or user-facing strings to the [iOS SDK](platform/ios/DEVELOPING.md) or [macOS SDK](platform/macos/DEVELOPING.md).
+Please note the special instructions for contributing new source code files, asset files, or user-facing strings to MapLibre GL Native for [iOS](platform/ios/CONTRIBUTING.md), [Android](platform/android/DEVELOPING.md) or [macOS](platform/ios/platform/macos/DEVELOPING.md).
## Design Proposals
@@ -30,3 +53,26 @@ The steps for a Design Proposal are the following:
4. Discuss the details of your Design Proposal with the community in the pull request. Adjust where needed.
5. Call a vote on the Design Proposal once discussions have settled. People in favor of your Design Proposal shall approve the pull request. People against your Design Proposal shall comment on the pull request with something like "Rejected".
6. Give the community at least 72 hours to vote. If a majority of the people who voted accept your Proposal, it can be merged.
+
+## Semantic Versioning
+
+MapLibre uses tags for releases based on [SemVer](https://semver.org) versioning. This is useful for checking out a particular released version for feature enhancements or debugging.
+
+You can list available tags by issuing the command `git tag`, then use the result
+
+```bash
+# 1. Obtain a list of tags, which matches to release versions
+git tag
+
+# 2. Set a convenience variable with the desired TAG
+# TAG=android-v9.4.2
+# TAG=android-v9.5.2
+TAG=ios-v5.12.0
+# TAG=ios-v5.12.0-pre.1
+
+# 3. Check out a particular TAG
+git checkout tags/$TAG -b $TAG
+
+# 4. build, debug or enhance features based on the tag
+# clean, if you need to troubleshoot build dependencies by using `make clean`
+```
diff --git a/FORK.md b/FORK.md
new file mode 100644
index 000000000..46aa0e282
--- /dev/null
+++ b/FORK.md
@@ -0,0 +1,19 @@
+# Fork
+
+MapLibre GL Native is a community led fork derived from [mapbox-gl-native](https://github.com/mapbox/mapbox-gl-native) prior to their switch to a non-OSS license. The fork also includes Maps SDK for iOS and MacOS (forked from [mapbox-gl-native-ios](https://github.com/mapbox/mapbox-gl-native-ios)) and Android SDK (forked from [mapbox-gl-native-android](https://github.com/mapbox/mapbox-gl-native-android)). These platform-specific SDKs were merged under platform directory and they reference mapbox-gl-native directly, not as a submodule.
+
+Beside merging in platform specific SDKs, the following changes were made compared to original mapbox projects:
+
+* The code was upgraded so that it can be built using latest clang compiler / Xcode 12.
+* CI/CD was migrated from CircleCI to GitHub Actions.
+* Along with GitHub releases, binaries are distributed as follows:
+ * The iOS binaries distribution was upgraded from fat packages to Swift package containing XCFramework.
+ * The Android binaries are distributed to GitHub maven package repository.
+
+> The mapbox-gl-native was forked from [d60fd30 - mgbl 1.6.0](https://github.com/mapbox/mapbox-gl-native/tree/d60fd302b1f6563e7d16952f8855122fdcc85f73), mapbox-gl-native-ios from [a139216](https://github.com/mapbox/mapbox-gl-native-ios/commit/a139216) and mapbox-gl-native-android from [4c12fb2](https://github.com/mapbox/mapbox-gl-native-android/commit/4c12fb2c)
+
+## Thank you Mapbox 🙏🏽
+
+We'd like to acknowledge the amazing work Mapbox has contributed to open source. The open source community is sad to part ways with them, but we simultaneously feel grateful for everything they already contributed. We're proud to develop on the shoulders of giants, thank you Mapbox 🙇🏽♀️.
+
+Please keep in mind: Unauthorized backports are the biggest threat to the MapLibre project. It is unacceptable to backport code from any Mapbox project with a non-free license. If you are unsure about this issue, [please ask](https://github.com/maplibre/maplibre-gl-native/discussions)!
diff --git a/README.md b/README.md
index a07e7d574..b7b4d20a9 100644
--- a/README.md
+++ b/README.md
@@ -1,37 +1,51 @@
-# MapLibre GL Native - Open-Source Mapbox GL Native
+[](https://maplibre.org/)
-SDK for iOS, Android and other platforms
+# MapLibre GL Native
-MapLibre GL Native is a community led fork derived from [mapbox-gl-native](https://github.com/mapbox/mapbox-gl-native) prior to their switch to a non-OSS license. The fork also includes Maps SDK for iOS and MacOS (forked from [mapbox-gl-native-ios](https://github.com/mapbox/mapbox-gl-native-ios)) and Android SDK (forked from [mapbox-gl-native-android](https://github.com/mapbox/mapbox-gl-native-android)). These platform-specific SDKs were merged under platform directory and they reference mapbox-gl-native directly, not as a submodule.
+MapLibre GL Native is a free and open-source library for publishing maps in your apps and desktop applications on various platforms. Fast displaying of maps is possible thanks to GPU-accelerated vector tile rendering.
-Beside merging in platform specific SDKs, the following changes were made compared to original mapbox projects:
-
-* The code was upgraded so that it can be built using latest clang compiler / Xcode 12.
-* CI/CD was migrated from CircleCI to GitHub Actions.
-* Along with GitHub releases, binaries are distributed as follows:
- * The iOS binaries distribution was upgraded from fat packages to Swift package containing XCFramework.
- * The Android binaries are distributed to GitHub maven package repository.
-
-> The mapbox-gl-native was forked from [d60fd30 - mgbl 1.6.0](https://github.com/mapbox/mapbox-gl-native/tree/d60fd302b1f6563e7d16952f8855122fdcc85f73), mapbox-gl-native-ios from [a139216](https://github.com/mapbox/mapbox-gl-native-ios/commit/a139216) and mapbox-gl-native-android from [4c12fb2](https://github.com/mapbox/mapbox-gl-native-android/commit/4c12fb2c)
+This project originated as a fork of Mapbox GL Native, before their switch to a non-OSS license in December 2020. For more information, see: [`FORK.md`](./FORK.md).
**Call for Bounties💰** If you have ideas for new features in MapLibre, you can now nominate them for the MapLibre Bounty Program at https://maplibre.org/news/2022-10-16-call-for-bounties/
+
+
+
+
+
+## Getting Started
+
+To get started with MapLibre GL Native, go to your platform below.
+
## Documentation
-MapLibre GL Native documentation is a work in progress. To know about the current state of MapLibre and it's path forward,
-read the Markdown book. To know about API references for Android and iOS, please follow the API Reference links.
-1. [MapLibre GL Native Markdown Book](https://maplibre.org/maplibre-gl-native/docs/book/)
-2. [MapLibre GL Native iOS API Reference](https://maplibre.org/maplibre-gl-native/ios/api/)
-2. [MapLibre GL Native Android API Reference](https://maplibre.org/maplibre-gl-native/android/api/)
+The documentation of MapLibre GL Native is a work in progress. To get an architectural overview and to learn about the current state of the project and its path forward read the [MapLibre GL Native Markdown Book](https://maplibre.org/maplibre-gl-native/docs/book/). See below for platform-specific documentation.
-## Build Status
+## Platforms
-| SDK | Build | Build status |
-|---------------------------------------------------------------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [Maps SDK for iOS](platform/ios/) | CI | [](https://github.com/maplibre/maplibre-gl-native/workflows/ios-ci) |
-| [Maps SDK for iOS](platform/ios/) | Release | [](https://github.com/maplibre/maplibre-gl-native/workflows/ios-release) |
-| [Maps SDK for Android](platform/android/) | CI | [](https://github.com/maplibre/maplibre-gl-native/workflows/android-ci) |
-| [Maps SDK for Android](platform/android/) | Release | [](https://github.com/maplibre/maplibre-gl-native/workflows/android-release) |
+- [⭐️ Android](platform/android/README.md)
+- [⭐️ iOS](platform/ios/platform/ios/README.md)
+- [GLFW](platform/glfw)
+- [Linux](platform/linux/README.md)
+- [macOS](platform/ios/platform/macos/README.md)
+- [Node.js](platform/node/README.md)
+- [Qt](platform/qt/README.md)
+Platforms with a ⭐️ are **MapLibre Core Projects** and have a substantial amount of financial resources allocated to them. Learn about the different [project tiers](https://github.com/maplibre/maplibre/blob/main/PROJECT_TIERS.md#project-tiers).
+
+## Contributing
+
+To contribute to MapLibre GL Native, see [`CONTRIBUTING.md`](CONTRIBUTING.md) and (if applicable) the specific instructions for the platform you want to contribute to.
+
+### Getting Involved
+
+Join the `#maplibre-native` Slack channel at OSMUS. Get an invite at https://slack.openstreetmap.us/
+
+## The Future of MapLibre GL Native
+
+MapLibre GL Native is being actively developed.
+
+- Check out the [news](https://maplibre.org/news/) on MapLibre's website.
+- See the [Design Proposals](https://github.com/louwers/maplibre-gl-native/tree/main/design-proposals) that have been accepted and are being worked on, the most recent ones being the [Rendering Modularization Design Proposal](design-proposals/2022-10-27-rendering-modularization.md) and the [Metal Port Design Proposal](design-proposals/2022-11-29-metal-port.md).
## Sponsors
@@ -54,259 +68,8 @@ Stone:
Backers and Supporters:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+[](https://opencollective.com/maplibre)
-## Installation
+## License
-### Android
-
-1. Add bintray maven repositories to your build.gradle at project level so that you can access MapLibre packages for Android:
-
- ```gradle
- allprojects {
- repositories {
- ...
- mavenCentral()
- }
- }
- ```
-
- > Note: [Bintray was turn off May 1st, 2021](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/) so we migrated all packages to maven central.
-
-2. Add the library as a dependency into your module build.gradle
-
- ```gradle
- dependencies {
- ...
- implementation 'org.maplibre.gl:android-sdk:'
- ...
- }
- ```
-
-3. Sync gradle and rebuild your app
-
-*Note: MapLibre by default ships with the proprietary Google Play Location Services. If you want to avoid pulling proprietary dependencies into your project, you can exclude Google Play Location Services as follows:*
-```gradle
- implementation ('org.maplibre.gl:android-sdk:') {
- exclude group: 'com.google.android.gms'
- }
-```
-
-### iOS
-
-1. To add a package dependency to your Xcode project, select File > Swift Packages > Add Package Dependency and enter its repository URL. You can also navigate to your target’s General pane, and in the “Frameworks, Libraries, and Embedded Content” section, click the + button, select Add Other, and choose Add Package Dependency.
-
-2. Either add MapLibre GitHub distribution URL (https://github.com/maplibre/maplibre-gl-native-distribution) or search for `maplibre-gl-native` package.
-
-3. Choose "next". Xcode should clone the distribution repository and download the binaries.
-
-## Alternative installation
-
-You can also download pre-build from releases in this repository.
-
-## How to create your own build
-
-### Source code checkout
-
-```bash
-git clone --recurse-submodules https://github.com/maplibre/maplibre-gl-native.git
-```
-
-## Build
-
-MapLibre uses tags for its Android & iOS releases based on [SemVer](https://semver.org) versioning. This is useful for checking out a particular released version for feature enhancements or debugging.
-
-You can list available tags by issuing the command `git tag`, then use the result
-
-```bash
-# 1. Obtain a list of tags, which matches to release versions
-git tag
-
-# 2. Set a convenience variable with the desired TAG
-# TAG=android-v9.4.2
-# TAG=android-v9.5.2
-TAG=ios-v5.12.0
-# TAG=ios-v5.12.0-pre.1
-
-# 3. Check out a particular TAG
-git checkout tags/$TAG -b $TAG
-
-# 4. build, debug or enhance features based on the tag
-# clean, if you need to troubleshoot build dependencies by using `make clean`
-```
-
-
-### Build using Bazel
-
-[Bazel](https://bazel.build) is also supported as a build option for getting a packaged release of the xcframework compiled for either static or dynamic linking.
-
-Firstly you will have to ensure that Bazel is installed
-
-`brew install baselisk`
-
-From there you can use the script in platform/ios/platform/ios/scripts/package-bazel.sh
-
-#### There are 4 options:
-
-`cd platform/ios/platform/ios/scripts`
-
-Static xcframework compiled for release (this is default if no parameters are provided):
-`./bazel-package.sh --static --release`
-
-Static xcframework compiled for debug:
-`./bazel-package.sh --static --debug`
-
-Dynamic xcframework compiled for release:
-`./bazel-package.sh --dynamic --release`
-
-Dynamic xcframework compiled for debug:
-`./bazel-package.sh --dynamic --debug`
-
-All compiled frameworks will end up in the `bazel-bin/platform/ios/` path from the root of the repo.
-
-Also you can use the link option to ensure that the framework is able to link.
-
-`./bazel-package.sh --link`
-
-#### Bazel build files are placed in a few places throughout the project:
-
-`BUILD.bazel`
-- Covering the base cpp in the root `src` directory.
-
-`vendor/BUILD.bazel`
-- Covering the submodule dependencies of Maplibre.
-
-`platform/default/BUILD.bazel`
-- Covering the cpp dependencies in default.
-
-`platform/darwin/BUILD.bazel`
-- Covering the cpp source in platform/default.
-
-`platform/ios/platform/ios/vendor/`
-- Covering the iOS specific dependencies.
-
-`platform/ios/BUILD.bazel`
-- Covering the source in `platform/ios/platform/ios/src` and `platform/ios/platform/darwin/src` as well as defining all the other BUILD.bazel files and defining the xcframework targets.
-
-#### There are also some other areas that make bazel work:
-
-`WORKSPACE`
-- Defines the "repo" and the different modules that are loaded in order to compile for Apple.
-
-`.bazelversion`
-- Defines the version of bazel used, important for specific support for Apple targets.
-
-`bazel/flags.bzl`
-- Defines some compilation flags that are used between the different build files.
-
-### Android
-
----
-
-macOS Build Environment: Android Studio + NDK
-
-- Environment: Android Studio + NDK
-JAVA_HOME=/Applications/Android Studio.app/Contents/jre/Contents/Home
-ANDROID_SDK_ROOT=~/Library/Android/sdk
-~/Library/Android/sdk/tools/bin/sdkmanager --install ndk;major.minor.build
-
-
-
-
-```bash
-cd platform/android
-BUILDTYPE=Debug make apackage
-#BUILDTYPE=Release make apackage
-```
-
-Binaries are produced in `platform/android/MapboxGLAndroidSDK/build/outputs/aar/MapboxGLAndroidSDK-.aar`
-Please refer to [Mapbox Maps SDK for Android](platform/android/) for detailed instructions.
-
-### iOS
-
-You can run automated test on a Simulator or Device by changing to the Scheme `iosapp` and choosing `Product` > `Test` (or use `⌘-U`). Use `⌘-9` to navigate to `Reports` to see results and browse through screenshots. This method of testing should work well with CI tools such as GitHub Actions, Xcode Server Bots, & AWS Device Farm.
-
-```bash
-cd platform/ios
-
-# make and open the Xcode workspace
-make iproj
-
-# make Xcode workspace, but run in headless mode
-make iproj CI=1
-
-# Make Frameworks
-make xcframework BUILDTYPE=Release
-
-# test
-make ios-test
-
-# UITests
-# You can review uitest results: $(IOS_OUTPUT_PATH)/Logs/Test
- make ios-uitest
-```
-
-The packaging script will produce a `Mapbox.xcframework` in the `platform/ios/build/ios/pkg/dynamic` folder.
-Please refer to [Mapbox Maps SDK for iOS](platform/ios/platform/ios/) for detailed instructions.
-
-
-#### MacOS
-
-```bash
-cd platform/ios
-# open macOS project in Xcode
-make xproj
-
-# build or test from the command line
-make xpackage
-make macos-test
-```
-
-This produces a `Mapbox.framework` in the `platform/ios/build/macos/pkg/` folder.
-Please refer to [Mapbox Maps SDK for macos](platform/ios/platform/macos/) for detailed instructions.
-
-#### Linux
-
-See [the Linux platform build section](platform/linux/) for instructions.
-
-### Building MapLibre-GL-Native Core
-MapLibre GL Native shares a single C++ core library with all platforms. To build it, we utilize CMake.
-
-To build, run the following from the root directory
-```bash
-cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DMBGL_WITH_CORE_ONLY=ON -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DMBGL_WITH_COVERAGE=ON
-```
-
-`CMAKE_BUILD_TYPE=Debug` will build debug artifacts. You can opt to omit it if that is not necessary.
-`MBGL_WITH_CORE_ONLY=ON` will build only the core libraries.
-Built artifacts should be available on `build` folder.
+**MapLibre GL Native** is licensed under the [BSD 2-Clause License](./LICENSE.md).
diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md
index bddc42da4..0123a2b87 100644
--- a/docs/src/SUMMARY.md
+++ b/docs/src/SUMMARY.md
@@ -8,4 +8,4 @@
- [Expressions](design/expressions.md)
- [Architectural Problems and Recommendations](design/archictural-problems-and-recommendations.md)
- [Android Map Rendering Data Flow](design/android-map-rendering-data-flow.md)
- - [Geometry Tile Worker](design/geometry-tile-worker.md)
+ - [Geometry Tile Worker](design/geometry-tile-worker.md)
\ No newline at end of file
diff --git a/platform/android/CONTRIBUTING.md b/platform/android/CONTRIBUTING.md
deleted file mode 100644
index ee2e081f5..000000000
--- a/platform/android/CONTRIBUTING.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# Contributing - MapLibre GL Native for Android
-
-## Kotlin
-
-All new code should be written in [Kotlin](https://kotlinlang.org/).
-
-### Style Checking
-
-To check Kotlin style, we use [ktlint](https://pinterest.github.io/ktlint/). This linter is based on the [official Kotlin coding conventions](https://kotlinlang.org/docs/coding-conventions.html). We intergrate with it using the [kotlinder](https://github.com/jeremymailen/kotlinter-gradle) Gradle plugin.
-
-To check the style of all Kotlin source files, use:
-
-```
-$ ./gradlew checkStyle
-```
-
-To format all Kotlin source files, use:
-
-```
-$ ./gradlew formatKotlin
-```
-
-You might find it helpful to install the [Ktlint](https://plugins.jetbrains.com/plugin/15057-ktlint-unofficial-) Android Studio plugin.
diff --git a/platform/android/DEVELOPING.md b/platform/android/DEVELOPING.md
new file mode 100644
index 000000000..c6df6f978
--- /dev/null
+++ b/platform/android/DEVELOPING.md
@@ -0,0 +1,137 @@
+# Developing - MapLibre GL Native for Android
+
+These instructions are for developers interested in making code-level contributions to the SDK itself.
+
+## Kotlin
+
+All new code should be written in [Kotlin](https://kotlinlang.org/).
+
+### Style Checking
+
+To check Kotlin style, we use [ktlint](https://pinterest.github.io/ktlint/). This linter is based on the [official Kotlin coding conventions](https://kotlinlang.org/docs/coding-conventions.html). We intergrate with it using the [kotlinder](https://github.com/jeremymailen/kotlinter-gradle) Gradle plugin.
+
+To check the style of all Kotlin source files, use:
+
+```
+$ ./gradlew checkStyle
+```
+
+To format all Kotlin source files, use:
+
+```
+$ ./gradlew formatKotlin
+```
+
+## Getting the source
+
+Clone the git repository and pull in submodules:
+
+```bash
+git clone git@github.com:maplibre/maplibre-gl-native.git
+git submodule update --init --recursive
+cd platform/android
+```
+
+## Installing dependencies
+
+These dependencies are required for all operating systems and all platform targets.
+
+- Latest stable [Android Studio](https://developer.android.com/studio/index.html)
+- Update the Mapbox Maps SDK for Android with the latest
+ - Android SDK Build-Tools
+ - Android Platform-Tools
+ - Android SDK Tools
+ - CMake
+ - NDK
+ - LLDB
+- Modern C++ compiler that supports `-std=c++14`\*
+ - clang++ 3.5 or later or
+ - g++-4.9 or later
+- [Node.js](https://nodejs.org/)
+ - make sure [npm](https://www.npmjs.com) is installed as well
+- [ccache](https://ccache.samba.org/) (optional)
+
+**Note**: We partially support C++14 because GCC 4.9 does not fully implement the
+final draft of the C++14 standard. More information in [DEVELOPING.md](../../DEVELOPING.md).
+
+**Note**: On macOS you can install clang with installing the [Apple command line developer tools](https://developer.apple.com/download/).
+
+## Opening the project
+
+### macOS
+
+* Environment: Android Studio + NDK
+ * `JAVA_HOME=/Applications/Android Studio.app/Contents/jre/Contents/Home`
+ * `ANDROID_SDK_ROOT=~/Library/Android/sdk`
+ * See NDK version discussion on issue: [maplibre/maplibre-gl-native/#xxx](https://github.com/maplibre/maplibre-gl-native/issues/xxx)
+
+```
+cd platform/android
+
+# generate the required build files and open the project with Android Studio
+make aproj
+
+# Build package
+BUILDTYPE=Debug make apackage
+# BUILDTYPE=Release make apackage
+
+# Build release Test App
+make android
+
+# Generate javadoc
+make android-javadoc
+```
+
+### Linux
+
+run `make android-configuration` in the root folder of the project and open in Android Studio.
+
+If you are using Arch Linux, install [ncurses5-compat-libs](https://aur.archlinux.org/packages/ncurses5-compat-libs).
+
+## Project configuration
+
+### Setup Checkstyle
+
+Mapbox uses specific IDE settings related to code and check style.
+See [checkstyle guide](https://github.com/mapbox/mapbox-gl-native-android/wiki/Setting-up-Mapbox-checkstyle) for configuration details.
+
+#### Resolving duplicate file entries
+With buck build support, Android Studio can complain about duplicate source files. To remove this warning, open `MapboxGLAndroidSDK.iml` find the list of `excludeFolder` entries and add `` line.
+
+### Setting API Key
+
+_The test application (used for development purposes) uses MapTiler vector tiles, which require a MapTiler account and API key._
+
+With the first gradle invocation, gradle will take the value of the `MGL_API_KEY` environment variable and save it to `MapboxGLAndroidSDKTestApp/src/main/res/values/developer-config.xml`. If the environment variable wasn't set, you can edit `developer-config.xml` manually and add your api key to the `api_key` resource.
+
+## Running project
+
+Run the configuration for the `MapboxGLAndroidSDKTestApp` module and select a device or emulator to deploy on. Based on the selected device, the c++ code will be compiled for the related processor architecture. You can see the project compiling in the `View > Tool Windows > Gradle Console`.
+
+More information about building and distributing this project in [DISTRIBUTE.md](DISTRIBUTE.md).
+
+## Additional resources
+
+### Using the SDK snapshot
+
+Instead of using the latest stable release of the Maps SDK for Android, you can use a "snapshot" or the beta version if there is one available. Our snapshots are built every time a Github pull request adds code to this repository's `master` branch. If you'd like to use a snapshot build, your Android project's gradle file should have -SNAPSHOT appended to the SDK version number:
+
+```java
+// Mapbox SDK dependency
+implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.1.0-SNAPSHOT'
+```
+
+You also need to have the section below in your build.gradle root folder to be able to resolve the SNAPSHOT dependencies:
+```
+allprojects {
+ repositories {
+ jcenter()
+ maven { url 'https://oss.jfrog.org/artifactory/oss-snapshot-local/' }
+ }
+}
+```
+
+### Symbolicating native crashes
+
+When hitting native crashes you can use ndk-stack to symbolicate crashes.
+More information in [this](https://github.com/mapbox/mapbox-gl-native-android/wiki/Getting-line-numbers-from-an-Android-crash-with-ndk-stack) guide.
diff --git a/platform/android/README.md b/platform/android/README.md
index 6d2b36064..e07ce0318 100644
--- a/platform/android/README.md
+++ b/platform/android/README.md
@@ -1,131 +1,50 @@
-# MapLibre Maps SDK for Android
+# MapLibre GL Native for Android
-The MapLibre Maps SDK for Android is a library based on MapLibre GL Native for embedding interactive map views with scalable, customizable vector maps onto Android devices.
+[](https://github.com/maplibre/maplibre-gl-native/actions/workflows/android-ci.yml) [](https://github.com/maplibre/maplibre-gl-native/actions/workflows/android-release.yml)
+
+MapLibre GL Native for Android is a library for embedding interactive map views with scalable, customizable vector maps onto Android devices.
## Getting Started
-This particular README is for people who are interested in working on and improving the Maps SDK for Android. If you're looking for more general information and instructions on the Maps SDK:
+1. Add bintray Maven repositories to your `build.gradle` at project level so that you can access MapLibre packages for Android:
-Visit [https://docs.mapbox.com/android/maps/overview](https://docs.mapbox.com/android/maps/overview/) to see current documentation on the Maps SDK for Android.
+ ```gradle
+ allprojects {
+ repositories {
+ ...
+ mavenCentral()
+ }
+ }
+ ```
-Visit [https://docs.mapbox.com/android/api/map-sdk](https://docs.mapbox.com/android/api/map-sdk/) to view the Maps SDK's current API reference Javadoc files.
+ > **Note**
+ >
+ > [Bintray was turn off May 1st, 2021](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/) so we migrated all packages to Maven central.
-See [the Mapbox website's Android install flow](https://www.mapbox.com/install/android/) to install and use the Mapbox Maps SDK for Android in an application.
+2. Add the library as a dependency into your module build.gradle
-### Setup environment
+ ```gradle
+ dependencies {
+ ...
+ implementation 'org.maplibre.gl:android-sdk:'
+ ...
+ }
+ ```
-These instructions are for developers interested in making code-level contributions to the SDK itself. If you instead want to use the SDK in your app, see above.
+3. Sync Gradle and rebuild your app.
-#### Getting the source
+> **Note**
+> MapLibre by default ships with the proprietary Google Play Location Services. If you want to avoid pulling proprietary dependencies into your project, you can exclude Google Play Location Services as follows:
+> ```gradle
+> implementation ('org.maplibre.gl:android-sdk:') {
+> exclude group: 'com.google.android.gms'
+> }
+> ```
-Clone the git repository and pull in submodules:
+## Documentation
-```bash
-git clone git@github.com:mapbox/mapbox-gl-native-android.git && cd mapbox-gl-native-android
-git submodule update --init --recursive
-```
+Visit [https://maplibre.org/maplibre-gl-native/android/api/](https://maplibre.org/maplibre-gl-native/android/api/) to view the current API reference Javadoc files for MapLibre GL Native for Android.
-#### Installing dependencies
+## Contributing
-These dependencies are required for all operating systems and all platform targets.
-
-- Latest stable [Android Studio](https://developer.android.com/studio/index.html)
-- Update the Mapbox Maps SDK for Android with the latest
- - Android SDK Build-Tools
- - Android Platform-Tools
- - Android SDK Tools
- - CMake
- - NDK
- - LLDB
-- Modern C++ compiler that supports `-std=c++14`\*
- - clang++ 3.5 or later or
- - g++-4.9 or later
-- [Node.js](https://nodejs.org/)
- - make sure [npm](https://www.npmjs.com) is installed as well
-- [ccache](https://ccache.samba.org/) (optional)
-
-**Note**: We partially support C++14 because GCC 4.9 does not fully implement the
-final draft of the C++14 standard. More information in [DEVELOPING.md](../../DEVELOPING.md).
-
-**Note**: On macOS you can install clang with installing the [Apple command line developer tools](https://developer.apple.com/download/).
-
-### Opening the project
-
-#### macOS
-
-* Environment: Android Studio + NDK
- * `JAVA_HOME=/Applications/Android Studio.app/Contents/jre/Contents/Home`
- * `ANDROID_SDK_ROOT=~/Library/Android/sdk`
- * See NDK version discussion on issue: [maplibre/maplibre-gl-native/#xxx](https://github.com/maplibre/maplibre-gl-native/issues/xxx)
-
-```
-cd platform/android
-
-# generate the required build files and open the project with Android Studio
-make aproj
-
-# Build package
-BUILDTYPE=Debug make apackage
-# BUILDTYPE=Release make apackage
-
-# Build release Test App
-make android
-
-# Generate javadoc
-make android-javadoc
-```
-
-#### linux
-
-run `make android-configuration` in the root folder of the project and open in Android Studio.
-
-If you are using Arch Linux, install [ncurses5-compat-libs](https://aur.archlinux.org/packages/ncurses5-compat-libs).
-
-### Project configuration
-
-#### Setup Checkstyle
-
-Mapbox uses specific IDE settings related to code and check style.
-See [checkstyle guide](https://github.com/mapbox/mapbox-gl-native-android/wiki/Setting-up-Mapbox-checkstyle) for configuration details.
-
-#### Resolving duplicate file entries
-With buck build support, Android Studio can complain about duplicate source files. To remove this warning, open `MapboxGLAndroidSDK.iml` find the list of `excludeFolder` entries and add `` line.
-
-##### Setting API Key
-
-_The test application (used for development purposes) uses MapTiler vector tiles, which require a MapTiler account and API key._
-
-With the first gradle invocation, gradle will take the value of the `MGL_API_KEY` environment variable and save it to `MapboxGLAndroidSDKTestApp/src/main/res/values/developer-config.xml`. If the environment variable wasn't set, you can edit `developer-config.xml` manually and add your api key to the `api_key` resource.
-
-### Running project
-
-Run the configuration for the `MapboxGLAndroidSDKTestApp` module and select a device or emulator to deploy on. Based on the selected device, the c++ code will be compiled for the related processor architecture. You can see the project compiling in the `View > Tool Windows > Gradle Console`.
-
-More information about building and distributing this project in [DISTRIBUTE.md](DISTRIBUTE.md).
-
-### Additional resources
-
-#### Using the SDK snapshot
-
-Instead of using the latest stable release of the Maps SDK for Android, you can use a "snapshot" or the beta version if there is one available. Our snapshots are built every time a Github pull request adds code to this repository's `master` branch. If you'd like to use a snapshot build, your Android project's gradle file should have -SNAPSHOT appended to the SDK version number:
-
-```java
-// Mapbox SDK dependency
-implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.1.0-SNAPSHOT'
-```
-
-You also need to have the section below in your build.gradle root folder to be able to resolve the SNAPSHOT dependencies:
-```
-allprojects {
- repositories {
- jcenter()
- maven { url 'https://oss.jfrog.org/artifactory/oss-snapshot-local/' }
- }
-}
-```
-
-
-#### Symbolicating native crashes
-
-When hitting native crashes you can use ndk-stack to symbolicate crashes.
-More information in [this](https://github.com/mapbox/mapbox-gl-native-android/wiki/Getting-line-numbers-from-an-Android-crash-with-ndk-stack) guide.
+See [`DEVELOPING.md`](./DEVELOPING.md) for instructions on how to get started working on the codebase.
diff --git a/platform/ios/BAZEL.md b/platform/ios/BAZEL.md
new file mode 100644
index 000000000..c52e24c38
--- /dev/null
+++ b/platform/ios/BAZEL.md
@@ -0,0 +1,62 @@
+# Building using Bazel
+
+[Bazel](https://bazel.build) is also supported as a build option for getting a packaged release of the xcframework compiled for either static or dynamic linking.
+
+Firstly you will have to ensure that Bazel is installed
+
+`brew install baselisk`
+
+From there you can use the script in platform/ios/platform/ios/scripts/package-bazel.sh
+
+## There are 4 options:
+
+`cd platform/ios/platform/ios/scripts`
+
+Static xcframework compiled for release (this is default if no parameters are provided):
+`./bazel-package.sh --static --release`
+
+Static xcframework compiled for debug:
+`./bazel-package.sh --static --debug`
+
+Dynamic xcframework compiled for release:
+`./bazel-package.sh --dynamic --release`
+
+Dynamic xcframework compiled for debug:
+`./bazel-package.sh --dynamic --debug`
+
+All compiled frameworks will end up in the `bazel-bin/platform/ios/` path from the root of the repo.
+
+Also you can use the link option to ensure that the framework is able to link.
+
+`./bazel-package.sh --link`
+
+#### Bazel build files are placed in a few places throughout the project:
+
+`BUILD.bazel`
+- Covering the base cpp in the root `src` directory.
+
+`vendor/BUILD.bazel`
+- Covering the submodule dependencies of Maplibre.
+
+`platform/default/BUILD.bazel`
+- Covering the cpp dependencies in default.
+
+`platform/darwin/BUILD.bazel`
+- Covering the cpp source in platform/default.
+
+`platform/ios/platform/ios/vendor/`
+- Covering the iOS specific dependencies.
+
+`platform/ios/BUILD.bazel`
+- Covering the source in `platform/ios/platform/ios/src` and `platform/ios/platform/darwin/src` as well as defining all the other BUILD.bazel files and defining the xcframework targets.
+
+## There are also some other areas that make bazel work:
+
+`WORKSPACE`
+- Defines the "repo" and the different modules that are loaded in order to compile for Apple.
+
+`.bazelversion`
+- Defines the version of bazel used, important for specific support for Apple targets.
+
+`bazel/flags.bzl`
+- Defines some compilation flags that are used between the different build files.
\ No newline at end of file
diff --git a/platform/ios/CONTRIBUTING.md b/platform/ios/CONTRIBUTING.md
index 63ac3176c..0372efdab 100644
--- a/platform/ios/CONTRIBUTING.md
+++ b/platform/ios/CONTRIBUTING.md
@@ -1,34 +1,15 @@
# Contributing
-If you have a usage question for a product built on Mapbox GL (such as our iOS or Android SDKs), please visit https://www.mapbox.com/help/.
+If you have a usage question for a product built on Maplibre GL Native (such as our iOS or Android SDKs), please create a discussion thread on [GitHub Discussions](https://github.com/maplibre/maplibre-gl-native/discussions/categories/q-a).
If you want to contribute code:
-1. Please familiarize yourself with the [install process](INSTALL.md).
+1. Please familiarize yourself with the [install process](./INSTALL.md).
-1. Ensure that existing [pull requests](https://github.com/mapbox/mapbox-gl-native-ios/pulls) and [issues](https://github.com/mapbox/mapbox-gl-native-ios/issues) don’t already cover your contribution or question.
+1. Ensure that existing [pull requests](https://github.com/maplibre/maplibre-gl-native/pulls?q=is%3Aopen+is%3Apr+label%3AiOS) and [issues](https://github.com/maplibre/maplibre-gl-native/issues?q=is%3Aopen+is%3Aissue+label%3AiOS) don’t already cover your contribution or question.
-1. Pull requests are gladly accepted. If there are any changes that developers using one of the GL SDKs should be aware of, please update the **master** section of the relevant changelog(s):
- * [Mapbox Maps SDK for iOS](platform/ios/CHANGELOG.md)
- * [Mapbox Maps SDK for macOS](platform/macos/CHANGELOG.md)
+2. Pull requests are gladly accepted. If there are any changes that developers using one of the GL SDKs should be aware of, please update the **main** section of the [iOS changelog](platform/ios/CHANGELOG.md) or [macOS changelog](platform/macos/CHANGELOG.md).
-1. Prefix your commit messages with the platform(s) your changes affect: `[ios]` or `[macos]`.
+3. Prefix your commit messages with the platform(s) your changes affect: `[ios]` or `[macos]`.
Please note the special instructions for contributing new source code files, asset files, or user-facing strings to the [iOS SDK](platform/ios/DEVELOPING.md#contributing) or [macOS SDK](platform/macos/DEVELOPING.md#contributing).
-
-### Github issue labels
-
-Our labeling system is:
-
- * **minimalistic:** Labels’ usefulness are inversely proportional to how many we have.
- * **objective:** Labels should be objective enough that any two people would agree on a labeling decision.
- * **useful:** Labels should track state or capture semantic meaning that would otherwise be hard to search for.
-
-We’ve color-coded our labels by facet to make them easier to use:
-
- * type (blue)
- * platform (black)
- * actionable status (red)
- * non-actionable status (grey)
- * importance / urgency (green)
- * topic / project / misc (yellow)
diff --git a/platform/ios/README.md b/platform/ios/README.md
index ecbcdbe1c..a6164d8c0 100644
--- a/platform/ios/README.md
+++ b/platform/ios/README.md
@@ -1,9 +1,11 @@
-# MapLibre Maps SDKs for iOS and macOS
+# MapLibre GL Native for iOS and macOS
+
+MapLibre GL Native for iOS and macOS is an open-source framework for embedding interactive map views with scalable, customizable vector maps into Cocoa Touch applications on iOS 9.0 and above using Objective-C, Swift, or Interface Builder. It takes stylesheets that conform to the [MapLibre GL Style Specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/), applies them to vector tiles that conform to the [Mapbox Vector Tile Specification](https://www.mapbox.com/developers/vector-tiles/), and renders them using OpenGL. It is based on the MapLibre GL Native library.
+
+- [MapLibre GL Native for iOS](platform/ios/README.md)
+- [MapLibre GL Native for macOS](platform/macos/README.md)
-The MapLibre Maps SDK for iOS is an open-source framework for embedding interactive map views with scalable, customizable vector maps into Cocoa Touch applications on iOS 9.0 and above using Objective-C, Swift, or Interface Builder. It takes stylesheets that conform to the [MapLibre GL Style Specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/), applies them to vector tiles that conform to the [Mapbox Vector Tile Specification](https://www.mapbox.com/developers/vector-tiles/), and renders them using OpenGL. It is based on the MapLibre GL Native library.
## License
-MapLibre GL Native is licensed under the [2-Clause BSD license](LICENSE.md). The licenses of its dependencies are tracked via [FOSSA](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmapbox%2Fmapbox-gl-native):
-
-[](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmapbox%2Fmapbox-gl-native)
+MapLibre GL Native is licensed under the [2-Clause BSD license](LICENSE.md).
diff --git a/platform/ios/platform/ios/DEVELOPING.md b/platform/ios/platform/ios/CONTRIBUTING.md
similarity index 91%
rename from platform/ios/platform/ios/DEVELOPING.md
rename to platform/ios/platform/ios/CONTRIBUTING.md
index 95949a36c..d5073c097 100644
--- a/platform/ios/platform/ios/DEVELOPING.md
+++ b/platform/ios/platform/ios/CONTRIBUTING.md
@@ -1,6 +1,6 @@
-# Contributing to the Mapbox Maps SDK for iOS
+# Contributing to MapLibre GL Native for iOS
-This document explains how to build the Mapbox Maps SDK for iOS from source. It is intended for advanced developers who wish to contribute to Mapbox GL and the Mapbox Maps SDK for iOS.
+This document explains how to build MapLibre GL Native for iOS from source. It is intended for advanced developers who wish to contribute to the library.
## Requirements
@@ -16,6 +16,9 @@ make iproj
# make Xcode workspace, but run in headless mode
make iproj CI=1
+
+# Make Frameworks
+make xcframework BUILDTYPE=Release
```
### Xcode schemes
@@ -88,7 +91,7 @@ To add any Objective-C type, constant, or member to the iOS SDK’s public inter
1. Ensure that the symbol is pure Objective-C and does not rely on any language features specific to Objective-C++ or the C11 dialect of C – so no namespaced types or classes named with emoji! 🙃 Most projects that depend on this SDK are either written in pure Objective-C (GNU99 dialect) or Swift, which cannot yet bridge C++ types.
1. Name the symbol according to [Cocoa naming conventions](https://developer.apple.com/library/prerelease/content/documentation/Cocoa/Conceptual/CodingGuidelines/CodingGuidelines.html#//apple_ref/doc/uid/10000146i). Use the `MGL` class prefix to avoid conflicts with client code. If the symbol has an analogue in MapKit, name the symbol according to MapKit.
-1. Provide full documentation comments. We use [jazzy](https://github.com/realm/jazzy/) to produce the documentation found in the SDK distribution and [on the website for this SDK](https://docs.mapbox.com/ios/api/maps/). We also recognize that many developers rely on Xcode’s Quick Help feature. jazzy supports Markdown formatting; however, Quick Help supports only [HeaderDoc](https://developer.apple.com/legacy/library/documentation/DeveloperTools/Conceptual/HeaderDoc/intro/intro.html) syntax and a subset of Doxygen syntax. For hyperlinks, use HTML syntax, which is recognized by both tools.
+1. Provide full documentation comments. We use [jazzy](https://github.com/realm/jazzy/) to produce the documentation found in the SDK distribution and [on the website for this SDK](https://maplibre.org/maplibre-gl-native/ios/api/). We also recognize that many developers rely on Xcode’s Quick Help feature. jazzy supports Markdown formatting; however, Quick Help supports only [HeaderDoc](https://developer.apple.com/legacy/library/documentation/DeveloperTools/Conceptual/HeaderDoc/intro/intro.html) syntax and a subset of Doxygen syntax. For hyperlinks, use HTML syntax, which is recognized by both tools.
### Making a type or constant public
@@ -130,6 +133,9 @@ To add or update text that the user may see in the iOS maps SDK:
### Adding a localization
+> **Warning**
+> This section is outdated.
+
Translations of all the Mapbox GL Native SDKs are managed [in Transifex](https://www.transifex.com/mapbox/mapbox-gl-native/). If your language already has a translation, feel free to complete or proofread it. Otherwise, please [request your language](https://www.transifex.com/mapbox/mapbox-gl-native/languages/). Note that we’re primarily interested in languages that iOS supports as system languages.
Once you’ve finished translating the SDK into a new language in Transifex, perform these steps to make Xcode aware of the translation:
@@ -185,6 +191,7 @@ You can review test results in `$(IOS_OUTPUT_PATH)/Logs/Test`.
* `make ios-static-analyzer` runs unit tests from the "CI" scheme with the Static Analyzer enabled.
* `make ios-uitest` runs user interface testing from the "iosapp" scheme.
+
These commands are run by default on a single Simulator. To enable legacy iOS versions and more device types, add `MORE_SIMULATORS=YES`. Use `IOS_LATEST=YES`, `IOS_11=YES`, etc. to test on specific iOS versions.
To only run a specific test or class of tests, add `ONLY_TESTING=test/MGLNameOfTestClass/testNameOfTest`.
@@ -194,8 +201,8 @@ To skip a specific test or class of tests, add `SKIP_TESTING=test/MGLNameOfTestC
To run the cross-platform tests in Xcode instead of on the command line:
1. Run `make iproj` to set up the workspace.
-1. Change the scheme to “test (platform project)” and press Command-R (⌘-R) to run core unit tests.
-1. Change the scheme to “CI” and press Command-U (⌘-U) to run SDK integration tests.
+2. Change the scheme to “test (platform project)” and press Command-R (⌘-R) to run core unit tests.
+3. Change the scheme to “CI” and press Command-U (⌘-U) to run SDK integration tests.
### Testing from the command line
@@ -220,6 +227,9 @@ xcodebuild test -scheme CI -testPlan CI-Expressions \
## Access tokens
+> **Warning**
+> This section is outdated.
+
The included applications use Mapbox vector tiles, which require a Mapbox account and API access token. Obtain an access token on the [Mapbox account page](https://www.mapbox.com/studio/account/tokens/).
Before running the demo ("`iosapp`") or benchmarking ("`bench`") applications, first create a new text file called `.mapbox` or `mapbox` in your home directory containing your access token. The access token will then be automatically inserted into the application's Info.plist at runtime.
@@ -233,3 +243,7 @@ Before running the demo ("`iosapp`") or benchmarking ("`bench`") applications, f
- Two-finger single-tap to zoom out one level
- Double-tap, long-pressing the second, then pan up and down to "quick zoom" (meant for one-handed use)
- Use the debug menu to add test annotations, reset position, and cycle through the debug options.
+
+## Simulator
+
+You can run automated test on a Simulator or Device by changing to the Scheme `iosapp` and choosing `Product` > `Test` (or use `⌘-U`). Use `⌘-9` to navigate to `Reports` to see results and browse through screenshots. This method of testing should work well with CI tools such as GitHub Actions, Xcode Server Bots, & AWS Device Farm.
diff --git a/platform/ios/platform/ios/README.md b/platform/ios/platform/ios/README.md
index e184a1711..75d9227aa 100644
--- a/platform/ios/platform/ios/README.md
+++ b/platform/ios/platform/ios/README.md
@@ -1,15 +1,25 @@
-# [Mapbox Maps SDK for iOS](https://docs.mapbox.com/ios/maps/)
+# MapLibre GL Native for iOS
-[](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master)
+[](https://github.com/maplibre/maplibre-gl-native/actions/workflows/ios-ci.yml) [](https://github.com/maplibre/maplibre-gl-native/actions/workflows/ios-release.yml)
-A library based on [Mapbox GL Native](https://github.com/mapbox/mapbox-gl-native/blob/master/README.md) for embedding interactive map views with scalable, customizable vector maps into Cocoa Touch applications on iOS using Objective-C, Swift, or Interface Builder.
+A library based on [MapLibre GL Native](https://github.com/maplibre/maplibre-gl-native) for embedding interactive map views with scalable, customizable vector maps into Cocoa Touch applications on iOS using Objective-C, Swift, or Interface Builder.
-This repository is for day-to-day development of the SDK. Building the SDK yourself requires [a number of dependencies and steps](../../INSTALL.md) that are unnecessary for developing production applications. For production applications, please consider installing an official, prebuilt release instead; see the [Mapbox Maps SDK for iOS website](https://docs.mapbox.com/ios/maps/) for installation instructions.
-
-This repository contains releases of the Mapbox Maps SDK from v5.5.0-alpha.3 on. Releases prior to Maps SDK for iOS v5.5.0-alpha.2 can be downloaded via CocoaPods, Carthage, and the [Mapbox GL Native releases page](https://github.com/mapbox/mapbox-gl-native/releases).
-
-* [Integrate the Mapbox Maps SDK for iOS into your application](https://www.mapbox.com/install/ios/).
* [Learn about custom builds](INSTALL.md)
-* [Contribute to the Mapbox Maps SDK for iOS](DEVELOPING.md)
-
\ No newline at end of file
+
+
+## Getting Started
+
+1. To add a package dependency to your Xcode project, select File > Swift Packages > Add Package Dependency and enter its repository URL. You can also navigate to your target’s General pane, and in the “Frameworks, Libraries, and Embedded Content” section, click the + button, select Add Other, and choose Add Package Dependency.
+
+2. Either add MapLibre GitHub distribution URL (https://github.com/maplibre/maplibre-gl-native-distribution) or search for `maplibre-gl-native` package.
+
+3. Choose "next". Xcode should clone the distribution repository and download the binaries.
+
+## Documentation
+
+- [MapLibre GL Native for iOS API Reference](https://maplibre.org/maplibre-gl-native/ios/api/)
+
+## Contributing
+
+See [`CONTRIBUTING.md`](./CONTRIBUTING.md).
diff --git a/platform/ios/platform/macos/README.md b/platform/ios/platform/macos/README.md
index 8c856ae39..d90b777ff 100644
--- a/platform/ios/platform/macos/README.md
+++ b/platform/ios/platform/macos/README.md
@@ -1,30 +1,22 @@
-# [Mapbox Maps SDK for macOS](https://mapbox.github.io/mapbox-gl-native/macos/)
+# MapLibre GL Native for macOS
-[](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native-ios/tree/master)
+[](https://github.com/maplibre/maplibre-gl-native/actions/workflows/macos-ci.yml) [](https://github.com/maplibre/maplibre-gl-native/actions/workflows/macos-release.yml)
-Put interactive, scalable world maps into your native Cocoa application with the Mapbox Maps SDK for macOS.
+Put interactive, scalable world maps into your native Cocoa application with MapLibre GL Native for macOS.
-* Mapbox-curated [map styles](https://www.mapbox.com/maps/) and [OpenStreetMap-based](https://www.mapbox.com/vector-tiles/mapbox-streets-v7/) [vector tiles](https://www.mapbox.com/vector-tiles/) make it easy to get started.
-* Customize every aspect of the map’s appearance in code or visually using [Mapbox Studio](https://www.mapbox.com/mapbox-studio/).
* High-performance OpenGL rendering and multitouch gestures keep your users happy.
* A well-designed, fully documented API helps you stay productive.
* Develop across [multiple platforms](../../README.md), including [iOS](../ios/README.md), using the same styles and similar APIs.

-The Mapbox Maps SDK for macOS is compatible with macOS 10.10.0 and above for Cocoa applications developed in Objective-C, Swift, Interface Builder, or AppleScript. For hybrid applications, consider [Mapbox GL JS](https://github.com/mapbox/mapbox-gl-js/).
+MapLibre GL Native for macOS is compatible with macOS 10.10.0 and above for Cocoa applications developed in Objective-C, Swift, Interface Builder, or AppleScript. For hybrid applications, consider [MapLibre GL JS]([https://github.com/mapbox/mapbox-gl-js/](https://github.com/maplibre/maplibre-gl-js)).
-Information for Mac developers:
+## Contributing
-* [Integrate the Mapbox Maps SDK for macOS into your application](https://mapbox.github.io/mapbox-gl-native/macos/)
-* [Learn how to use the Mapbox Maps SDK for macOS](https://mapbox.github.io/mapbox-gl-native/macos/)
-* [Browse example styles designed in Mapbox Studio](https://www.mapbox.com/gallery/)
-
-Information for contributors:
-
-* [Build the Mapbox Maps SDK for macOS from source](INSTALL.md)
-* [Contribute to the Mapbox Maps SDK for macOS](DEVELOPING.md)
+* [Build the MapLibre GL Native for macOS from source](INSTALL.md)
+* [Contribute to MapLibre GL Native for macOS](CONTRIBUTING.md)
* [Mapbox Style Specification](https://www.mapbox.com/mapbox-gl-style-spec/)
* [Mapbox Vector Tile Specification](https://www.mapbox.com/developers/vector-tiles/)
-Mapbox does not officially support the macOS SDK to the same extent as the iOS SDK; however, bug reports and pull requests are certainly welcome.
+The MapLibre Organization does not officially support the macOS to the same extent as iOS (see [project tiers](https://github.com/maplibre/maplibre/blob/main/PROJECT_TIERS.md)); however, bug reports and pull requests are certainly welcome.
diff --git a/platform/qt/README.md b/platform/qt/README.md
index 8c501258e..8817dc125 100644
--- a/platform/qt/README.md
+++ b/platform/qt/README.md
@@ -1,4 +1,6 @@
-# MapLibre Maps SDK for Qt
+# MapLibre GL Native for Qt
+
+[](https://github.com/maplibre/maplibre-gl-native/actions/workflows/qt-ci.yml)
This is a community maintained MapLibre SDK for usage in Qt apps.
Both Qt5 (minimal 5.6) and Qt6 are supported.