Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update CMake_Parameters.md to match current cmake parameters found in CMakeLists.txt #2648

Merged
merged 1 commit into from
Aug 31, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 72 additions & 6 deletions docs/CMake_Parameters.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,41 +49,71 @@ Windows example:

For more information, see the CMake documentation for your platform.

### CPP_STANDARD
(Defaults to 11) Allows you to specify a custom c++ standard for use with C++ 14 and 17 code-bases

### ENABLE_UNITY_BUILD
(Defaults to ON) If enabled, most SDK libraries will be built as a single, generated .cpp file. This can significantly reduce static library size as well as speed up compilation time.

### MINIMIZE_SIZE
(Defaults to OFF) A superset of ENABLE_UNITY_BUILD, if enabled this option turns on ENABLE_UNITY_BUILD as well as some additional binary size reduction settings. This is a work-in-progress and may change in the future (symbol stripping in particular).

### BUILD_SHARED_LIBS
(Defaults to ON) A built-in CMake option, reexposed here for visibility. If enabled, shared libraries will be built, otherwise static libraries will be built.
(Defaults to ON) A built-in CMake option, re-exposed here for visibility. If enabled, shared libraries will be built, otherwise static libraries will be built.

### FORCE_SHARED_CRT
(Defaults to ON) If enabled, the SDK will link to the C runtime dynamically, otherwise it will use the BUILD_SHARED_LIBS setting (weird but necessary for backwards compatibility with older versions of the SDK)

### SIMPLE_INSTALL
(Defaults to ON) If enabled, the install process will not insert platform-specific intermediate directories underneath bin/ and lib/. Turn OFF if you need to make multi-platform releases under a single install directory.

### USE_CRT_HTTP_CLIENT
(Defaults to OFF) If enabled, the common runtime HTTP client will be used, and the legacy systems such as WinHttp and libcurl will not be built or included

### NO_HTTP_CLIENT
(Defaults to OFF) If enabled, prevents the default platform-specific http client from being built into the library. Turn this ON if you wish to inject your own http client implementation.

### NO_ENCRYPTION
(Defaults to OFF) If enabled, prevents the default platform-specific cryptography implementation from being built into the library. Turn this ON if you wish to inject your own cryptography implementation.

### USE_IXML_HTTP_REQUEST_2
(Defaults to OFF) If enabled on windows, the com object IXmlHttpRequest2 will be used for the http stack

### ENABLE_RTTI
(Defaults to ON) Controls whether or not the SDK is built with RTTI information

### CPP_STANDARD
(Defaults to 11) Allows you to specify a custom c++ standard for use with C++ 14 and 17 code-bases

### ENABLE_TESTING
(Defaults to ON) Controls whether or not the unit and integration test projects are built

### AUTORUN_UNIT_TESTS
(Defaults to ON) Flag to enable/disable automatically run unit tests after building

### FORCE_CURL
(Defaults to OFF) Forces usage of the Curl client rather than the default OS-specific api

### ENABLE_ADDRESS_SANITIZER
(Defaults to OFF) Flags to enable/disable Address Sanitizer for gcc or clang

### BYPASS_DEFAULT_PROXY
(Defaults to ON) Bypass the machine's default proxy settings when using IXmlHttpRequest2

### BUILD_DEPS
(Defaults to ON) Build third-party dependencies

### USE_OPENSSL
(Defaults to ON) Set this if you want to use your system's OpenSSL 1.0.2/1.1.1 compatible libcrypto

If disabled, SDK will build and install [AWS-LC](https://github.com/awslabs/aws-lc) on Linux system when `BUILD_DEPS` is `ON`. This is an experimental feature. It will install AWS-LC as replacement of OpenSSL in the system default directory. Do not use if you have an OpenSSL installation in your system already.

### ENABLE_CURL_LOGGING
(Defaults to ON) If enabled, Curl's internal log will be piped to SDK's logger

### ENABLE_HTTP_CLIENT_TESTING
(Defaults to OFF) If enabled, corresponding http client test suites will be built and run

### ENABLE_FUNCTIONAL_TESTING
(Defaults to OFF) If enabled, clients might be generated based on dummy models, and run functional tests as part of unit tests: aws-cpp-sdk-core-tests

### ENABLE_VIRTUAL_OPERATIONS
(Defaults to ON) This option usually works with REGENERATE_CLIENTS.
If enabled when doing code generation (REGENERATE_CLIENTS=ON), operation related functions in service clients will be marked as `virtual`.
Expand All @@ -98,6 +128,36 @@ For example, if your system uses `ld` as linker, then you can turn this option O

You can also tell gcc or clang to pass these linker flags by specifying `-Wl,--gc-sections`, or `-Wl,-dead_strip`. Or via `-DCMAKE_CXX_FLAGS="-Wl,[flag]"` if you use CMake.

### ENABLE_ZLIB_REQUEST_COMPRESSION
(Defaults to ON) For services that support it, request content will be compressed. On by default if dependency available

### DISABLE_INTERNAL_IMDSV1_CALLS
(Defaults to OFF) Set to disable all internal calls to the V1 api of the [Instance Metadata Service](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)

### BUILD_BENCHMARKS
(Defaults to OFF) Enables building the benchmark executable

### BUILD_OPTEL
(Defaults to OFF) Enables building the open telemetry implementation of tracing

### AWS_SDK_WARNINGS_ARE_ERRORS
(Defaults to ON) Compiler warning is treated as an error. Try turning this off when observing errors on a new or uncommon compiler

### USE_TLS_V1_2
(Defaults to ON) Set http client to enforce TLS 1.2

### USE_TLS_V1_3
(Defaults to OFF) Set http client to enforce TLS 1.3

### AWS_USER_AGENT_CUSTOMIZATION
User agent extension

### AWS_TEST_REGION
Region to target integration tests against

### AWS_AUTORUN_LD_LIBRARY_PATH
Path to append into LD_LIBRARY_PATH for unit tests autorun by cmake. Set this if custom runtime libs are required for overridden dependencies.

## Android CMake Variables/Options

### NDK_DIR
Expand All @@ -115,5 +175,11 @@ An override path for where the build system should find the Android NDK. By def
### ANDROID_NATIVE_API_LEVEL
(Default varies by STL choice) Controls what API level the SDK will be built against. If you use gnustl, you have complete freedom with the choice of API level. If you use libc++, you must use an API level of at least 21.

### DISABLE_INTERNAL_IMDSV1_CALLS
(Defaults to OFF) Set to disable all internal calls to the V1 api of the [Instance Metadata Service](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)
### ANDROID_BUILD_CURL
(Defaults to ON) When building for Android, should curl be built as well

### ANDROID_BUILD_OPENSSL
(Defaults to ON) When building for Android, should Openssl be built as well

### ANDROID_BUILD_ZLIB
(Defaults to ON) When building for Android, should Zlib be built as well
Loading