// Copyright (c) Microsoft Corporation. All rights reserved.
// SPDX-License-Identifier: MIT

/**
 * @file
 * @brief Run-time type info enable or disable.
 *
 * @details Checks whenever RTTI is enabled and exports the symbol
 * `AZ_SECURITY_KEYVAULT_KEYS_RTTI`. When the macro is not defined, RTTI is disabled.
 *
 * @details Each library has this header file. These headers are being configured by
 * `az_rtti_setup()` CMake macro. CMake install will patch this file during installation, depending
 * on the build flags.
 */

#pragma once

/**
 * @def AZ_SECURITY_KEYVAULT_KEYS_RTTI
 * @brief A macro indicating whether the code is built with RTTI or not.
 *
 * @details `AZ_RTTI` could be defined while building the Azure SDK with CMake, however, after
 * the build is completed, that information is not preserved for the code that consumes Azure SDK
 * headers, unless the code that consumes the SDK is the part of the same build process. To address
 * this issue, CMake install would patch the header it places in the installation directory, so that
 * condition:
 * `#if defined(AZ_RTTI) || (0)`
 * becomes, effectively,
 * `#if defined(AZ_RTTI) || (0 + 1)`
 * when the library was built with RTTI support, and will make no changes to the
 * condition when it was not.
 */

#if defined(AZ_RTTI) || (0 /*@AZ_SECURITY_KEYVAULT_KEYS_RTTI@*/)
#define AZ_SECURITY_KEYVAULT_KEYS_RTTI
#endif
