6

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 ?

usr1234567
  • 21,601
  • 16
  • 108
  • 128
0x90
  • 39,472
  • 36
  • 165
  • 245
  • 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
  • 1
    Android.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 Answers1

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