Provided by: extra-cmake-modules_5.44.0-0ubuntu1_amd64 bug

NAME

       ecm-toolchains - ECM Toolchains Reference

INTRODUCTION

       Extra  CMake Modules (ECM) provides some toolchain modules. Unlike normal modules, these are not included
       directly in projects, but specified with the CMAKE_TOOLCHAIN_FILE cache variable on the commandline.

ALL MODULES

   AndroidToolchain
       Enable easy compilation of cmake projects on Android.

       By using this android toolchain, the projects will be set up to compile the specified  project  targeting
       an  Android  platform, depending on its input.  Furthermore, if desired, an APK can be directly generated
       by using the androiddeployqt tool.

       NOTE:
          This module requires CMake 3.1.

       Since 1.7.0.

   Usage
       To use this file, you need to set the CMAKE_TOOLCHAIN_FILE to  point  to  AndroidToolchain.cmake  on  the
       command line:

          cmake -DCMAKE_TOOLCHAIN_FILE=/usr/share/ECM/toolchain/AndroidToolchain.cmake

       You  will  also  need  to  provide  the  locations  of  the  Android NDK and SDK. This can be done on the
       commandline or with environment variables; in either case the variable names are:

       ANDROID_NDK
              The NDK root path.

       ANDROID_SDK_ROOT
              The SDK root path.

       Additional options are specified as cache variables (eg: on the command line):

       ANDROID_ARCHITECTURE
              The architecture to compile for. Default: arm.

       ANDROID_TOOLCHAIN
              The toolchain to use. See the toolchains directory of the NDK.  Default: arm-linux-androideabi.

       ANDROID_COMPILER_PREFIX
              The      prefix      for      the      gcc      and      g++      executables.       See       the
              toolchains/$ANDROID_TOOLCHAIN/prebuilt/*/bin/*-gcc in the NDK.  Default: arm-linux-androideabi.

       ANDROID_ABI
              The  ABI  to  use.  See  the sources/cxx-stl/gnu-libstdc++/*/libs directories in the NDK. Default:
              armeabi-v7a.

       ANDROID_GCC_VERSION
              The GCC version to use. Default: 4.9.

       ANDROID_API_LEVEL
              The API level to require. Default: 14.

       ANDROID_SDK_BUILD_TOOLS_REVISION
              The build tools version to use. Default: 21.1.1.

       For integrating other libraries which are not part of the Android toolchain, like Qt5, and installed to a
       separate prefix on the host  system,  the  install  prefixes  of  those  libraries  would  be  passed  as
       alternative roots as list via ECM_ADDITIONAL_FIND_ROOT_PATH. Since 5.30.0.

       For    example,    for    integrating    a    Qt5    for   Android   with   armv7   target   present   at
       /opt/android/Qt5/5.7/android_armv7 and some other libraries installed to the prefix /opt/android/foo, you
       would use:

          cmake \
            -DCMAKE_TOOLCHAIN_FILE=/usr/share/ECM/toolchain/AndroidToolchain.cmake \
            -DECM_ADDITIONAL_FIND_ROOT_PATH="/opt/android/Qt5/5.7/android_armv7;/opt/android/foo"

       If your project uses find_package() to locate  build  tools  on  the  host  system,  make  sure  to  pass
       CMAKE_FIND_ROOT_PATH_BOTH  or  NO_CMAKE_FIND_ROOT_PATH  as  argument  in the call. See the find_package()
       documentation for more details.

   Deploying Qt Applications
       After building the application, you will need to generate an APK that  can  be  deployed  to  an  Android
       device. This module integrates androiddeployqt support to help with this for Qt-based projects. To enable
       this,  set  the QTANDROID_EXPORTED_TARGET variable to the target you wish to export as an APK, as well as
       ANDROID_APK_DIR to a directory containing some basic information. This will create a  create-apk-<target>
       target  that  will  generate  the  APK  file.   See  the  Qt on Android deployment documentation for more
       information.

       For example, you could do:

          cmake \
            -DCMAKE_TOOLCHAIN_FILE=/usr/share/ECM/toolchain/AndroidToolchain.cmake \
            -DQTANDROID_EXPORTED_TARGET=myapp \
            -DANDROID_APK_DIR=myapp-apk
          make
          make create-apk-myapp

       The APK would then be found in myapp_build_apk/bin in the build directory.

       The create-apk-myapp target  will  be  able  to  take  an  ARGS  parameter  with  further  arguments  for
       androiddeployqt. For example, one can use:

          make create-apk-myapp ARGS="--install"

       To install the apk to test. To generate a signed apk, one can do it with the following syntax:

          make create-apk-myapp ARGS="--sign ~/my.keystore alias_name"

       See Android documentation on how to create a keystore to use

SEE ALSO

       ecm(7)

COPYRIGHT

       KDE Developers

5.44                                              Mar 12, 2018                                 ECM-TOOLCHAINS(7)