Contents

rallista/valhalla-mobile

This project builds [valhalla](https://github.com/valhalla/valhalla) as a static iOS or shared Android library.

Setup

Android

Using a libs.versions.toml with a build.gradle.kts

[verisons]
valhallaMobile = "0.1.0"
[libraries]
valhalla-mobile = { group = "io.github.rallista", name = "valhalla-mobile", version.ref = "valhallaMobile" }
implementation(libs.valhalla.mobile)

Using a standard build.gradle.kts

implementation("io.github.rallista:valhalla-mobile:0.1.0")

Using a standard build.gradle

implementation 'io.github.rallista:valhalla-mobile:0.1.0'

iOS

In a swift package:

let package = Package(
    dependencies: [
        .package(url: "https://github.com/rallista/valhalla-mobile.git", from: "0.1.0"),
    ],
    targets: [
        .target(
            dependencies: [
                .product(name: "Valhalla", package: "valhalla-mobile")
            ]
        ),
    ]
)

Manually Building Valhalla C++

Fetching submodules

git submodule update --init --recursive

Set up VCPKG

git clone https://github.com/microsoft/vcpkg && git -C vcpkg checkout 2025.12.12
./vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=`pwd`/vcpkg

iOS Swift Package

On iOS, you must pre-build the xcframework using the command:

./build.sh ios clean

Android

Prerequisites: See development.md, specifically setting up NDK 29.0.14206865 to match CI.

The project's build.gradle.kts includes a build task that automatically runs the script below selectively per architecture. It's also possible to run this manually:

./build.sh android clean

Valhalla Fork

This project uses our fork of valhalla at <https://github.com/Rallista/valhalla> as a submodule. If a feature is missing, please open an issue or PR on that repository to upgrade it to valhalla's latest version.

References

  • Valhalla <https://github.com/valhalla/valhalla>
  • Swift Package Manager C++ (for fun - this repo takes the old approach) <https://www.swift.org/documentation/articles/wrapping-c-cpp-library-in-swift.html>

Package Metadata

Repository: rallista/valhalla-mobile

Default branch: main

README: README.md