Parâmetros do CMake para compilar o AWS SDK para C++
Use os parâmetros do CMake
É possível definir essas opções com as ferramentas da GUI do CMake ou a linha de comandos usando -D. Por exemplo:
cmake -DENABLE_UNITY_BUILD=ON -DREGENERATE_CLIENTS=1
Variáveis e opções gerais do CMake
Veja a seguir as variáveis e opções gerais do cmake que afetam o processo de compilação do código-fonte do SDK.
nota
Use esses parâmetros ao compilar o código-fonte do SDK para o próprio SDK para C++.
Tópicos
ADD_CUSTOM_CLIENTS
Cria qualquer cliente arbitrário com base na definição da API. Coloque sua definição na pasta code-generation/api-definitions e, depois, transmita esse argumento para cmake. A etapa de cmake gera seu cliente e o inclui como um subdiretório em sua compilação. Isso é particularmente útil para gerar um cliente C++ para usar um dos seus serviços do API Gateway
-DADD_CUSTOM_CLIENTS="serviceName=myCustomService,version=2015-12-21;serviceName=someOtherService,version=2015-08-15"
nota
Para usar o parâmetro ADD_CUSTOM_CLIENTS, você deve ter o Python 2.7PATH.
AUTORUN_UNIT_TESTS
Se ON, execute testes de unidade automaticamente após a compilação.
- Valores
-
Ativado | Desativado
- Padrão
-
ON
AWS_AUTORUN_LD_LIBRARY_PATH
O caminho a ser anexado ao LD_LIBRARY_PATH para testes de unidade executados automaticamente pelo CMake. Defina esse caminho se bibliotecas de runtime personalizadas forem necessárias para dependências substituídas.
- Valores
-
String.
- Padrão
-
N/D
AWS_SDK_WARNINGS_ARE_ERRORS
Se ON, trate os avisos do compilador como erros. Tente ativar isso OFF se observar erros em um compilador novo ou incomum.
- Valores
-
Ativado | Desativado
- Padrão
-
ON
AWS_USE_CRYPTO_SHARED_LIBS
Força o FindCrypto a usar uma biblioteca de criptografia compartilhada, se encontrada. Defina isso como OFF para usar a configuração BUILD_SHARED_LIBS.
- Valores
-
Ativado | Desativado
- Padrão
-
DESL
AWS_TEST_REGION
A Região da AWS a ser usada para testes de integração.
- Valores
-
String.
- Padrão
-
N/D
BUILD_BENCHMARKS
Se ON, compile o executável de ponto de referência.
- Valores
-
Ativado | Desativado
- Padrão
-
DESL
BUILD_DEPS
Se ON, compile as dependências de terceiros.
- Valores
-
Ativado | Desativado
- Padrão
-
ON
BUILD_ONLY
Compila somente os clientes que você deseja usar. Se definido como um SDK de alto nível, como aws-cpp-sdk-transfer, BUILD_ONLY, resolve todas as dependências de cliente de baixo nível. Ele também compila integração e de testes de unidade relacionados aos projetos selecionados, se existirem. Esse é um argumento de lista, com valores separados por caracteres ponto-e-vírgula (;). Por exemplo:
-DBUILD_ONLY="s3;cognito-identity"
nota
O módulo principal do SDK, aws-sdk-cpp-core, é sempre compilado, independentemente do valor do parâmetro BUILD_ONLY.
BUILD_OPTEL
Se ON, compila a implementação de telemetria aberta do rastreamento.
- Valores
-
Ativado | Desativado
- Padrão
-
DESL
BUILD_SHARED_LIBS
Uma opção CMake integrada, exposta novamente aqui para maior visibilidade. Se ON, ele compila bibliotecas compartilhadas; caso contrário, ele cria somente bibliotecas estáticas.
nota
Para se vincular dinamicamente ao SDK, você deve definir o símbolo USE_IMPORT_EXPORT para todos os destinos de compilação usando o SDK.
- Valores
-
Ativado | Desativado
- Padrão
-
ON
BYPASS_DEFAULT_PROXY
Se ON, ignore as configurações de proxy padrão da máquina ao usar IXmlHttpRequest2.
- Valores
-
Ativado | Desativado
- Padrão
-
ON
CPP_STANDARD
Especifica um padrão C++ personalizado para uso com bases de código C++ 14 e 17.
- Valores
-
11 | 14 | 17
- Padrão
-
11
CURL_INCLUDE_DIR
O caminho para curl inclui um diretório que contém cabeçalhoslibcurl.
- Valores
-
Caminho da string do diretório
includeselecionado. Por exemplo,D:/path/to/dir/with/curl/include. - Padrão
-
N/D
CURL_LIBRARY
Caminho do arquivo da biblioteca curl a ser vinculado. Essa biblioteca pode ser estática ou de importação, dependendo das necessidades da sua aplicação.
- Valores
-
Caminho da string do arquivo da biblioteca curl. Por exemplo,
D:/path/to/static/libcur/file/ie/libcurl.lib.a. - Padrão
-
N/D
CUSTOM_MEMORY_MANAGEMENT
Para usar um gerenciador de memória personalizado, defina o valor como 1. Você pode instalar um alocador personalizado para que todos os tipos de STL usem a interface de alocação personalizada. Se você definir o valor como 0, talvez seja conveniente usar os tipos de modelo STL para ajudar na segurança de DLL no Windows.
Se a vinculação estática for ON, o gerenciamento de memória personalizado assumirá como padrão desativado (0). Se a vinculação dinâmica for ON, o gerenciamento de memória personalizado usará como padrão ativado (1) e evitará a alocação e desalocação entre DLLs.
nota
Para evitar erros de incompatibilidade do vinculador, você deve usar o mesmo valor (0 ou 1) em todo o sistema de compilação.
Para instalar seu próprio gerenciador de memória para lidar com as alocações feitas pelo SDK, você deve definir -DCUSTOM_MEMORY_MANAGEMENT e USE_AWS_MEMORY_MANAGEMENT para todos os destinos de compilação que dependem do SDK.
DISABLE_INTERNAL_IMDSV1_CALLS
Se ON, nenhuma chamada interna será feita para a API V1 do Serviço de metadados da instância. Se OFF, as chamadas do IMDSv2 voltarão a usar o IMDSv1 se a chamada do IMDSv2 falhar. Para acessar mais informações sobre IMDSv1 e IMDSv2, consulte Use o serviço de metadados de instância para acessar metadados de instância no Guia do usuário do Amazon EC2.
- Valores
-
Ativado | Desativado
- Padrão
-
DESL
ENABLE_ADDRESS_SANITIZER
Se ON, ativará o Address Sanitizer para gcc ou clang.
- Valores
-
Ativado | Desativado
- Padrão
-
DESL
ENABLE_CURL_LOGGING
Se ON, direcione o log interno para curl para o registrador do SDK.
- Valores
-
Ativado | Desativado
- Padrão
-
DESL
ENABLE_HTTP_CLIENT_TESTING
Se ON, compile e execute os conjuntos de testes de clientes HTTP correspondentes.
- Valores
-
Ativado | Desativado
- Padrão
-
DESL
ENABLE_RTTI
Controla se o SDK foi compilado para habilitar informações de tipo de runtime (RTTI).
- Valores
-
Ativado | Desativado
- Padrão
-
ON
ENABLE_TESTING
Controla se os projetos de teste de unidade e integração são compilados durante a compilação do SDK.
- Valores
-
Ativado | Desativado
- Padrão
-
ON
ENABLE_UNITY_BUILD
Se ON, a maioria das bibliotecas do SDK será compilada como um único arquivo .cpp gerado. Isso pode reduzir significativamente o tamanho da biblioteca estática e acelerar o tempo de compilação.
- Valores
-
Ativado | Desativado
- Padrão
-
DESL
ENABLE_VIRTUAL_OPERATIONS
Esse parâmetro geralmente funciona em conjunto com REGENERATE_CLIENTS para geração de código.
Se ENABLE_VIRTUAL_OPERATIONS for ON e REGENERATE_CLIENTS for ON, as funções relacionadas à operação em clientes de serviço serão marcadas como virtual.
Se ENABLE_VIRTUAL_OPERATIONS for OFF e REGENERATE_CLIENTS for ON, virtual não será adicionado às funções de operação e as classes do cliente de serviço serão marcadas como final.
Se ENABLE_VIRTUAL_OPERATIONS estiver OFF, o SDK também adicionará sinalizadores de compilador -ffunction-sections e -fdata-sections para gcc e clang durante a compilação.
Para acessar mais informações, consulte Parâmetros do CMake
- Valores
-
Ativado | Desativado
- Padrão
-
ON
ENABLE_ZLIB_REQUEST_COMPRESSION
Para serviços que o comportam, o conteúdo da solicitação será compactado. Ativado por padrão se a dependência estiver disponível.
- Valores
-
Ativado | Desativado
- Padrão
-
ON
FORCE_CURL
Somente para Windows. Se ON, forçará o uso do cliente curl em vez do provedor de transferência de dados WinHTTP
- Valores
-
Ativado | Desativado
- Padrão
-
DESL
FORCE_SHARED_CRT
Se ON, o SDK se vinculará dinamicamente ao runtime C; caso contrário, ele usará a configuração BUILD_SHARED_LIBS (às vezes necessária para compatibilidade com versões anteriores do SDK).
- Valores
-
Ativado | Desativado
- Padrão
-
ON
G
Gera artefatos de compilação, como soluções do Visual Studio e projetos do Xcode.
Por exemplo, no Windows:
-G "Visual Studio 12 Win64"
Para acessar mais informações, consulte a documentação do CMake para sua plataforma.
MINIMIZE_SIZE
Um superconjunto de ENABLE_UNITY_BUILD. Se ON, essa opção ativará ENABLE_UNITY_BUILD e configurações adicionais de redução de tamanho binário.
- Valores
-
Ativado | Desativado
- Padrão
-
DESL
NO_ENCRYPTION
Se ON, impedirá que a implementação de criptografia específica da plataforma padrão seja incorporada à biblioteca. Defina como Ativado para injetar sua própria implementação de criptografia.
- Valores
-
Ativado | Desativado
- Padrão
-
DESL
NO_HTTP_CLIENT
Se ON, impedirá que o cliente HTTP específico da plataforma padrão seja incorporado à biblioteca. Se estiver Ativado, você precisará fornecer sua própria implementação do cliente HTTP específico da plataforma.
- Valores
-
Ativado | Desativado
- Padrão
-
DESL
REGENERATE_CLIENTS
Se ON, esse parâmetro excluirá todo o código gerado e gerará os diretórios do cliente a partir da pasta code-generation/api-definitions. Por exemplo:
-DREGENERATE_CLIENTS=1
nota
Para usar o parâmetro REGENERATE_CLIENTS, você deve ter o Python 2.7PATH.
REGENERATE_DEFAULTS
Se ON, esse parâmetro excluirá todo o código padrão gerado e os gerará novamente a partir da pasta code-generation/defaults. Por exemplo:
-DREGENERATE_DEFAULTS=1
nota
Para usar o parâmetro REGENERATE_DEFAULTS, você deve ter o Python 2.7PATH.
SIMPLE_INSTALL
Se ON, o processo de instalação não vai inserir diretórios intermediários específicos da plataforma abaixo de bin/ e lib/. Ative OFF se precisar fazer lançamentos multiplataforma em um único diretório de instalação.
- Valores
-
Ativado | Desativado
- Padrão
-
ON
TARGET_ARCH
Para compilar ou criar para uma plataforma móvel, você deve especificar a plataforma de destino. Por padrão, a compilação detecta o sistema operacional host e realiza a compilação para o sistema operacional detectado.
nota
Quando TARGET_ARCH é ANDROID, opções adicionais estão disponíveis. Consulte Variáveis e opções do CMake para Android.
- Valores
-
WINDOWS | LINUX | APPLE | ANDROID
USE_CRT_HTTP_CLIENT
SeON, use o cliente HTTP de runtime comum, e os sistemas legados, como WinHttp e libcurl, não serão compilados nem incluídos.
- Valores
-
Ativado | Desativado
- Padrão
-
DESL
USE_IXML_HTTP_REQUEST_2
Somente para Windows. Se ON, use o objeto COM IXmlHttpRequest2 para a pilha HTTP.
- Valores
-
Ativado | Desativado
- Padrão
-
DESL
USE_OPENSSL
Se ON, o SDK será compilado usando OpenSSL; caso contrário, ele usará awslabs/aws-lcAWS-LC é uma biblioteca criptográfica de uso geral mantida pela equipe de criptografia da AWS para a AWS e seus clientes. A ativação do parâmetro OFF instala o AWS-LC como substituição do OpenSSL no diretório padrão do sistema. Não use se você já tiver uma instalação do OpenSSL em seu sistema.
- Valores
-
Ativado | Desativado
- Padrão
-
ON
USE_TLS_V1_2
Se ON, o cliente HTTP vai impor o TLS 1.2.
- Valores
-
Ativado | Desativado
- Padrão
-
ON
USE_TLS_V1_3
Se ON, o cliente HTTP vai impor o TLS 1.3.
- Valores
-
Ativado | Desativado
- Padrão
-
DESL
Variáveis e opções do CMake para Android.
Use as variáveis a seguir ao criar uma compilação para Android do SDK (quando TARGET_ARCH estiver definido como ANDROID).
Tópicos
ANDROID_ABI
Somente para Android. Controla para qual interface binária de aplicativo (ABI) gerar o código.
nota
No momento, nem todos os valores válidos da ABI do Android são aceitos.
- Valores
-
arm64 | armeabi-v7a | x86_64 | x86 | mips64 | mips
- Padrão
-
armeabi-v7a
ANDROID_BUILD_CURL
Somente para Android. Se ON, copile o curl também.
- Valores
-
Ativado | Desativado
- Padrão
-
ON
ANDROID_BUILD_OPENSSL
Somente para Android. Se ON, compile o Openssl também.
- Valores
-
Ativado | Desativado
- Padrão
-
ON
ANDROID_BUILD_ZLIB
Somente para Android. Se ON, compile o Zlib também.
- Valores
-
Ativado | Desativado
- Padrão
-
ON
ANDROID_NATIVE_API_LEVEL
Somente para Android. Controla em qual nível de API o SDK se baseia. Se você definir ANDROID_STL como gnustl, poderá escolher qualquer nível de API. Se você usar libc++, deverá utilizar um nível de API de pelo menos 21.
- Padrão
-
Varia de acordo com a opção de STL.
ANDROID_STL
Somente para Android. Controla qual tipo da biblioteca padrão C++ o SDK usa.
Importante
Problemas de desempenho poderão ocorrer no SDK se as opções gnustl forem usadas; é altamente recomendável usar libc++_shared ou libc++_static.
- Valores
-
libc++_shared | libc++_static | gnustl_shared | gnustl_static
- Padrão
-
libc++_shared
ANDROID_TOOLCHAIN_NAME
Somente para Android. Controla qual compilador é usado para compilar o SDK.
nota
Como o GCC está sendo descontinuado pelo Android NDK, recomendamos usar o valor padrão.
- Padrão
-
standalone-clang
DISABLE_ANDROID_STANDALONE_BUILD
Somente para Android. Por padrão, as compilações do Android usam uma cadeia de ferramentas autônoma baseada em clang criada por meio de scripts do NDK. Para usar seu próprio conjunto de ferramentas, definia essa opção como ativada.
- Valores
-
Ativado | Desativado
- Padrão
-
DESL
NDK_DIR
Somente para Android. Especifica um caminho de substituição no qual o sistema de compilação deve encontrar o Android NDK. Por padrão, o sistema de compilação vai conferir as variáveis de ambiente (ANDROID_NDK) se essa variável não estiver definida.