fix(android): allow overriding CMake version for Windows long-path builds#265
Open
mfazekas wants to merge 3 commits into
Open
fix(android): allow overriding CMake version for Windows long-path builds#265mfazekas wants to merge 3 commits into
mfazekas wants to merge 3 commits into
Conversation
…ilds On Windows the NDK default CMake (3.22.1) fails when object-file paths exceed MAX_PATH (260 chars). A newer CMake (3.31.6) handles this. Add Rive_CmakeVersion gradle property / CMAKE_VERSION env var to opt in.
HayesGordon
reviewed
May 21, 2026
|
|
||
| </details> | ||
|
|
||
| ## Building on Windows (CMake long-path failures) |
Contributor
There was a problem hiding this comment.
Mind adding this to the docs as well?
Contributor
There was a problem hiding this comment.
Also, I see we're referencing the reanimated docs, is that intentional?
Collaborator
Author
There was a problem hiding this comment.
Yeah that was intentional. We can also copy the relevant parts to our docs.
There was a problem hiding this comment.
Pull request overview
This PR addresses Windows-specific Android build failures caused by long/absolute CMake object-file paths by allowing consumers to override the CMake version via an environment variable.
Changes:
- Documented the Windows Android build failure mode and recommended using a newer CMake.
- Added support in Gradle to override the CMake version using the
CMAKE_VERSIONenvironment variable.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| README.md | Adds Windows build guidance and instructions for using CMAKE_VERSION to mitigate long-path CMake/Ninja failures. |
| android/build.gradle | Reads CMAKE_VERSION from the environment and applies it to the Android Gradle externalNativeBuild CMake configuration. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| ## Building on Windows (CMake long-path failures) | ||
|
|
||
| On Windows, the Android build can fail with `ninja: error: mkdir(CMakeFiles/rive.dir/...): No such file or directory` due to the Windows `MAX_PATH` (260 character) limit. This is a [known issue across React Native libraries that use CMake](https://docs.swmansion.com/react-native-reanimated/docs/guides/building-on-windows/). Set `CMAKE_VERSION=3.31.6` before building — see the Reanimated docs for full setup instructions. |
|
|
||
| ## Building on Windows (CMake long-path failures) | ||
|
|
||
| On Windows, the Android build can fail with `ninja: error: mkdir(CMakeFiles/rive.dir/...): No such file or directory` due to the Windows `MAX_PATH` (260 character) limit. This is a [known issue across React Native libraries that use CMake](https://docs.swmansion.com/react-native-reanimated/docs/guides/building-on-windows/). Set `CMAKE_VERSION=3.31.6` before building — see the Reanimated docs for full setup instructions. |
Comment on lines
+72
to
+73
| // On Windows the NDK default CMake (3.22.1) fails when object-file | ||
| // paths exceed MAX_PATH (260 chars). Set CMAKE_VERSION=3.31.6 to fix. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #263
On Windows, the Android build fails when CMake object-file paths exceed
MAX_PATH(260 chars). The NDK default CMake (3.22.1) can't handle the deeply-nested paths from Nitrogen's generated sources.This is a known issue across React Native libraries that use CMake. Adds support for the
CMAKE_VERSIONenv var (same as Reanimated) so users can opt into a newer CMake (e.g. 3.31.6) that handles long paths.