AWS SDK for C++ のビルドに使用する CMake のパラメータ - AWS SDK for C++

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS SDK for C++ のビルドに使用する CMake のパラメータ

このセクションに記載された CMake のパラメータを使用して、SDK のビルド方法をカスタマイズします。

これらのオプションは、CMake GUI ツールまたはコマンドラインで -D を使用して設定できます。例:

cmake -DENABLE_UNITY_BUILD=ON -DREGENERATE_CLIENTS=1

CMake の一般的な変数とオプション

SDK ソースコードのビルドプロセスに影響する cmake の一般的な変数とオプションを次に示します。

注記

これらのパラメータは、SDK for C++ 自体の SDK ソースコードをビルドする際に使用します。

ADD_CUSTOM_CLIENTS

API 定義に基づいて任意のクライアントをビルドします。定義を code-generation/api-definitions フォルダに配置し、この引数を cmake に渡します。cmake の設定ステップでクライアントが生成され、ビルドのサブディレクトリとして組み込まれます。これは、API Gateway サービスのいずれかを使用するための C++ クライアントを生成する場合に特に便利です。例:

-DADD_CUSTOM_CLIENTS="serviceName=myCustomService,version=2015-12-21;serviceName=someOtherService,version=2015-08-15"
注記

ADD_CUSTOM_CLIENTS パラメータを使用するには、Python 2.7、Java (JDK 1.8 以上)、Maven がインストールされており、PATH に含まれている必要があります。

AUTORUN_UNIT_TESTS

ON の場合は、ビルド後にユニットテストを自動的に実行します。

ON | OFF

デフォルト

ON

AWS_AUTORUN_LD_LIBRARY_PATH

CMake により自動的に実行されるユニットテスト用に LD_LIBRARY_PATH に追加するパス。オーバーライドされた依存関係にカスタムランタイムライブラリが必要な場合は、このパスを設定します。

String[]

デフォルト

(N/A)

AWS_SDK_WARNINGS_ARE_ERRORS

ON の場合、コンパイラの警告をエラーとして扱います。新しいコンパイラや一般的でないコンパイラでエラーが発生する場合は、これを OFF にしてみてください。

ON | OFF

デフォルト

ON

AWS_USE_CRYPTO_SHARED_LIBS

共有 crypto ライブラリが見つかった場合、FindCrypto がそのライブラリを使用するように設定します。代わりに BUILD_SHARED_LIBS を使用するように設定するには、これを OFF にします。

ON | OFF

デフォルト

VOFF

AWS_TEST_REGION

統合テストに使用する AWS リージョン。

String[]

デフォルト

(N/A)

BUILD_BENCHMARKS

ON の場合、ベンチマーク実行可能ファイルをビルドします。

ON | OFF

デフォルト

VOFF

BUILD_DEPS

ON の場合、サードパーティの依存関係をビルドします。

ON | OFF

デフォルト

ON

BUILD_ONLY

使用するクライアントのみをビルドします。aws-cpp-sdk-transfer などの高レベル SDK に設定すると、BUILD_ONLY では低レベルのクライアント依存関係を解決します。選択したプロジェクトに関連する統合テストやユニットテストが存在する場合は、それらもビルドされます。これはリスト引数であり、値はセミコロン (;) 文字で区切られます。例:

-DBUILD_ONLY="s3;cognito-identity"
注記

コア SDK モジュール aws-sdk-cpp-core は、BUILD_ONLY パラメータの値に関係なく常にビルドされます。

BUILD_OPTEL

ON の場合、OpenTelemetry に基づくトレース実装がビルドされます。

ON | OFF

デフォルト

VOFF

BUILD_SHARED_LIBS

CMake に組み込まれているオプションですが、可視性を高めるためにここで明示しています。ON の場合、共有ライブラリをビルドし、それ以外の場合は、静的ライブラリのみをビルドします。

注記

SDK を動的リンクするには、すべてのビルドターゲットに対して USE_IMPORT_EXPORT シンボルを定義する必要があります。

ON | OFF

デフォルト

ON

BYPASS_DEFAULT_PROXY

ON の場合、IXmlHttpRequest2 使用時にマシンのデフォルトプロキシ設定をバイパスします。

ON | OFF

デフォルト

ON

CPP_STANDARD

C++ 14 および 17 コードベースで使用するカスタム C++ 標準を指定します。

11 | 14 | 17

デフォルト

11

CURL_INCLUDE_DIR

libcurl ヘッダーを含む curl インクルードディレクトリへのパス。

選択した include ディレクトリへの文字列パス。例えば、D:/path/to/dir/with/curl/include

デフォルト

(N/A)

CURL_LIBRARY

リンク対象の curl ライブラリファイルへのパス。このライブラリは、アプリケーションの要件に応じて静的ライブラリまたはインポートライブラリになります。

curl ライブラリファイルへの文字列パス。例えば、D:/path/to/static/libcur/file/ie/libcurl.lib.a

デフォルト

(N/A)

CUSTOM_MEMORY_MANAGEMENT

カスタムメモリマネージャーを使用するには、値を 1 に設定します。すべての STL 型がカスタムの割り当てインターフェイスを使用するように、独自のアロケーターを導入できます。値を 0 に設定しても、Windows での DLL の安全性を高めるために STL テンプレート型の使用を検討するとよいでしょう。

静的リンクが ON の場合、カスタムメモリ管理はデフォルトで off (0) になります。動的リンクが ON の場合、カスタムメモリ管理はデフォルトで on (1) になり、DLL 間でのメモリ割り当てと解放を回避します。

注記

リンカーの不一致エラーを防ぐには、ビルドシステム全体で同じ値 (0 または 1) を使用する必要があります。

SDK によるメモリ割り当てを処理する独自のメモリマネージャーを導入するには、-DCUSTOM_MEMORY_MANAGEMENT を設定し、SDK に依存するすべてのビルドターゲットに USE_AWS_MEMORY_MANAGEMENT を定義する必要があります。

DISABLE_INTERNAL_IMDSV1_CALLS

ON の場合、インスタンスメタデータサービス の V1 API への内部呼び出しは行われません。OFF の場合、IMDSv2 呼び出しが失敗すると IMDSv1 にフォールバックされます。IMDSv1 および IMDSv2 の詳細については、「Amazon EC2 ユーザーガイド」の「インスタンスメタデータを使用してインスタンスメタデータにアクセスする」を参照してください。

ON | OFF

デフォルト

VOFF

ENABLE_ADDRESS_SANITIZER

ON の場合、gcc または clang の Address Sanitizer をオンにします。

ON | OFF

デフォルト

VOFF

ENABLE_CURL_LOGGING

ON の場合、curl の内部ログを SDK のロガーにパイプ出力します。

ON | OFF

デフォルト

VOFF

ENABLE_HTTP_CLIENT_TESTING

ON の場合、対応する HTTP クライアントテストスイートをビルドして実行します。

ON | OFF

デフォルト

VOFF

enable_rtti

RTTI (実行時型情報) を有効にして SDK をビルドするかどうかを制御します。

ON | OFF

デフォルト

ON

ENABLE_TESTING

SDK ビルド時にユニットテストおよび統合テストプロジェクトをビルドするかどうかを制御します。

ON | OFF

デフォルト

ON

ENABLE_UNITY_BUILD

ON の場合、ほとんどの SDK ライブラリは 1 つの生成された .cpp ファイルとしてビルドされます。これにより、静的ライブラリのサイズを大幅に削減し、コンパイル時間を短縮できます。

ON | OFF

デフォルト

VOFF

ENABLE_VIRTUAL_OPERATIONS

このパラメータは通常、コード生成のために REGENERATE_CLIENTS と併用されます。

ENABLE_VIRTUAL_OPERATIONSON で、REGENERATE_CLIENTSON の場合、サービスクライアントのオペレーション関連の関数は virtual としてマークされます。

ENABLE_VIRTUAL_OPERATIONSOFF で、REGENERATE_CLIENTSON の場合、オペレーション関連の関数には virtual が追加されず、サービスクライアントクラスは final としてマークされます。

ENABLE_VIRTUAL_OPERATIONSOFF の場合、SDK はコンパイル時に gcc および clang の -ffunction-sections および -fdata-sections コンパイラフラグも追加します。

詳細については、GitHub の「CMake Parameters」を参照してください。

ON | OFF

デフォルト

ON

ENABLE_ZLIB_REQUEST_COMPRESSION

これをサポートするサービスの場合、リクエストコンテンツは圧縮されます。依存関係が使用可能な場合、デフォルトでオンになります。

ON | OFF

デフォルト

ON

FORCE_CURL

Windows のみ。ON の場合、デフォルトの WinHTTP データ転送プロバイダーの代わりに curl クライアントの使用を適用します。

ON | OFF

デフォルト

VOFF

FORCE_SHARED_CRT

ON の場合、SDK は C ランタイムに動的にリンクされます。それ以外の場合は、BUILD_SHARED_LIBS 設定を使用します (SDK の以前のバージョンとの下位互換性に必要な場合があります)。

ON | OFF

デフォルト

ON

G

Visual Studio ソリューションや Xcode プロジェクトなどのビルドアーティファクトを生成します。

Windows での例

-G "Visual Studio 12 Win64"

詳細については、使用中のプラットフォームに対応した CMake ドキュメントを参照してください。

MINIMIZE_SIZE

ENABLE_UNITY_BUILD の上位互換設定。ON の場合、ENABLE_UNITY_BUILD および追加のバイナリサイズ削減設定が有効になります。

ON | OFF

デフォルト

VOFF

NO_ENCRYPTION

ON の場合、デフォルトのプラットフォーム固有の暗号化実装がライブラリに組み込まれないようにします。独自の暗号化実装を組み込む場合は、この設定を ON にします。

ON | OFF

デフォルト

VOFF

NO_HTTP_CLIENT

ON の場合、デフォルトのプラットフォーム固有の HTTP クライアントがライブラリに組み込まれないようにします。ON の場合、独自のプラットフォーム固有の HTTP クライアント実装を提供する必要があります。

ON | OFF

デフォルト

VOFF

REGENERATE_CLIENTS

ON の場合、このパラメータでは生成されたすべてのコードが削除され、code-generation/api-definitions フォルダからクライアントディレクトリが再生成されます。例:

-DREGENERATE_CLIENTS=1
注記

REGENERATE_CLIENTS パラメータを使用するには、Python 2.7、Java (JDK 1.8 以上)、Maven がインストールされており、PATH に含まれている必要があります。

REGENERATE_DEFAULTS

ON の場合、このパラメータでは生成されたすべてのデフォルトコードが削除され、code-generation/defaults フォルダから再生成されます。例:

-DREGENERATE_DEFAULTS=1
注記

REGENERATE_DEFAULTS パラメータを使用するには、Python 2.7、Java (JDK 1.8 以上)、Maven がインストールされており、PATH に含まれている必要があります。

SIMPLE_INSTALL

ON の場合、インストールプロセスでは bin/lib/ 以下にプラットフォーム固有の中間ディレクトリは挿入されません。1 つのインストールディレクトリでマルチプラットフォーム向けリリースを作成する場合は、OFF に設定します。

ON | OFF

デフォルト

ON

TARGET_ARCH

クロスコンパイルやモバイルプラットフォーム向けにビルドを行うには、ターゲットプラットフォームを指定する必要があります。デフォルトでは、ビルドはホストオペレーティングシステムを検出し、検出されたオペレーティングシステム向けにビルドします。

注記

TARGET_ARCHANDROID の場合、追加のオプションを使用できます。「Android CMake の変数とオプション」を参照してください。

WINDOWS | LINUX | APPLE | ANDROID

USE_CRT_HTTP_CLIENT

ON の場合、共通ランタイム HTTP クライアントが使用され、WinHttp や libcurl などのレガシーシステムはビルドも組み込みもされません。

ON | OFF

デフォルト

VOFF

USE_IXML_HTTP_REQUEST_2

Windows のみ。ON の場合、HTTP スタックに com オブジェクト IXmlHttpRequest2 を使用します。

ON | OFF

デフォルト

VOFF

USE_OPENSSL

ON の場合、SDK は OpenSSL を使用してビルドされます。それ以外の場合は、awslabs/aws-lc を使用します。AWS-LC は AWS およびその顧客向けに AWS 暗号化チームが管理している汎用暗号化ライブラリです。このパラメータを OFF にすると、OpenSSL の代わりに AWS-LC がシステムのデフォルトディレクトリにインストールされます。既に OpenSSL がシステムにインストールされている場合、このオプションは使用しないでください。

ON | OFF

デフォルト

ON

USE_TLS_V1_2

ON の場合、HTTP クライアントは TLS 1.2 を適用します。

ON | OFF

デフォルト

ON

USE_TLS_V1_3

ON の場合、HTTP クライアントは TLS 1.3 を適用します。

ON | OFF

デフォルト

VOFF

Android CMake の変数とオプション

SDK の Android ビルドを作成する場合 (TARGET_ARCHANDROID に設定している場合) は、次の変数を使用します。

ANDROID_ABI

Android のみ。どのアプリケーションバイナリインターフェイス (ABI) 向けにコードを出力するかを制御します。

注記

有効なすべての Android ABI 値が現在サポートされているわけではありません。

arm64 | armeabi-v7a | x86_64 | x86 | mips64 | mips

デフォルト

armeabi-v7a

ANDROID_BUILD_CURL

Android のみ。ON の場合、curl もビルドします。

ON | OFF

デフォルト

ON

ANDROID_BUILD_OPENSSL

Android のみ。ON の場合、OpenSSL もビルドします。

ON | OFF

デフォルト

ON

ANDROID_BUILD_ZLIB

Android のみ。ON の場合、Zlib もビルドします。

ON | OFF

デフォルト

ON

ANDROID_NATIVE_API_LEVEL

Android のみ。SDK がビルド対象とする API レベルを制御します。ANDROID_STLgnustl に設定した場合は、任意の API レベルを選択できます。libc++ を使用する場合は、21 以上の API レベルを使用する必要があります。

デフォルト

STL の選択によって異なります。

ANDROID_STL

Android のみ。SDK が使用する C++ 標準ライブラリの実装 (バリエーション) を指定します。

重要

gnustl オプションを使用すると、SDK 内でパフォーマンスの問題が発生する可能性があります。libc++_shared または libc++_static を使用することを強くお勧めします。

libc++_shared | libc++_static | gnustl_shared | gnustl_static

デフォルト

libc++_shared

ANDROID_TOOLCHAIN_NAME

Android のみ。SDK のビルドに使用されるコンパイラを制御します。

注記

Android NDK では GCC が廃止となっているため、デフォルト値を使用することをお勧めします。

デフォルト

standalone-clang

DISABLE_ANDROID_STANDALONE_BUILD

Android のみ。デフォルトでは、Android ビルドは NDK スクリプトによってコンストラクトされるスタンドアロンの clang ベースツールチェーンを使用します。独自のツールチェーンを使用するには、このオプションを ON にします。

ON | OFF

デフォルト

VOFF

NDK_DIR

Android のみ。ビルドシステムが Android NDK を検索する必要のあるオーバーライドパスを指定します。この変数を設定しない場合、ビルドシステムはデフォルトで環境変数 (ANDROID_NDK) を参照します。