diff --git a/CMakeLists.txt b/CMakeLists.txt index 75a40cfc7..cf87aa6d1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,16 +13,17 @@ option(BUILD_TRANSPORT_CURL "Build an HTTP transport implementation with CURL" O option(BUILD_TRANSPORT_WINHTTP "Build an HTTP transport implementation with WIN HTTP" OFF) option(BUILD_TRANSPORT_CUSTOM "Implementation for AzureSdkGetCustomHttpTransport function must be linked to the final application" OFF) option(BUILD_TESTING "Build test cases" OFF) +option(BUILD_SAMPLES "Build sample application for Azure Storage clients" OFF) option(BUILD_RTTI "Build libraries with run-time type information." ON) option(BUILD_CODE_COVERAGE "Build gcov targets for HTML and XML reports. Requires debug build and BUILD_TESTING" OFF) option(BUILD_DOCUMENTATION "Create HTML based API documentation (requires Doxygen)" OFF) option(RUN_LONG_UNIT_TESTS "Tests that takes more than 5 minutes to complete. No effect if BUILD_TESTING is OFF" OFF) -option(BUILD_STORAGE_SAMPLES "Build sample application for Azure Storage clients" OFF) option(BUILD_PERFORMANCE_TESTS "Build the performance test library" OFF) option(MSVC_USE_STATIC_CRT "(MSVC only) Set to ON to link SDK with static CRT (/MT or /MTd switch)." OFF) include(AzureTransportAdapters) include(AzureVcpkg) +include(AzureBuildTargetForCI) az_vcpkg_integrate() diff --git a/CMakeSettings.json b/CMakeSettings.json index 12fe40e82..eae3e9380 100644 --- a/CMakeSettings.json +++ b/CMakeSettings.json @@ -7,7 +7,7 @@ "inheritEnvironments": [ "msvc_x64_x64" ], "buildRoot": "${projectDir}\\out\\build\\${name}", "installRoot": "${projectDir}\\out\\install\\${name}", - "cmakeCommandArgs": "-DINSTALL_GTEST=OFF -DBUILD_TESTING=ON -DBUILD_TRANSPORT_CURL=ON -DBUILD_STORAGE_SAMPLES=ON", + "cmakeCommandArgs": "-DINSTALL_GTEST=OFF -DBUILD_TESTING=ON -DBUILD_TRANSPORT_CURL=ON -DBUILD_SAMPLES=ON", "buildCommandArgs": "-v", "ctestCommandArgs": "", "variables": [ @@ -25,7 +25,7 @@ "inheritEnvironments": [ "msvc_x64_x64" ], "buildRoot": "${projectDir}\\out\\build\\${name}", "installRoot": "${projectDir}\\out\\install\\${name}", - "cmakeCommandArgs": "-DINSTALL_GTEST=OFF -DBUILD_TESTING=ON -DBUILD_STORAGE_SAMPLES=ON", + "cmakeCommandArgs": "-DINSTALL_GTEST=OFF -DBUILD_TESTING=ON -DBUILD_SAMPLES=ON", "buildCommandArgs": "-v", "ctestCommandArgs": "", "variables": [ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d6cd53930..f962148a4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -138,8 +138,8 @@ The following CMake options are available for adding/removing project features. OFF -BUILD_STORAGE_SAMPLES -Build Azure Storage clients sample application. +BUILD_SAMPLES +Build Azure SDK for C++ sample applications. OFF diff --git a/cmake-modules/AzureBuildTargetForCI.cmake b/cmake-modules/AzureBuildTargetForCI.cmake new file mode 100644 index 000000000..510b2bb6d --- /dev/null +++ b/cmake-modules/AzureBuildTargetForCI.cmake @@ -0,0 +1,11 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# SPDX-License-Identifier: MIT +# +# Defines utility functions to create build targets for CI. +# + +macro(create_per_service_target_build target service) + + file(APPEND ${CMAKE_BINARY_DIR}/${service}-targets-build.txt "${target}\n") + +endmacro() diff --git a/eng/pipelines/templates/jobs/archetype-sdk-client.yml b/eng/pipelines/templates/jobs/archetype-sdk-client.yml index 981dd7774..ebae72937 100644 --- a/eng/pipelines/templates/jobs/archetype-sdk-client.yml +++ b/eng/pipelines/templates/jobs/archetype-sdk-client.yml @@ -103,6 +103,7 @@ jobs: - template: /eng/pipelines/templates/steps/cmake-build.yml parameters: + ServiceDirectory: ${{ parameters.ServiceDirectory }} Build: false GenerateArgs: >- -DINSTALL_GTEST=OFF diff --git a/eng/pipelines/templates/jobs/archetype-sdk-tests.yml b/eng/pipelines/templates/jobs/archetype-sdk-tests.yml index 026674443..8a7fc310b 100644 --- a/eng/pipelines/templates/jobs/archetype-sdk-tests.yml +++ b/eng/pipelines/templates/jobs/archetype-sdk-tests.yml @@ -68,7 +68,7 @@ jobs: VcpkgInstall: 'curl[ssl] libxml2 openssl' VCPKG_DEFAULT_TRIPLET: 'x64-linux' # Builds samples and run them against the deployed resources. Samples requires Azure Account, so only works on live tests. - CmakeArgs: ' -DBUILD_TESTING=ON -DBUILD_SAMPLES=ON -DBUILD_STORAGE_SAMPLES=ON' + CmakeArgs: ' -DBUILD_TESTING=ON -DBUILD_SAMPLES=ON ' BuildArgs: '-j 4' RunSamples: 1 Ubuntu20_x64_no_rtti: @@ -197,6 +197,7 @@ jobs: - template: /eng/pipelines/templates/steps/cmake-build.yml parameters: + ServiceDirectory: ${{ parameters.ServiceDirectory }} GenerateArgs: $(CmakeArgs) BuildArgs: "$(BuildArgs)" Env: "$(CmakeEnvArg)" diff --git a/eng/pipelines/templates/jobs/ci.tests.yml b/eng/pipelines/templates/jobs/ci.tests.yml index 6c4e87008..988b3ec28 100644 --- a/eng/pipelines/templates/jobs/ci.tests.yml +++ b/eng/pipelines/templates/jobs/ci.tests.yml @@ -132,6 +132,7 @@ jobs: - template: /eng/pipelines/templates/steps/cmake-build.yml parameters: + ServiceDirectory: ${{ parameters.ServiceDirectory }} GenerateArgs: "$(CmakeArgs)" BuildArgs: "$(BuildArgs)" Env: "$(CmakeEnvArg)" diff --git a/eng/pipelines/templates/stages/platform-matrix.json b/eng/pipelines/templates/stages/platform-matrix.json index 748ef1986..bf38f6b78 100644 --- a/eng/pipelines/templates/stages/platform-matrix.json +++ b/eng/pipelines/templates/stages/platform-matrix.json @@ -140,7 +140,7 @@ "PublishMapFiles": "true" }, "included_samples": { - "CmakeArgs": " -DBUILD_TESTING=ON -DBUILD_SAMPLES=ON -DBUILD_STORAGE_SAMPLES=ON", + "CmakeArgs": " -DBUILD_TESTING=ON -DBUILD_SAMPLES=ON ", "PublishMapFiles": "true" } } diff --git a/eng/pipelines/templates/steps/cmake-build.yml b/eng/pipelines/templates/steps/cmake-build.yml index a755a2b1e..7a2d75e36 100644 --- a/eng/pipelines/templates/steps/cmake-build.yml +++ b/eng/pipelines/templates/steps/cmake-build.yml @@ -3,6 +3,7 @@ parameters: GenerateArgs: '' Build: true BuildArgs: '' + ServiceDirectory: '' steps: @@ -17,7 +18,15 @@ steps: workingDirectory: build displayName: cmake generate - - ${{ if eq(parameters.Build, true) }}: +# Core should build all cmake tagets + - ${{ if and(eq(parameters.Build, true), eq(parameters.ServiceDirectory, 'core')) }}: - script: cmake --build . ${{ parameters.BuildArgs }} workingDirectory: build - displayName: cmake build + displayName: cmake build All + +# Non-core services define the list of targets to build + - ${{ if and(eq(parameters.Build, true) , ne(parameters.ServiceDirectory, 'core')) }}: + - pwsh: cmake --build . ${{ parameters.BuildArgs }} --target (Get-Content ${{ parameters.ServiceDirectory }}-targets-build.txt) + workingDirectory: build + displayName: cmake build Targets + diff --git a/sdk/identity/azure-identity/CMakeLists.txt b/sdk/identity/azure-identity/CMakeLists.txt index d0f4e8e1c..86172e8f4 100644 --- a/sdk/identity/azure-identity/CMakeLists.txt +++ b/sdk/identity/azure-identity/CMakeLists.txt @@ -19,6 +19,7 @@ include(AzureTransportAdapters) include(AzureDoxygen) include(AzureGlobalCompileOptions) include(AzureConfigRTTI) +include(AzureBuildTargetForCI) # Add create_map_file function include(CreateMapFile) @@ -53,6 +54,7 @@ set( ) add_library(azure-identity ${AZURE_IDENTITY_HEADER} ${AZURE_IDENTITY_SOURCE}) +create_per_service_target_build(azure-identity identity) # make sure that users can consume the project as a library. add_library(Azure::azure-identity ALIAS azure-identity) @@ -93,12 +95,13 @@ if(BUILD_TESTING) add_subdirectory(test/e2e) add_subdirectory(test/ut) + +endif() + +if (BUILD_SAMPLES) + add_subdirectory(samples) endif() if (BUILD_PERFORMANCE_TESTS) add_subdirectory(test/perf) endif() - -if (AZ_ALL_LIBRARIES) - add_subdirectory(samples) -endif() diff --git a/sdk/identity/azure-identity/samples/CMakeLists.txt b/sdk/identity/azure-identity/samples/CMakeLists.txt index e53bd35da..e2b9ba25d 100644 --- a/sdk/identity/azure-identity/samples/CMakeLists.txt +++ b/sdk/identity/azure-identity/samples/CMakeLists.txt @@ -10,11 +10,14 @@ set(CMAKE_CXX_STANDARD_REQUIRED True) add_executable(client_secret_credential_sample client_secret_credential.cpp) target_link_libraries(client_secret_credential_sample PRIVATE azure-identity) target_include_directories(client_secret_credential_sample PRIVATE .) +create_per_service_target_build(client_secret_credential_sample identity) add_executable(environment_credential_sample environment_credential.cpp) target_link_libraries(environment_credential_sample PRIVATE azure-identity) target_include_directories(environment_credential_sample PRIVATE .) +create_per_service_target_build(environment_credential_sample identity) add_executable(managed_identity_credential_sample managed_identity_credential.cpp) target_link_libraries(managed_identity_credential_sample PRIVATE azure-identity) target_include_directories(managed_identity_credential_sample PRIVATE .) +create_per_service_target_build(managed_identity_credential_sample identity) diff --git a/sdk/identity/azure-identity/test/e2e/CMakeLists.txt b/sdk/identity/azure-identity/test/e2e/CMakeLists.txt index 0e9a6081b..7861ca69d 100644 --- a/sdk/identity/azure-identity/test/e2e/CMakeLists.txt +++ b/sdk/identity/azure-identity/test/e2e/CMakeLists.txt @@ -11,5 +11,7 @@ add_executable ( azure-identity-e2e-test azure_identity_e2e_test.cpp ) +create_per_service_target_build(azure-identity-e2e-test identity) + create_map_file(azure-identity-e2e-test azure-identity-e2e-test.map) target_link_libraries(azure-identity-e2e-test PRIVATE azure-identity) diff --git a/sdk/identity/azure-identity/test/perf/CMakeLists.txt b/sdk/identity/azure-identity/test/perf/CMakeLists.txt index adf4fddb8..877ca74d1 100644 --- a/sdk/identity/azure-identity/test/perf/CMakeLists.txt +++ b/sdk/identity/azure-identity/test/perf/CMakeLists.txt @@ -22,6 +22,7 @@ add_executable ( azure-identity-perf ${AZURE_IDENTITY_PERF_TEST_HEADER} ${AZURE_IDENTITY_PERF_TEST_SOURCE} ) +create_per_service_target_build(azure-identity-perf identity) create_map_file(azure-identity-perf azure-identity-perf.map) diff --git a/sdk/identity/azure-identity/test/ut/CMakeLists.txt b/sdk/identity/azure-identity/test/ut/CMakeLists.txt index 2101d2b3c..79f40641f 100644 --- a/sdk/identity/azure-identity/test/ut/CMakeLists.txt +++ b/sdk/identity/azure-identity/test/ut/CMakeLists.txt @@ -26,6 +26,8 @@ add_executable ( token_credential_impl_test.cpp token_credential_test.cpp ) + +create_per_service_target_build(azure-identity-test identity) create_map_file(azure-identity-test azure-identity-test.map) diff --git a/sdk/keyvault/azure-security-keyvault-certificates/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-certificates/CMakeLists.txt index f0806aa31..c232ba1d6 100644 --- a/sdk/keyvault/azure-security-keyvault-certificates/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-certificates/CMakeLists.txt @@ -29,6 +29,7 @@ include(AzureTransportAdapters) include(AzureDoxygen) include(AzureGlobalCompileOptions) include(AzureConfigRTTI) +include(AzureBuildTargetForCI) # Add create_map_file function include(CreateMapFile) @@ -66,6 +67,7 @@ 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) +create_per_service_target_build(azure-security-keyvault-certificates keyvault) target_include_directories( azure-security-keyvault-certificates diff --git a/sdk/keyvault/azure-security-keyvault-certificates/CMakeSettings.json b/sdk/keyvault/azure-security-keyvault-certificates/CMakeSettings.json index dd66e2bd8..8d56896fe 100644 --- a/sdk/keyvault/azure-security-keyvault-certificates/CMakeSettings.json +++ b/sdk/keyvault/azure-security-keyvault-certificates/CMakeSettings.json @@ -7,7 +7,7 @@ "inheritEnvironments": [ "msvc_x64_x64" ], "buildRoot": "${projectDir}\\out\\build\\${name}", "installRoot": "${projectDir}\\out\\install\\${name}", - "cmakeCommandArgs": "-DINSTALL_GTEST=OFF -DBUILD_TESTING=ON -DBUILD_TRANSPORT_CURL=ON -DBUILD_STORAGE_SAMPLES=ON", + "cmakeCommandArgs": "-DINSTALL_GTEST=OFF -DBUILD_TESTING=ON -DBUILD_TRANSPORT_CURL=ON -DBUILD_SAMPLES=ON", "buildCommandArgs": "-v", "ctestCommandArgs": "", "variables": [ @@ -25,7 +25,7 @@ "inheritEnvironments": [ "msvc_x64_x64" ], "buildRoot": "${projectDir}\\out\\build\\${name}", "installRoot": "${projectDir}\\out\\install\\${name}", - "cmakeCommandArgs": "-DINSTALL_GTEST=OFF -DBUILD_TESTING=ON -DBUILD_STORAGE_SAMPLES=ON", + "cmakeCommandArgs": "-DINSTALL_GTEST=OFF -DBUILD_TESTING=ON -DBUILD_SAMPLES=ON", "buildCommandArgs": "-v", "ctestCommandArgs": "", "variables": [ diff --git a/sdk/keyvault/azure-security-keyvault-certificates/test/samples/certificate-basic-operations/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-certificates/test/samples/certificate-basic-operations/CMakeLists.txt index d1a041c16..1db39bdf8 100644 --- a/sdk/keyvault/azure-security-keyvault-certificates/test/samples/certificate-basic-operations/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-certificates/test/samples/certificate-basic-operations/CMakeLists.txt @@ -11,6 +11,7 @@ add_executable ( certificate-basic-operations certificate_basic_operations.cpp ) +create_per_service_target_build(certificate-basic-operations keyvault) target_link_libraries(certificate-basic-operations PRIVATE azure-security-keyvault-certificates azure-identity ) diff --git a/sdk/keyvault/azure-security-keyvault-certificates/test/samples/certificate-get-certificates/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-certificates/test/samples/certificate-get-certificates/CMakeLists.txt index cfd500e87..d6a904619 100644 --- a/sdk/keyvault/azure-security-keyvault-certificates/test/samples/certificate-get-certificates/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-certificates/test/samples/certificate-get-certificates/CMakeLists.txt @@ -11,6 +11,7 @@ add_executable ( certificate-get-certificates certificate_get_certificates.cpp ) +create_per_service_target_build(certificate-get-certificates keyvault) target_link_libraries(certificate-get-certificates PRIVATE azure-security-keyvault-certificates azure-identity ) diff --git a/sdk/keyvault/azure-security-keyvault-certificates/test/samples/certificate-import-certificate/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-certificates/test/samples/certificate-import-certificate/CMakeLists.txt index b0f305995..7865dd34f 100644 --- a/sdk/keyvault/azure-security-keyvault-certificates/test/samples/certificate-import-certificate/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-certificates/test/samples/certificate-import-certificate/CMakeLists.txt @@ -11,6 +11,7 @@ add_executable ( certificate-import-certificate certificate_import_certificate.cpp ) +create_per_service_target_build(certificate-import-certificate keyvault) target_link_libraries(certificate-import-certificate PRIVATE azure-security-keyvault-certificates azure-identity ) diff --git a/sdk/keyvault/azure-security-keyvault-certificates/test/ut/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-certificates/test/ut/CMakeLists.txt index defabc1f6..c907a1484 100644 --- a/sdk/keyvault/azure-security-keyvault-certificates/test/ut/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-certificates/test/ut/CMakeLists.txt @@ -18,6 +18,8 @@ add_executable ( certificate_client_test.cpp certificate_client_base_test.hpp) +create_per_service_target_build(azure-security-keyvault-certificates-test keyvault) + create_map_file(azure-security-keyvault-certificates-test azure-security-keyvault-certificates-test.map) if (MSVC) diff --git a/sdk/keyvault/azure-security-keyvault-keys/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-keys/CMakeLists.txt index 14ae07d89..7e1d6154b 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-keys/CMakeLists.txt @@ -19,6 +19,7 @@ include(AzureTransportAdapters) include(AzureDoxygen) include(AzureGlobalCompileOptions) include(AzureConfigRTTI) +include(AzureBuildTargetForCI) # Add create_map_file function include(CreateMapFile) @@ -89,6 +90,7 @@ set( add_library(azure-security-keyvault-keys ${AZURE_KEYVAULT_KEYS_HEADER} ${AZURE_KEYVAULT_KEYS_SOURCE} ) +create_per_service_target_build(azure-security-keyvault-keys keyvault) add_library(Azure::azure-security-keyvault-keys ALIAS azure-security-keyvault-keys) target_include_directories( diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/perf/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-keys/test/perf/CMakeLists.txt index 7f043e680..e6931fc53 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/perf/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-keys/test/perf/CMakeLists.txt @@ -22,7 +22,7 @@ add_executable ( azure-security-keyvault-keys-perf ${AZURE_KEYVAULT_KEY_PERF_TEST_HEADER} ${AZURE_KEYVAULT_KEY_PERF_TEST_SOURCE} ) - +create_per_service_target_build(azure-security-keyvault-keys-perf keyvault) create_map_file(azure-security-keyvault-keys-perf azure-security-keyvault-keys-perf.map) # Include the headers from the project. diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample1-hello-world/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample1-hello-world/CMakeLists.txt index 2196176bc..73fda18df 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample1-hello-world/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample1-hello-world/CMakeLists.txt @@ -12,6 +12,8 @@ add_executable ( sample1_hello_world.cpp ) +create_per_service_target_build(sample1-hello-world keyvault) + # Add the sample to be run on CI. # CI pipeline reads the {service}-samples.txt and runs the binaries listed there. file(APPEND ${CMAKE_BINARY_DIR}/keyvault-samples.txt "${CMAKE_CURRENT_BINARY_DIR}/sample1-hello-world\n") diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample2-backup-and-restore/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample2-backup-and-restore/CMakeLists.txt index 18e0fd56f..349115e97 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample2-backup-and-restore/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample2-backup-and-restore/CMakeLists.txt @@ -11,6 +11,7 @@ add_executable ( sample2-backup-and-restore sample2_backup_and_restore.cpp ) +create_per_service_target_build(sample2-backup-and-restore keyvault) # Add the sample to be run on CI. # CI pipeline reads the {service}-samples.txt and runs the binaries listed there. diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample3-get-keys/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample3-get-keys/CMakeLists.txt index ae3e4aba8..ae6f05f96 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample3-get-keys/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample3-get-keys/CMakeLists.txt @@ -11,6 +11,7 @@ add_executable ( sample3-get-keys sample3_get_keys.cpp ) +create_per_service_target_build(sample3-get-keys keyvault) # Add the sample to be run on CI. # CI pipeline reads the {service}-samples.txt and runs the binaries listed there. diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample4-encrypt-decrypt/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample4-encrypt-decrypt/CMakeLists.txt index 0ae548158..cde808371 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample4-encrypt-decrypt/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample4-encrypt-decrypt/CMakeLists.txt @@ -11,6 +11,7 @@ add_executable ( sample4-encrypt-decrypt sample4_encrypt_decrypt.cpp ) +create_per_service_target_build(sample4-encrypt-decrypt keyvault) # Add the sample to be run on CI. # CI pipeline reads the {service}-samples.txt and runs the binaries listed there. diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample5-sign-verify/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample5-sign-verify/CMakeLists.txt index 5f1b7a2b5..b17ce7076 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample5-sign-verify/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample5-sign-verify/CMakeLists.txt @@ -11,6 +11,7 @@ add_executable ( sample5-sign-verify sample5_sign_verify.cpp ) +create_per_service_target_build(sample5-sign-verify keyvault) # Add the sample to be run on CI. # CI pipeline reads the {service}-samples.txt and runs the binaries listed there. diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample6-wrap-unwrap/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample6-wrap-unwrap/CMakeLists.txt index 50ccde95d..f6fc48017 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample6-wrap-unwrap/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-keys/test/samples/sample6-wrap-unwrap/CMakeLists.txt @@ -11,6 +11,7 @@ add_executable ( sample6-wrap-unwrap sample6_wrap_unwrap.cpp ) +create_per_service_target_build(sample6-wrap-unwrap keyvault) # Add the sample to be run on CI. # CI pipeline reads the {service}-samples.txt and runs the binaries listed there. diff --git a/sdk/keyvault/azure-security-keyvault-keys/test/ut/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-keys/test/ut/CMakeLists.txt index f43589d84..d3bf3a02f 100644 --- a/sdk/keyvault/azure-security-keyvault-keys/test/ut/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-keys/test/ut/CMakeLists.txt @@ -30,6 +30,7 @@ add_executable ( mocked_transport_adapter_test.hpp ) +create_per_service_target_build(azure-security-keyvault-keys-test keyvault) create_map_file(azure-security-keyvault-keys-test azure-security-keyvault-keys-test.map) if (MSVC) diff --git a/sdk/keyvault/azure-security-keyvault-secrets/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-secrets/CMakeLists.txt index 8df33e7f1..e9e1c28d0 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-secrets/CMakeLists.txt @@ -19,6 +19,7 @@ include(AzureTransportAdapters) include(AzureDoxygen) include(AzureGlobalCompileOptions) include(AzureConfigRTTI) +include(AzureBuildTargetForCI) # Add create_map_file function include(CreateMapFile) @@ -59,6 +60,7 @@ set( add_library(azure-security-keyvault-secrets ${AZURE_SECURITY_KEYVAULT_SECRETS_HEADER} ${AZURE_SECURITY_KEYVAULT_SECRETS_SOURCE}) add_library(Azure::azure-security-keyvault-secrets ALIAS azure-security-keyvault-secrets) +create_per_service_target_build(azure-security-keyvault-secrets keyvault) target_include_directories( azure-security-keyvault-secrets diff --git a/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample1-basic-operations/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample1-basic-operations/CMakeLists.txt index b673ba5f3..61bc77e0f 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample1-basic-operations/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample1-basic-operations/CMakeLists.txt @@ -11,6 +11,7 @@ add_executable ( sample1-basic-operations sample1_basic_operations.cpp ) +create_per_service_target_build(sample1-basic-operations keyvault) target_link_libraries(sample1-basic-operations PRIVATE azure-security-keyvault-secrets azure-identity) diff --git a/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample2-backup-restore/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample2-backup-restore/CMakeLists.txt index a4080b5c2..c0434de98 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample2-backup-restore/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample2-backup-restore/CMakeLists.txt @@ -12,6 +12,8 @@ add_executable ( sample2_backup_restore.cpp ) +create_per_service_target_build(sample2-backup-restore keyvault) + target_link_libraries(sample2-backup-restore PRIVATE azure-security-keyvault-secrets azure-identity) # Add the sample to be run on CI. diff --git a/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample3-delete-recover/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample3-delete-recover/CMakeLists.txt index d2f81abdb..74932d491 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample3-delete-recover/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample3-delete-recover/CMakeLists.txt @@ -12,6 +12,8 @@ add_executable ( sample3_delete_recover.cpp ) +create_per_service_target_build(sample3-delete-recover keyvault) + target_link_libraries(sample3-delete-recover PRIVATE azure-security-keyvault-secrets azure-identity) # Add the sample to be run on CI. diff --git a/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample4-get-secrets-deleted/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample4-get-secrets-deleted/CMakeLists.txt index f31a8aaa9..e1a42dedc 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample4-get-secrets-deleted/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample4-get-secrets-deleted/CMakeLists.txt @@ -12,6 +12,8 @@ add_executable ( sample4_get_secrets_deleted.cpp ) +create_per_service_target_build(sample4-get-secrets-deleted keyvault) + target_link_libraries(sample4-get-secrets-deleted PRIVATE azure-security-keyvault-secrets azure-identity) # Add the sample to be run on CI. diff --git a/sdk/keyvault/azure-security-keyvault-secrets/test/test-app/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-secrets/test/test-app/CMakeLists.txt index 3ae2ee4fd..332cfb8b0 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/test/test-app/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-secrets/test/test-app/CMakeLists.txt @@ -13,6 +13,8 @@ add_executable ( macro_guard.cpp ) +create_per_service_target_build(keyvault-secrets-test-app keyvault) + create_map_file(keyvault-secrets-test-app keyvault-secrets-test-app.map) if (MSVC) diff --git a/sdk/keyvault/azure-security-keyvault-secrets/test/ut/CMakeLists.txt b/sdk/keyvault/azure-security-keyvault-secrets/test/ut/CMakeLists.txt index e49858686..d2dbd83ad 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/test/ut/CMakeLists.txt +++ b/sdk/keyvault/azure-security-keyvault-secrets/test/ut/CMakeLists.txt @@ -26,6 +26,7 @@ add_executable ( secret_paged_deserialize_test.hpp secret_client_base_test.hpp) +create_per_service_target_build(azure-security-keyvault-secrets-test keyvault) create_map_file(azure-security-keyvault-secrets-test azure-security-keyvault-secrets-test.map) if (MSVC) diff --git a/sdk/storage/CMakeLists.txt b/sdk/storage/CMakeLists.txt index e59f70ef9..a23f27eae 100644 --- a/sdk/storage/CMakeLists.txt +++ b/sdk/storage/CMakeLists.txt @@ -4,7 +4,6 @@ cmake_minimum_required (VERSION 3.13) project (azure-storage LANGUAGES CXX) -option(BUILD_STORAGE_SAMPLES "Build storage sample codes" ON) add_subdirectory(azure-storage-common) add_subdirectory(azure-storage-blobs) diff --git a/sdk/storage/azure-storage-blobs/CMakeLists.txt b/sdk/storage/azure-storage-blobs/CMakeLists.txt index 8fd4877f3..6ea02fcf7 100644 --- a/sdk/storage/azure-storage-blobs/CMakeLists.txt +++ b/sdk/storage/azure-storage-blobs/CMakeLists.txt @@ -17,6 +17,7 @@ include(AzureTransportAdapters) include(AzureDoxygen) include(AzureGlobalCompileOptions) include(AzureConfigRTTI) +include(AzureBuildTargetForCI) az_vcpkg_integrate() @@ -60,6 +61,7 @@ set( ) add_library(azure-storage-blobs ${AZURE_STORAGE_BLOB_HEADER} ${AZURE_STORAGE_BLOB_SOURCE}) +create_per_service_target_build(azure-storage-blobs storage) # make sure that users can consume the project as a library. add_library(Azure::azure-storage-blobs ALIAS azure-storage-blobs) @@ -96,7 +98,7 @@ if(BUILD_TESTING) add_subdirectory(test/fault-injector) endif() -if(BUILD_STORAGE_SAMPLES) +if(BUILD_SAMPLES) add_subdirectory(samples) endif() diff --git a/sdk/storage/azure-storage-blobs/samples/CMakeLists.txt b/sdk/storage/azure-storage-blobs/samples/CMakeLists.txt index af3079b33..a5b30df62 100644 --- a/sdk/storage/azure-storage-blobs/samples/CMakeLists.txt +++ b/sdk/storage/azure-storage-blobs/samples/CMakeLists.txt @@ -5,12 +5,16 @@ cmake_minimum_required (VERSION 3.13) add_executable(blob-getting-started blob_getting_started.cpp) target_link_libraries(blob-getting-started PRIVATE azure-storage-blobs) +create_per_service_target_build(blob-getting-started storage) add_executable(blob-list-operation blob_list_operation.cpp) target_link_libraries(blob-list-operation PRIVATE azure-storage-blobs) +create_per_service_target_build(blob-list-operation storage) add_executable(blob-sas blob_sas.cpp) target_link_libraries(blob-sas PRIVATE azure-storage-blobs) +create_per_service_target_build(blob-sas storage) add_executable(transactional-checksum transactional_checksum.cpp) target_link_libraries(transactional-checksum PRIVATE azure-storage-blobs) +create_per_service_target_build(transactional-checksum storage) diff --git a/sdk/storage/azure-storage-blobs/test/fault-injector/CMakeLists.txt b/sdk/storage/azure-storage-blobs/test/fault-injector/CMakeLists.txt index 8d30e6259..9577b019c 100644 --- a/sdk/storage/azure-storage-blobs/test/fault-injector/CMakeLists.txt +++ b/sdk/storage/azure-storage-blobs/test/fault-injector/CMakeLists.txt @@ -13,5 +13,6 @@ add_executable ( azure-storage-blobs-test-fault-injector azure_storage_blobs_fault_injector_test.cpp ) +create_per_service_target_build(azure-storage-blobs-test-fault-injector storage) target_link_libraries(azure-storage-blobs-test-fault-injector PRIVATE azure-storage-blobs) diff --git a/sdk/storage/azure-storage-blobs/test/perf/CMakeLists.txt b/sdk/storage/azure-storage-blobs/test/perf/CMakeLists.txt index 49fbb4672..9b16622cf 100644 --- a/sdk/storage/azure-storage-blobs/test/perf/CMakeLists.txt +++ b/sdk/storage/azure-storage-blobs/test/perf/CMakeLists.txt @@ -33,6 +33,8 @@ add_executable ( ${AZURE_STORAGE_BLOBS_PERF_TEST_HEADER} ${AZURE_STORAGE_BLOBS_PERF_TEST_SOURCE} ) +create_per_service_target_build(azure-storage-blobs-perf storage) + # Include the headers from the project. target_include_directories( azure-storage-blobs-perf diff --git a/sdk/storage/azure-storage-blobs/test/ut/CMakeLists.txt b/sdk/storage/azure-storage-blobs/test/ut/CMakeLists.txt index 6358351a0..b549631d0 100644 --- a/sdk/storage/azure-storage-blobs/test/ut/CMakeLists.txt +++ b/sdk/storage/azure-storage-blobs/test/ut/CMakeLists.txt @@ -32,6 +32,8 @@ add_executable ( ${CMAKE_CURRENT_SOURCE_DIR}/../../../azure-storage-common/test/ut/test_base.hpp ) +create_per_service_target_build(azure-storage-blobs-test storage) + create_map_file(azure-storage-blobs-test azure-storage-blobs-test.map) # Include shared test headers diff --git a/sdk/storage/azure-storage-common/CMakeLists.txt b/sdk/storage/azure-storage-common/CMakeLists.txt index e20884ca2..73e0c4bc8 100644 --- a/sdk/storage/azure-storage-common/CMakeLists.txt +++ b/sdk/storage/azure-storage-common/CMakeLists.txt @@ -17,6 +17,7 @@ include(AzureTransportAdapters) include(AzureDoxygen) include(AzureGlobalCompileOptions) include(AzureConfigRTTI) +include(AzureBuildTargetForCI) az_vcpkg_integrate() @@ -66,6 +67,7 @@ set( ) add_library(azure-storage-common ${AZURE_STORAGE_COMMON_HEADER} ${AZURE_STORAGE_COMMON_SOURCE}) +create_per_service_target_build(azure-storage-common storage) # make sure that users can consume the project as a library. add_library(Azure::azure-storage-common ALIAS azure-storage-common) diff --git a/sdk/storage/azure-storage-common/test/ut/CMakeLists.txt b/sdk/storage/azure-storage-common/test/ut/CMakeLists.txt index 040d4c334..3e91ec1c2 100644 --- a/sdk/storage/azure-storage-common/test/ut/CMakeLists.txt +++ b/sdk/storage/azure-storage-common/test/ut/CMakeLists.txt @@ -21,7 +21,7 @@ add_executable ( test_base.cpp test_base.hpp ) - +create_per_service_target_build(azure-storage-common-test storage) create_map_file(azure-storage-common-test azure-storage-common-test.map) if (MSVC) diff --git a/sdk/storage/azure-storage-files-datalake/CMakeLists.txt b/sdk/storage/azure-storage-files-datalake/CMakeLists.txt index ac6e119fb..46f4d15e1 100644 --- a/sdk/storage/azure-storage-files-datalake/CMakeLists.txt +++ b/sdk/storage/azure-storage-files-datalake/CMakeLists.txt @@ -17,6 +17,7 @@ include(AzureTransportAdapters) include(AzureDoxygen) include(AzureGlobalCompileOptions) include(AzureConfigRTTI) +include(AzureBuildTargetForCI) az_vcpkg_integrate() @@ -64,6 +65,7 @@ add_library(azure-storage-files-datalake ${AZURE_STORAGE_FILES_DATALAKE_HEADER} # make sure that users can consume the project as a library. add_library(Azure::azure-storage-files-datalake ALIAS azure-storage-files-datalake) +create_per_service_target_build(azure-storage-files-datalake storage) target_include_directories( azure-storage-files-datalake @@ -96,6 +98,6 @@ if(BUILD_TESTING) add_subdirectory(test/ut) endif() -if(BUILD_STORAGE_SAMPLES) +if(BUILD_SAMPLES) add_subdirectory(samples) endif() diff --git a/sdk/storage/azure-storage-files-datalake/samples/CMakeLists.txt b/sdk/storage/azure-storage-files-datalake/samples/CMakeLists.txt index e8bae7643..9bec84521 100644 --- a/sdk/storage/azure-storage-files-datalake/samples/CMakeLists.txt +++ b/sdk/storage/azure-storage-files-datalake/samples/CMakeLists.txt @@ -4,4 +4,5 @@ cmake_minimum_required (VERSION 3.13) add_executable(datalake-getting-started datalake_getting_started.cpp) +create_per_service_target_build(datalake-getting-started storage) target_link_libraries(datalake-getting-started PRIVATE azure-storage-files-datalake) diff --git a/sdk/storage/azure-storage-files-datalake/test/ut/CMakeLists.txt b/sdk/storage/azure-storage-files-datalake/test/ut/CMakeLists.txt index abbc471a9..b562870bd 100644 --- a/sdk/storage/azure-storage-files-datalake/test/ut/CMakeLists.txt +++ b/sdk/storage/azure-storage-files-datalake/test/ut/CMakeLists.txt @@ -30,7 +30,7 @@ add_executable ( ${CMAKE_CURRENT_SOURCE_DIR}/../../../azure-storage-common/test/ut/test_base.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../../../azure-storage-common/test/ut/test_base.hpp ) - +create_per_service_target_build(azure-storage-files-datalake-test storage) create_map_file(azure-storage-files-datalake-test azure-storage-files-datalake-test.map) # Include shared test headers diff --git a/sdk/storage/azure-storage-files-shares/CMakeLists.txt b/sdk/storage/azure-storage-files-shares/CMakeLists.txt index a471be77b..7075ca1a2 100644 --- a/sdk/storage/azure-storage-files-shares/CMakeLists.txt +++ b/sdk/storage/azure-storage-files-shares/CMakeLists.txt @@ -17,6 +17,7 @@ include(AzureTransportAdapters) include(AzureDoxygen) include(AzureGlobalCompileOptions) include(AzureConfigRTTI) +include(AzureBuildTargetForCI) az_vcpkg_integrate() @@ -59,7 +60,7 @@ set( ) add_library(azure-storage-files-shares ${AZURE_STORAGE_FILES_SHARES_HEADER} ${AZURE_STORAGE_FILES_SHARES_SOURCE}) - +create_per_service_target_build(azure-storage-files-shares storage) # make sure that users can consume the project as a library. add_library(Azure::azure-storage-files-shares ALIAS azure-storage-files-shares) @@ -94,6 +95,6 @@ if(BUILD_TESTING) add_subdirectory(test/ut) endif() -if(BUILD_STORAGE_SAMPLES) +if(BUILD_SAMPLES) add_subdirectory(samples) endif() diff --git a/sdk/storage/azure-storage-files-shares/samples/CMakeLists.txt b/sdk/storage/azure-storage-files-shares/samples/CMakeLists.txt index ad0d84c19..289622000 100644 --- a/sdk/storage/azure-storage-files-shares/samples/CMakeLists.txt +++ b/sdk/storage/azure-storage-files-shares/samples/CMakeLists.txt @@ -4,4 +4,5 @@ cmake_minimum_required (VERSION 3.13) add_executable(file-share-getting-started file_share_getting_started.cpp) +create_per_service_target_build(file-share-getting-started storage) target_link_libraries(file-share-getting-started PRIVATE azure-storage-files-shares) diff --git a/sdk/storage/azure-storage-files-shares/test/ut/CMakeLists.txt b/sdk/storage/azure-storage-files-shares/test/ut/CMakeLists.txt index 6bc3a6978..47bc17b5f 100644 --- a/sdk/storage/azure-storage-files-shares/test/ut/CMakeLists.txt +++ b/sdk/storage/azure-storage-files-shares/test/ut/CMakeLists.txt @@ -29,7 +29,7 @@ add_executable ( ${CMAKE_CURRENT_SOURCE_DIR}/../../../azure-storage-common/test/ut/test_base.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../../../azure-storage-common/test/ut/test_base.hpp ) - +create_per_service_target_build(azure-storage-files-shares-test storage) create_map_file(azure-storage-files-shares-test azure-storage-files-shares-test.map) # Include shared test headers diff --git a/sdk/storage/azure-storage-queues/CMakeLists.txt b/sdk/storage/azure-storage-queues/CMakeLists.txt index 63cc9a424..428dd83c0 100644 --- a/sdk/storage/azure-storage-queues/CMakeLists.txt +++ b/sdk/storage/azure-storage-queues/CMakeLists.txt @@ -17,6 +17,7 @@ include(AzureTransportAdapters) include(AzureDoxygen) include(AzureGlobalCompileOptions) include(AzureConfigRTTI) +include(AzureBuildTargetForCI) az_vcpkg_integrate() @@ -51,7 +52,7 @@ set( ) add_library(azure-storage-queues ${AZURE_STORAGE_QUEUE_HEADER} ${AZURE_STORAGE_QUEUE_SOURCE}) - +create_per_service_target_build(azure-storage-queues storage) # make sure that users can consume the project as a library. add_library(Azure::azure-storage-queues ALIAS azure-storage-queues) @@ -86,6 +87,6 @@ if(BUILD_TESTING) add_subdirectory(test/ut) endif() -if(BUILD_STORAGE_SAMPLES) +if(BUILD_SAMPLES) add_subdirectory(samples) endif() diff --git a/sdk/storage/azure-storage-queues/samples/CMakeLists.txt b/sdk/storage/azure-storage-queues/samples/CMakeLists.txt index f7a3c3516..4e4b30c70 100644 --- a/sdk/storage/azure-storage-queues/samples/CMakeLists.txt +++ b/sdk/storage/azure-storage-queues/samples/CMakeLists.txt @@ -5,6 +5,8 @@ cmake_minimum_required (VERSION 3.13) add_executable(queue-getting-started queue_getting_started.cpp) target_link_libraries(queue-getting-started PRIVATE azure-storage-queues) +create_per_service_target_build(queue-getting-started storage) add_executable(queue-encode-message queue_encode_message.cpp) target_link_libraries(queue-encode-message PRIVATE azure-storage-queues) +create_per_service_target_build(queue-encode-message storage) diff --git a/sdk/storage/azure-storage-queues/test/ut/CMakeLists.txt b/sdk/storage/azure-storage-queues/test/ut/CMakeLists.txt index aed232a98..db6a12c78 100644 --- a/sdk/storage/azure-storage-queues/test/ut/CMakeLists.txt +++ b/sdk/storage/azure-storage-queues/test/ut/CMakeLists.txt @@ -24,7 +24,7 @@ add_executable ( ${CMAKE_CURRENT_SOURCE_DIR}/../../../azure-storage-common/test/ut/test_base.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../../../azure-storage-common/test/ut/test_base.hpp ) - +create_per_service_target_build(azure-storage-queues-test storage) create_map_file(azure-storage-queues-test azure-storage-queues-test.map) # Include shared test headers diff --git a/sdk/template/azure-template/CMakeLists.txt b/sdk/template/azure-template/CMakeLists.txt index 2af9c7c22..9edb92f44 100644 --- a/sdk/template/azure-template/CMakeLists.txt +++ b/sdk/template/azure-template/CMakeLists.txt @@ -17,6 +17,7 @@ include(AzureTransportAdapters) include(AzureDoxygen) include(AzureGlobalCompileOptions) include(AzureConfigRTTI) +include(AzureBuildTargetForCI) az_vcpkg_integrate() @@ -41,6 +42,7 @@ set( ) add_library(azure-template ${AZURE_TEMPLATE_HEADER} ${AZURE_TEMPLATE_SOURCE}) +create_per_service_target_build(azure-template template) target_include_directories( azure-template diff --git a/sdk/template/azure-template/test/CMakeLists.txt b/sdk/template/azure-template/test/CMakeLists.txt index 7882526b8..a8e293108 100644 --- a/sdk/template/azure-template/test/CMakeLists.txt +++ b/sdk/template/azure-template/test/CMakeLists.txt @@ -16,7 +16,7 @@ add_executable ( ut/macro_guard.cpp ut/template_test.cpp ) - +create_per_service_target_build(azure-template-test template) create_map_file(azure-template-test azure-template-test.map) target_link_libraries(azure-template-test PRIVATE Azure::azure-template gtest_main)