azure-sdk-for-cpp/sdk/keyvault/azure-security-keyvault-certificates/CMakeLists.txt
George Arama 9d1ede92ec
Prototype build from source (#3180)
* prepPR

* gitignore updates

* cspell.json

* spell

* cspell typo

* deisable option

* need to look out for this

* reenable tests

* set unset location properly

* building in docker

* format file

* final changes

* PR comments

* update git ignore

* test cmake build

* test 2

* ren steps

* test new step

* try again

* again

* oops

* try again

* put back

* test2

* test5_46

* progress

* more again

* test6_35

* test 6_55

* test_again

* move up

* test

* output params

* try try again

* one more test

* put back curl

* os

* run only on one

* try again

* typo

* switch variable

* set things back

* set things back

* prep for next step

* test source deps new

* try again

* try try again

* typo

* test rewire

* params

* typo

* fix

* get rid of vcpkg

* linux

* mac

* try brew

* try exports

* try again

* typo

* set env

* include dir

* root

* try again

* typo

* dfsfsda

* try agan

* try again

* oops

* sdfsd

* typo

* dsdsad

* hghhg

* update env

* ghhgj

* sAdsad

* try again

* fdfd

* rewrew

* dsadas

* sdasda

* ggggg

* envs2

* envs3

* typo

* order

* try again

* make sure we don't blow up other pipelines

* typo

* typo

* fsdfs

* check null

* put back
2022-01-14 13:06:00 -08:00

126 lines
3.8 KiB
CMake

# Copyright (c) Microsoft Corporation. All rights reserved.
# SPDX-License-Identifier: MIT
# 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-certificates LANGUAGES CXX)
# Compile Options
option(BUILD_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(BUILD_SOURCE_DEPS)
set(AZ_ALL_LIBRARIES ON)
include(FolderList)
SetCompileOptions(CERTIFICATES)
endif()
include(AzureVersion)
include(AzureCodeCoverage)
include(AzureTransportAdapters)
include(AzureDoxygen)
include(AzureGlobalCompileOptions)
include(AzureConfigRTTI)
# Add create_map_file function
include(CreateMapFile)
if(BUILD_SOURCE_DEPS)
GetFolderList(CERTIFICATES)
foreach(oneFolder IN LISTS BUILD_FOLDERS)
message("add folder ${oneFolder}")
add_subdirectory(${oneFolder})
endforeach()
elseif(NOT AZ_ALL_LIBRARIES)
find_package(azure-core-cpp "1.2.0" CONFIG QUIET)
if(NOT azure-core-cpp_FOUND)
find_package(azure-core-cpp "1.2.0" REQUIRED)
endif()
endif()
set(
AZURE_KEYVAULT_CERTIFICATES_HEADER
inc/azure/keyvault/certificates/certificate_client.hpp
inc/azure/keyvault/certificates/certificate_client_models.hpp
inc/azure/keyvault/certificates/certificate_client_options.hpp
inc/azure/keyvault/certificates/certificate_client_operations.hpp
)
set(
AZURE_KEYVAULT_CERTIFICATES_SOURCE
src/certificate_client.cpp
src/certificate_serializers.cpp
src/keyvault_certificates_common_request.cpp
src/certificate_client_operations.cpp
src/certificate_client_paged_response.cpp
)
add_library(azure-security-keyvault-certificates
${AZURE_KEYVAULT_CERTIFICATES_HEADER} ${AZURE_KEYVAULT_CERTIFICATES_SOURCE}
)
add_library(Azure::azure-security-keyvault-certificates ALIAS azure-security-keyvault-certificates)
target_include_directories(
azure-security-keyvault-certificates
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/inc>
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/../../../sdk/core/inc>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/sdk/core/azure-core/inc>
$<INSTALL_INTERFACE:include>
)
message($<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/inc)
# 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-certificates
PRIVATE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../azure-security-keyvault-shared/inc>
)
target_link_libraries(azure-security-keyvault-certificates PUBLIC Azure::azure-core)
# coverage. Has no effect if BUILD_CODE_COVERAGE is OFF
create_code_coverage(keyvault azure-security-keyvault-certificates azure-security-keyvault-certificates-test "tests?/*;samples?/*")
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
generate_documentation(azure-security-keyvault-certificates ${AZ_LIBRARY_VERSION})
if(BUILD_TESTING)
if (NOT AZ_ALL_LIBRARIES OR BUILD_SOURCE_DEPS)
include(AddGoogleTest)
enable_testing ()
endif()
add_subdirectory(test/ut)
endif()
# if (BUILD_PERFORMANCE_TESTS)
# add_subdirectory(test/perf)
# endif()
if(BUILD_SAMPLES)
add_subdirectory(test/samples)
endif()
az_vcpkg_export(
azure-security-keyvault-certificates
SECURITY_KEYVAULT_CERTIFICATES
"azure/keyvault/certificates/dll_import_export.hpp"
)
az_rtti_setup(
azure-security-keyvault-certificates
SECURITY_KEYVAULT_CERTIFICATES
"azure/keyvault/certificates/rtti.hpp"
)
unset(BUILD_SOURCE_DEPS CACHE)