bionic (7) ecm-toolchains.7.gz

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)

       KDE Developers