azure-sdk-for-cpp/sdk/keyvault/azure-security-keyvault-keys/CMakeLists.txt
Larry Osterman e19dc2371c
Use GetTestCredentials in eventhubs admin client; updated samples to allow sample execution to be disabled (#5799)
* Use GetTestCredentials in eventhubs admin client; updated samples to allow sample execution to be disabled

* Made sample execution optional

* re-enabled building keyvault samples

* Disabled RetrieveMultipleEvents test

* Disabled RetrieveMultipleEvents test

* Pull request feedback
2024-07-16 10:29:54 -07:00

174 lines
5.2 KiB
CMake

# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
# setting CMAKE_TOOLCHAIN_FILE must happen before creating the project
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake-modules")
include(AzureVcpkg)
az_vcpkg_integrate()
cmake_minimum_required (VERSION 3.13)
project(azure-security-keyvault-keys LANGUAGES CXX)
# Compile Options
option(FETCH_SOURCE_DEPS "build source dependencies" OFF)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
if(FETCH_SOURCE_DEPS)
set(AZ_ALL_LIBRARIES ON)
include(FolderList)
SetCompileOptions(KEYS)
endif()
include(AzureVersion)
include(AzureCodeCoverage)
include(AzureTransportAdapters)
include(AzureDoxygen)
include(AzureGlobalCompileOptions)
include(AzureConfigRTTI)
include(AzureBuildTargetForCI)
# Add create_map_file function
include(CreateMapFile)
if(FETCH_SOURCE_DEPS)
GetFolderList(KEYS)
foreach(oneFolder IN LISTS BUILD_FOLDERS)
message("add folder ${oneFolder}")
add_subdirectory(${oneFolder} EXCLUDE_FROM_ALL)
endforeach()
elseif(NOT AZ_ALL_LIBRARIES)
find_package(azure-core-cpp CONFIG QUIET)
if(NOT azure-core-cpp_FOUND)
find_package(azure-core-cpp REQUIRED)
endif()
endif()
set(
AZURE_KEYVAULT_KEYS_HEADER
inc/azure/keyvault/keys.hpp
inc/azure/keyvault/keys/cryptography/cryptography_client.hpp
inc/azure/keyvault/keys/cryptography/cryptography_client_models.hpp
inc/azure/keyvault/keys/cryptography/cryptography_client_options.hpp
inc/azure/keyvault/keys/dll_import_export.hpp
inc/azure/keyvault/keys/key_client.hpp
inc/azure/keyvault/keys/key_client_models.hpp
inc/azure/keyvault/keys/key_client_options.hpp
inc/azure/keyvault/keys/rtti.hpp
inc/azure/keyvault/keyvault_keys.hpp
)
set(
AZURE_KEYVAULT_KEYS_SOURCE
src/cryptography/cryptography_client.cpp
src/cryptography/decrypt_parameters.cpp
src/cryptography/decrypt_result.cpp
src/cryptography/encrypt_parameters.cpp
src/cryptography/encrypt_result.cpp
src/cryptography/encryption_algorithm.cpp
src/cryptography/key_sign_parameters.cpp
src/cryptography/key_verify_parameters.cpp
src/cryptography/key_wrap_algorithm.cpp
src/cryptography/key_wrap_parameters.cpp
src/cryptography/sign_result.cpp
src/cryptography/signature_algorithm.cpp
src/cryptography/unwrap_result.cpp
src/cryptography/verify_result.cpp
src/cryptography/wrap_result.cpp
src/delete_key_operation.cpp
src/deleted_key.cpp
src/import_key_options.cpp
src/json_web_key.cpp
src/key_backup.cpp
src/key_client.cpp
src/key_client_paged_responses.cpp
src/key_curve_name.cpp
src/key_encryption_algorithm.cpp
src/key_get_random_bytes.cpp
src/key_operation.cpp
src/key_release_options.cpp
src/key_release_policy.cpp
src/key_request_parameters.cpp
src/key_rotation_policy.cpp
src/key_type.cpp
src/keyvault_key.cpp
src/keyvault_protocol.cpp
src/private/cryptography_internal_access.hpp
src/private/cryptography_serializers.hpp
src/private/key_backup.hpp
src/private/key_constants.hpp
src/private/key_request_parameters.hpp
src/private/key_serializers.hpp
src/private/key_sign_parameters.hpp
src/private/key_verify_parameters.hpp
src/private/key_wrap_parameters.hpp
src/private/keyvault_constants.hpp
src/private/keyvault_protocol.hpp
src/private/package_version.hpp
src/recover_deleted_key_operation.cpp
)
add_library(azure-security-keyvault-keys
${AZURE_KEYVAULT_KEYS_HEADER} ${AZURE_KEYVAULT_KEYS_SOURCE}
)
create_per_service_target_build(keyvault azure-security-keyvault-keys)
add_library(Azure::azure-security-keyvault-keys ALIAS azure-security-keyvault-keys)
target_include_directories(
azure-security-keyvault-keys
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/inc>
$<INSTALL_INTERFACE:include>
)
# Include shared source code
# NOTE: Use shared-code only within .cpp files. DO NEVER consume the shared-code from header files.
target_include_directories(
azure-security-keyvault-keys
PRIVATE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../azure-security-keyvault-shared/inc>
)
target_link_libraries(azure-security-keyvault-keys PUBLIC Azure::azure-core)
# coverage. Has no effect if BUILD_CODE_COVERAGE is OFF
create_code_coverage(keyvault azure-security-keyvault-keys azure-security-keyvault-keys-test "tests?/*;samples?/*")
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
generate_documentation(azure-security-keyvault-keys ${AZ_LIBRARY_VERSION})
if(BUILD_TESTING)
if (NOT AZ_ALL_LIBRARIES OR FETCH_SOURCE_DEPS)
include(AddGoogleTest)
enable_testing ()
endif()
add_subdirectory(test/ut)
add_subdirectory(test/ut-hsm)
add_subdirectory(test/macros-build)
endif()
if (BUILD_PERFORMANCE_TESTS)
add_subdirectory(test/perf)
endif()
if(BUILD_SAMPLES)
add_subdirectory(samples)
endif()
az_vcpkg_export(
azure-security-keyvault-keys
SECURITY_KEYVAULT_KEYS
"azure/keyvault/keys/dll_import_export.hpp"
)
az_rtti_setup(
azure-security-keyvault-keys
SECURITY_KEYVAULT_KEYS
"azure/keyvault/keys/rtti.hpp"
)
unset(FETCH_SOURCE_DEPS CACHE)