From the information I got, in the Android 7 build system :
And I also found in the help page that CMake includes a Ninja generator.
EDIT :
CMake is included in the platform/prebuilts, but not included in the Android 7 manifests
But I checked the android code again , there being so many CMakeLists.txt and CMake being called in some scripts under /external.
./external/clang/CMakeLists.txt:686: get_cmake_property(variableNames VARIABLES)
./external/clang/CMakeLists.txt:711: ${cmake_3_1_EXCLUDE_FROM_ALL}
./external/clang/CMakeLists.txt:725: ${cmake_3_4_USES_TERMINAL_OPTIONS}
./external/clang/CMakeLists.txt:734: ${cmake_3_4_USES_TERMINAL}
./external/clang/CMakeLists.txt:750: ${cmake_3_4_USES_TERMINAL}
./external/clang/runtime/CMakeLists.txt:28: set(cmake_3_4_USES_TERMINAL_OPTIONS
./external/clang/runtime/CMakeLists.txt:49: get_cmake_property(variableNames VARIABLES)
./external/clang/runtime/CMakeLists.txt:78: ${cmake_3_4_USES_TERMINAL_OPTIONS}
./external/dbus/cmake/cross-compile.sh
./external/compiler-rt/lib/tsan/check_cmake.sh
./external/opencv3/platforms/scripts/cmake_android_mips.sh
./external/opencv3/platforms/scripts/cmake_arm_gnueabi_softfp.sh
./external/opencv3/platforms/scripts/cmake_carma.sh
./external/opencv3/platforms/scripts/cmake_android_x86.sh
./external/opencv3/platforms/scripts/cmake_android_arm.sh
./external/opencv3/platforms/scripts/cmake_arm_gnueabi_hardfp.sh
./external/opencv3/platforms/scripts/cmake_android_service.sh
./external/opencv3/samples/android/hello-android/cmake_android.sh
Also, CMake exist under folder
butter@server131:~/code/AOSP/N$ find ./ -name "cmake"
./prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8/sysroot/usr/lib/cmake
./prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.15-4.8/sysroot/usr/lib32/cmake
./external/dbus/cmake
./external/llvm/cmake
./external/compiler-rt/cmake
./external/deqp/framework/delibs/cmake
./external/eigen/cmake
./external/eigen/bench/btl/cmake
./external/ceres-solver/cmake
./external/google-benchmark/cmake
./external/libcxx/cmake
./external/libcxxabi/cmake
./external/opencv3/platforms/ios/cmake
./external/opencv3/cmake
./external/clang/cmake
./external/google-breakpad/src/testing/gtest/cmake
./external/libunwind_llvm/cmake
./external/pcre/dist/cmake
So if the Soong could generate .ninja files , what is CMake's role in the Android 7 build system? Just an alternative choice or just not fully replaced by the Soong yet?
Starting in 2.2, Android Studio on 64 bit OS, supports building C/C++ via CMake and ndk-build through stable gradle.
In both cases, Gradle is configured to point at the external build system. It interrogates the external build system to determine a list of all C/C++ sources that are being built in the project and uses this list to populate the Studio project, enabling editing and debugging inside Studio while still using the external build system to compile and link the C/C++ sources.
There is a set of maintained CMake NDK samples here.