[CMake] [CMAKE] - custom compiler for Android

Brad King brad.king at kitware.com
Tue Dec 5 14:54:16 EST 2017


On 12/05/2017 12:05 PM, ramya.gopalkrishna at accoliteindia.com wrote:
> Please validate our current understanding when a toolchain file or
> command-line option sets CMAKE_SYSTEM_NAME to "Android"

You may find this note helpful:

  https://gitlab.kitware.com/cmake/cmake/issues/16708#note_300971

> Ideally, we want our toolchain file to tell cmake the libraries to
> include/link and the compilers to use.

Toolchain files can set the path to compilers on the host, but
target-platform-wide information like the set of libraries and
include directories to use typically belongs in platform information
modules (e.g. `Platform/Android-...` and the like).

> But once, System has been determined as android, cmake goes
> through the above sequence of events and expects toolchains to be
> specified for either clang, gcc or llvm compilers.

We try to support the compilers that come with the NDK out of the box.
More work may be needed to support other compilers, just as would be
the case for any new platform or new compiler.

> Determine-Compiler-NDK.cmake  - We would need to add support for an
> "NewCompiler Toolchain" which would contain android libraries and compilers.

Since your compiler doesn't come with the NDK, perhaps you could look
at using the standalone toolchain mode.

> New Android-{NewCompiler}-C.cmake, Android-{ NewCompiler }-CXX.cmake,
> Android-{ NewCompiler }.cmake and another appropriate toolchain file to
> set target architecture and compiler flags.

If you have some new compiler then something like that would be needed.
This would be the case for a new compiler on any platform.

-Brad


More information about the CMake mailing list