* Allow using specific NDK version, for CI don't use latest but required
* Default to highest available NDK version within same major release sequence
* Refactor NDK version selection
This makes release builds consistent with continuous builds and default
local builds. It also makes it easier to test the Vulkan backend.
Clients who need a smaller APK size can always make their own build.
This also makes filament-android-release.aar go from 1.8M to 2.3M.
Note that we are now including bluevk, vkshaders (for the blit shader),
smol-v (for SPIRV decompression) and vk_mem_alloc (for mem allocation).
The presence of a special Gradle property is now used to exclude Vulkan
support from the build. By making Vulkan "always on" for local
development, we can avoid stale CMake cache issues that arise from
toggling the Gradle property. It also lets you avoid adding the flag
to Android Studio preferences.
This is motivated by testing and does not indicate production readiness.
Clients still need to pass VULKAN into the Engine constructor to select
the Vulkan backend.
To keep APK size down and keep CI fast, we are continuing to exclude
Vulkan from official Android builds.
After syncing this change, you might need to use `./build.sh -c` to
clobber various build caches.
- Added an extra README file detailing what the scripts are for
- The scripts now display a warning and a prompt before requiring user confirmation to continue
- The system install commands are only executed in CI environments (ninja and cmake being installed as root without checking for the environment was a leftover from a previous non-GitHub based CI setup)
* Add Android presubmit
* Build Android on Linux, macOS targets have NDK 18 only
* Consolidate workflows and jobs
* Try to build Android on macOS
* Fix typo
* Cleanup scripts
* Try NDK side by side if NDK bundle has the wrong version
* Simplify logic
* Fix NDK logic
* Only update the NDK when necessary
* Fix typo
* Update required NDK version
* Favor NDK side-by-side
* Remove support for obsolete NDK bundle, require NDK side-by-side
* Install the NDK side by side when missing
Filamat public headers were including a private header. This PR fixes
this problem. It also forces filamat to always be compiled to avoid
breaking filamat without noticing. The flag `-l` is not available
anymore in build.sh as a result.
* Android standalone toolchains are not longer necessary
The latest NDK (19) contains ABI/API level specific command line
tools making standalone toolchains unnecessary. This change adapts
to the new model which greatly simplifies the build script and
ensures the latest version of the tools is being used.
Note that this requires a fairly recent version of CMake which fixes
a bug related to ranlib. This change was tested with CMake 3.13
(CMake 3.7 does not work).
* Modify CI build script to fetch recent CMake
* Remove dependency on standalone toolchains in Windows README
* Use correct CMake path
* Update NDK to latest
* Only download CMake and NDK for Android builds
* Add version constant for ninja
* Make output more quiet