azure-sdk-for-cpp/sdk/attestation/azure-security-attestation/CMakeLists.txt
Larry Osterman f8ced21a1a
Remove version pin for OpenSSL (#3610)
* Remove version pin for OpenSSL

* Gratuitous change to trigger CI pipelines
2022-05-03 16:05:36 -07:00

111 lines
3.2 KiB
CMake

# Copyright (c) Microsoft Corporation. All rights reserved.
# SPDX-License-Identifier: MIT
cmake_minimum_required (VERSION 3.13)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake-modules")
include(AzureVcpkg)
az_vcpkg_integrate()
project(azure-security-attestation LANGUAGES CXX)
include(AzureTransportAdapters)
include(AzureBuildTargetForCI)
include(AzureVersion)
include(AzureCodeCoverage)
include(AzureDoxygen)
include(AzureGlobalCompileOptions)
include(AzureConfigRTTI)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
if(NOT AZ_ALL_LIBRARIES)
find_package(azure-core-cpp "1.5.0" CONFIG QUIET)
if(NOT azure-core-cpp_FOUND)
find_package(azure-core-cpp "1.5.0" REQUIRED)
endif()
endif()
find_package(OpenSSL REQUIRED)
set(
AZURE_ATTESTATION_HEADER
inc/azure/attestation/dll_import_export.hpp
inc/azure/attestation/attestation_client.hpp
inc/azure/attestation/attestation_administration_client.hpp
inc/azure/attestation.hpp
inc/azure/attestation/attestation_client_models.hpp
inc/azure/attestation/attestation_client_options.hpp
src/private/package_version.hpp
src/private/attestation_common_request.hpp
src/private/attestation_deserializers_private.hpp
src/private/attestation_client_models_private.hpp
src/private/crypto/inc/crypto.hpp
src/private/attestation_client_private.hpp)
set(
AZURE_ATTESTATION_SOURCE
src/attestation_client.cpp
src/attestation_administration_client.cpp
src/attestation_client_options.cpp
src/private/attestation_common_request.cpp
src/private/attestation_deserializers_private.cpp
src/private/jsonhelpers.cpp
src/private/attestation_client_private.cpp)
set(
AZURE_ATTESTATION_SOURCE
${AZURE_ATTESTATION_SOURCE}
src/private/crypto/openssl/opensslcrypto.cpp
src/private/crypto/openssl/opensslkeys.cpp
src/private/crypto/openssl/opensslcert.cpp)
add_library(azure-security-attestation ${AZURE_ATTESTATION_HEADER} ${AZURE_ATTESTATION_SOURCE})
create_per_service_target_build(attestation azure-security-attestation)
target_include_directories(
azure-security-attestation
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/inc>
$<INSTALL_INTERFACE:include>
)
target_link_libraries(azure-security-attestation PUBLIC Azure::azure-core OpenSSL::Crypto OpenSSL::SSL)
# make sure that users can consume the project as a library.
add_library(Azure::azure-security-attestation ALIAS azure-security-attestation)
# coverage. Has no effect if BUILD_CODE_COVERAGE is OFF
create_code_coverage(attestation azure-security-attestation azure-security-attestation-test "tests?/*;samples?/*")
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
generate_documentation(azure-security-attestation ${AZ_LIBRARY_VERSION})
az_vcpkg_export(
azure-security-attestation
ATTESTATION
"azure/attestation/dll_import_export.hpp"
)
az_rtti_setup(
azure-security-attestation
ATTESTATION
"azure/attestation/rtti.hpp"
)
if(BUILD_TESTING)
# tests
add_subdirectory(test/ut)
endif()
if(BUILD_SAMPLES)
add_subdirectory(samples)
endif()