AWS SDK for C++ 빌드용 CMake 파라미터
이 섹션에 나열된 CMake
이러한 옵션은 CMake GUI 도구를 사용하거나 명령줄에서 -D를 사용하여 설정할 수 있습니다. 예를 들면 다음과 같습니다.
cmake -DENABLE_UNITY_BUILD=ON -DREGENERATE_CLIENTS=1
일반 CMake 변수 및 옵션
다음은 SDK 소스 코드의 빌드 프로세스에 영향을 미치는 일반 cmake 변수 및 옵션입니다.
참고
이러한 파라미터는 SDK for C++ 자체의 소스 코드를 빌드할 때 사용합니다.
주제
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에 추가할 경로입니다. 재정의된 종속성에 사용자 지정 런타임 라이브러리가 필요한 경우에 이 경로를 설정합니다.
- 값
-
(문자열) -
- 기본값
-
N/A
AWS_SDK_WARNINGS_ARE_ERRORS
ON인 경우 컴파일러 경고를 오류로 처리합니다. 새 컴파일러나 흔하지 않은 컴파일러에서 오류가 관찰되는 경우 이를 OFF로 설정해 보세요.
- 값
-
ON | OFF
- 기본값
-
ON
AWS_USE_CRYPTO_SHARED_LIBS
FindCrypto가 공유 암호화 라이브러리를 사용하도록 강제합니다(해당 라이브러리가 발견된 경우). 대신 BUILD_SHARED_LIBS 설정을 사용하려면 이 옵션을 OFF로 설정합니다.
- 값
-
ON | OFF
- 기본값
-
OFF
AWS_TEST_REGION
통합 테스트에 사용할 AWS 리전입니다.
- 값
-
(문자열) -
- 기본값
-
N/A
BUILD_BENCHMARKS
ON인 경우 벤치마크 실행 파일을 빌드합니다.
- 값
-
ON | OFF
- 기본값
-
OFF
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인 경우 추적을 위한 오픈 텔레메트리 구현을 빌드합니다.
- 값
-
ON | OFF
- 기본값
-
OFF
BUILD_SHARED_LIBS
기본 제공 CMake 옵션으로, 가시성을 위해 여기에 재표시됩니다. ON인 경우 공유 라이브러리를 빌드하며, 그렇지 않은 경우 정적 라이브러리만 빌드합니다.
참고
SDK에 동적으로 연결하려면 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 디렉터리의 경로입니다.
- 값
-
선택한
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에서 수행한 할당을 처리할 자체 메모리 관리자를 설치하려면 SDK에 의존하는 모든 빌드 대상에 대해 -DCUSTOM_MEMORY_MANAGEMENT를 설정하고 USE_AWS_MEMORY_MANAGEMENT를 정의해야 합니다.
DISABLE_INTERNAL_IMDSV1_CALLS
ON인 경우 인스턴스 메타데이터 서비스의 V1 API에 대한 내부 호출이 수행되지 않습니다. OFF인 경우 IMDSv2 호출이 실패하면 IMDSv2 호출이 IMDSv1 사용으로 대체됩니다. IMDSv1 및 IMDSv2에 대한 자세한 내용은 Amazon EC2 사용 설명서에서 인스턴스 메타데이터 서비스를 사용하여 인스턴스 메타데이터에 액세스를 참조하세요.
- 값
-
ON | OFF
- 기본값
-
OFF
ENABLE_ADDRESS_SANITIZER
ON인 경우 gcc 또는 clang에 대해 Address Sanitizer를 켭니다.
- 값
-
ON | OFF
- 기본값
-
OFF
ENABLE_CURL_LOGGING
ON인 경우 curl의 내부 로그를 SDK 로거로 파이프 처리합니다.
- 값
-
ON | OFF
- 기본값
-
OFF
ENABLE_HTTP_CLIENT_TESTING
ON인 경우 해당 HTTP 클라이언트 테스트 제품군을 빌드하고 실행합니다.
- 값
-
ON | OFF
- 기본값
-
OFF
ENABLE_RTTI
런타임 유형 정보(RTTI)를 활성화하도록 SDK를 빌드할지 여부를 제어합니다.
- 값
-
ON | OFF
- 기본값
-
ON
ENABLE_TESTING
SDK 빌드 중 유닛 테스트 및 통합 테스트 프로젝트를 빌드할지 여부를 제어합니다.
- 값
-
ON | OFF
- 기본값
-
ON
ENABLE_UNITY_BUILD
ON인 경우 대부분의 SDK 라이브러리는 하나의 생성된 .cpp 파일로 빌드됩니다. 이렇게 하면 정적 라이브러리 크기가 상당히 줄어들고 컴파일 시간이 단축될 수 있습니다.
- 값
-
ON | OFF
- 기본값
-
OFF
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 파라미터
- 값
-
ON | OFF
- 기본값
-
ON
ENABLE_ZLIB_REQUEST_COMPRESSION
해당 기능을 지원하는 서비스의 경우 요청된 콘텐츠가 압축됩니다. 종속성이 사용 가능한 경우 기본적으로 활성화됩니다.
- 값
-
ON | OFF
- 기본값
-
ON
FORCE_CURL
Windows에만 해당됩니다. ON인 경우 기본 WinHTTP
- 값
-
ON | OFF
- 기본값
-
OFF
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
- 기본값
-
OFF
NO_ENCRYPTION
ON인 경우 기본 플랫폼별 암호화 구현이 라이브러리에 내장되지 않도록 합니다. 이 기능을 ON으로 설정하면 자체 암호화 구현을 주입할 수 있습니다.
- 값
-
ON | OFF
- 기본값
-
OFF
NO_HTTP_CLIENT
ON인 경우 기본 플랫폼별 HTTP 클라이언트가 라이브러리에 내장되지 않도록 합니다. ON인 경우 자체 플랫폼별 HTTP 클라이언트 구현을 제공해야 합니다.
- 값
-
ON | OFF
- 기본값
-
OFF
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/ 아래에 플랫폼별 중간 디렉터리가 생성되지 않습니다. 단일 설치 디렉터리에서 다중 플랫폼 릴리스를 수행해야 하는 경우 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
- 기본값
-
OFF
USE_IXML_HTTP_REQUEST_2
Windows에만 해당됩니다. ON인 경우 HTTP 스택에 com 객체 IXmlHttpRequest2를 사용합니다.
- 값
-
ON | OFF
- 기본값
-
OFF
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
- 기본값
-
OFF
Android CMake 변수 및 옵션
SDK의 Android 빌드를 생성하는 경우(TARGET_ARCH가 ANDROID로 설정된 경우) 다음 변수를 사용합니다.
주제
ANDROID_ABI
Android에만 해당됩니다. 코드를 출력할 Application Binary Interface(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
- 기본값
-
OFF
NDK_DIR
Android에만 해당됩니다. 빌드 시스템이 Android NDK를 찾을 때 사용할 재정의 경로를 지정합니다. 기본적으로 빌드 시스템은 이 변수가 설정되지 않은 경우 환경 변수(ANDROID_NDK)를 확인합니다.