翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS SDK for C++ のビルドに使用する CMake のパラメータ
このセクションに記載された CMake
これらのオプションは、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
-DADD_CUSTOM_CLIENTS="serviceName=myCustomService,version=2015-12-21;serviceName=someOtherService,version=2015-08-15"
注記
ADD_CUSTOM_CLIENTS パラメータを使用するには、Python 2.7PATH に含まれている必要があります。
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_OPERATIONS が ON で、REGENERATE_CLIENTS が ON の場合、サービスクライアントのオペレーション関連の関数は virtual としてマークされます。
ENABLE_VIRTUAL_OPERATIONS が OFF で、REGENERATE_CLIENTS が ON の場合、オペレーション関連の関数には virtual が追加されず、サービスクライアントクラスは final としてマークされます。
ENABLE_VIRTUAL_OPERATIONS が OFF の場合、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
- 値
-
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.7PATH に含まれている必要があります。
REGENERATE_DEFAULTS
ON の場合、このパラメータでは生成されたすべてのデフォルトコードが削除され、code-generation/defaults フォルダから再生成されます。例:
-DREGENERATE_DEFAULTS=1
注記
REGENERATE_DEFAULTS パラメータを使用するには、Python 2.7PATH に含まれている必要があります。
SIMPLE_INSTALL
ON の場合、インストールプロセスでは bin/ と lib/ 以下にプラットフォーム固有の中間ディレクトリは挿入されません。1 つのインストールディレクトリでマルチプラットフォーム向けリリースを作成する場合は、OFF に設定します。
- 値
-
ON | OFF
- デフォルト
-
ON
TARGET_ARCH
クロスコンパイルやモバイルプラットフォーム向けにビルドを行うには、ターゲットプラットフォームを指定する必要があります。デフォルトでは、ビルドはホストオペレーティングシステムを検出し、検出されたオペレーティングシステム向けにビルドします。
注記
TARGET_ARCH が ANDROID の場合、追加のオプションを使用できます。「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-lcAWS-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_ARCH を ANDROID に設定している場合) は、次の変数を使用します。
トピック
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_STL を gnustl に設定した場合は、任意の 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) を参照します。