CMake を設定する

CMake ビルド スクリプトは書式なしテキスト ファイルで、名前は CMakeLists.txt にする必要があります。CMake ビルド スクリプトには、CMake が C / C++ ライブラリのビルドに使用するコマンドを含めます。ネイティブ ソースの CMake ビルド スクリプトがない場合は、自身で作成して適切な CMake コマンドを追加する必要があります。CMake をインストールする方法については、NDK と CMake のインストールと設定をご覧ください。

このセクションでは、ネイティブ ライブラリの作成時に使用するソースを CMake に指示するために、ビルド スクリプトに含める必要がある基本的なコマンドについて説明します。詳しくは、CMake コマンドの公式ドキュメントをご覧ください。

新しい CMake ビルド スクリプトを作成した後、Gradle の設定で CMake プロジェクトをビルド依存関係として含め、Gradle がネイティブ ライブラリをビルドしてアプリの APK にパッケージ化できるようにする必要があります。

注: プロジェクトで ndk-build を使用する場合、CMake ビルド スクリプトの作成は不要です。Gradle の設定Android.mk ファイルへのパスを指定するだけで、既存のネイティブ ライブラリ プロジェクトを含めることができます。

CMake ビルド スクリプトを作成する

CMake ビルド スクリプトとして使用できる書式なしテキスト ファイルを作成する手順は次のとおりです。

  1. IDE の左側にある [Project] ペインを開き、プルダウン メニューの [Project] ビューを選択します。
  2. your-module のルート ディレクトリを右クリックし、[New] > [File] を選択します。

    注: ビルド スクリプトは任意の場所に作成できます。 ただし、ビルド スクリプトを設定するときは、ネイティブ ソースファイルとライブラリのパスにはビルド スクリプトの場所に対する相対パスを指定してください。

  3. ファイル名に「CMakeLists.txt」と入力し、[OK] をクリックします。

これで、CMake コマンドを追加してビルド スクリプトを設定できるようになりました。ネイティブ ソースコードからネイティブ ライブラリを作成するように CMake に指示するには、cmake_minimum_required() コマンドと add_library() コマンドをビルド スクリプトに追加します。

# Sets the minimum version of CMake required to build your native library.
# This ensures that a certain set of CMake features is available to
# your build.

cmake_minimum_required(VERSION 3.4.1)

# Specifies a library name, specifies whether the library is STATIC or
# SHARED, and provides relative paths to the source code. You can
# define multiple libraries by adding multiple add_library() commands,
# and CMake builds them for you. When you build your app, Gradle
# automatically packages shared libraries with your APK.

add_library( # Specifies the name of the library.
             native-lib

             # Sets the library as a shared library.
             SHARED

             # Provides a relative path to your source file(s).
             src/main/cpp/native-lib.cpp )

ヒント: ソースファイルからネイティブ ライブラリを作成する場合と同様に、add_executable() コマンドを使用して、これらのソースファイルからの実行可能ファイルの作成を CMake に指示できます。ただし、ネイティブ ソースからの実行可能ファイルの作成はオプションであり、ネイティブ ライブラリを作成して APK にパッケージ化することでほとんどのプロジェクト要件は満たされます。

add_library() を使用してソースファイルまたはライブラリを CMake ビルド スクリプトに追加すると、プロジェクトを同期した後に Android Studio の [Project] ビューに関連するヘッダー ファイルも表示されます。ただし、コンパイル時に CMake がヘッダー ファイルを特定できるようにするには、