I feel like CMake and Android.mk have a lot in common, can someone please explain to me what are the differences and why did Google invented a new build system and didn't use CMake ?
Asked
Active
Viewed 1,279 times
6
-
I think the number of questions is quite big: why bionic, why dalvik, why not bluez etc. – yegorich Nov 01 '13 at 09:45
-
I agree, but am I right it uses the same features? – 0x90 Nov 01 '13 at 10:22
-
1Android.mk is a part of the whole project build infrastructure and it has many features, that are common with CMake, but they are narrowed down to AOSP needs. CMake is for cross-platform projects with support for finding dependencies/packages, creating software packages etc. – yegorich Nov 01 '13 at 14:32
-
My CMake framework does build, test (and upload results to the dashboard), and package the software, both interactively, continuously, and nightly. It also builds the (LaTeX -> PDF, doxygen -> HTML) documentation. It does this on AIX, Linux, and various flavors of Windows / MSVC. I don't know Android.mk, but from the name alone I'd guess it has somewhat different goals. ;-) – DevSolar Nov 18 '15 at 08:16
1 Answers
1
The Android developers have even more changes in mind. It is now possible to use Ninja-build.
Soong is the longer term plan, and involves replacing all of the Android.mk files throughout the tree with structured data files, and describing the build logic in Go.
Source: https://groups.google.com/forum/#!topic/ninja-build/YPby3GRBqHA
So they invent yet another build system. For Chrome they have already introduced Gyp. I guess there is no central position in Google to coordinate such decisions. The developers can decide on a per-project base what is best for the project. This is actually good. Image that every project with major involvement by Google would switch to build-system X. That'd be annoying.

usr1234567
- 21,601
- 16
- 108
- 128