// MIT License // // Copyright (c) 2023-2025 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. #pragma once /** * @def ROCPROFILER_IS_ROCPROFILER_SDK * @brief Preprocessor define indicating the rocprofiler header is a rocprofiler-sdk project * @addtogroup VERSIONING_GROUP * * @def ROCPROFILER_VERSION_MAJOR * @brief The major version of the interface as a macro so it can be used * by the preprocessor. * @addtogroup VERSIONING_GROUP * * @def ROCPROFILER_VERSION_MINOR * @brief The minor version of the interface as a macro so it can be used * by the preprocessor. * @addtogroup VERSIONING_GROUP * * @def ROCPROFILER_VERSION_PATCH * @brief The patch version of the interface as a macro so it can be used * by the preprocessor. * @addtogroup VERSIONING_GROUP * * @def ROCPROFILER_VERSION * @brief Numerically increasing version number encoding major, minor, and patch via computing `((10000 * ) + (100 * ) + )`. * @addtogroup VERSIONING_GROUP * * @def ROCPROFILER_SOVERSION * @brief Shared object versioning value whose value is at least `(10000 * )`. * @addtogroup VERSIONING_GROUP * * @def ROCPROFILER_VERSION_STRING * @brief Version string in form: `..`. * @addtogroup VERSIONING_GROUP * * @def ROCPROFILER_GIT_DESCRIBE * @brief String encoding of `git describe --tags` when rocprofiler was built. * @addtogroup VERSIONING_GROUP * * @def ROCPROFILER_GIT_REVISION * @brief String encoding of `git rev-parse HEAD` when rocprofiler was built. * @addtogroup VERSIONING_GROUP * * @def ROCPROFILER_LIBRARY_ARCH * @brief Architecture triplet of rocprofiler build. * @addtogroup VERSIONING_GROUP * * @def ROCPROFILER_SYSTEM_NAME * @brief Target operating system for rocprofiler build, e.g. Linux. * @addtogroup VERSIONING_GROUP * * @def ROCPROFILER_SYSTEM_PROCESSOR * @brief Target architecture for rocprofiler build. * @addtogroup VERSIONING_GROUP * * @def ROCPROFILER_SYSTEM_VERSION * @brief Version of the operating system which built rocprofiler * @addtogroup VERSIONING_GROUP * * @def ROCPROFILER_COMPILER_ID * @brief C++ compiler identifier which built rocprofiler, e.g., GNU * @addtogroup VERSIONING_GROUP * * @def ROCPROFILER_COMPILER_VERSION * @brief C++ compiler version which built rocprofiler * @addtogroup VERSIONING_GROUP */ #define ROCPROFILER_IS_ROCPROFILER_SDK 1 // clang-format off #define ROCPROFILER_VERSION_MAJOR @PROJECT_VERSION_MAJOR@ #define ROCPROFILER_VERSION_MINOR @PROJECT_VERSION_MINOR@ #define ROCPROFILER_VERSION_PATCH @PROJECT_VERSION_PATCH@ #define ROCPROFILER_SOVERSION (10000 * @PROJECT_VERSION_MAJOR@) #define ROCPROFILER_VERSION_STRING "@FULL_VERSION_STRING@" #define ROCPROFILER_GIT_DESCRIBE "@ROCPROFILER_GIT_DESCRIBE@" #define ROCPROFILER_GIT_REVISION "@ROCPROFILER_GIT_REVISION@" // system info during compilation #define ROCPROFILER_LIBRARY_ARCH "@CMAKE_LIBRARY_ARCHITECTURE@" #define ROCPROFILER_SYSTEM_NAME "@CMAKE_SYSTEM_NAME@" #define ROCPROFILER_SYSTEM_PROCESSOR "@CMAKE_SYSTEM_PROCESSOR@" #define ROCPROFILER_SYSTEM_VERSION "@CMAKE_SYSTEM_VERSION@" // compiler information #define ROCPROFILER_COMPILER_ID "@CMAKE_CXX_COMPILER_ID@" #define ROCPROFILER_COMPILER_VERSION "@CMAKE_CXX_COMPILER_VERSION@" #define ROCPROFILER_HSA_RUNTIME_VERSION_MAJOR @HSA_RUNTIME_VERSION_MAJOR@ #define ROCPROFILER_HSA_RUNTIME_VERSION_MINOR @HSA_RUNTIME_VERSION_MINOR@ #cmakedefine ROCPROFILER_HSA_API_TABLE_MAJOR_VERSION @ROCPROFILER_HSA_API_TABLE_MAJOR_VERSION@ #cmakedefine ROCPROFILER_HSA_CORE_API_TABLE_MAJOR_VERSION @ROCPROFILER_HSA_CORE_API_TABLE_MAJOR_VERSION@ #cmakedefine ROCPROFILER_HSA_AMD_EXT_API_TABLE_MAJOR_VERSION @ROCPROFILER_HSA_AMD_EXT_API_TABLE_MAJOR_VERSION@ #cmakedefine ROCPROFILER_HSA_FINALIZER_API_TABLE_MAJOR_VERSION @ROCPROFILER_HSA_FINALIZER_API_TABLE_MAJOR_VERSION@ #cmakedefine ROCPROFILER_HSA_IMAGE_API_TABLE_MAJOR_VERSION @ROCPROFILER_HSA_IMAGE_API_TABLE_MAJOR_VERSION@ #cmakedefine ROCPROFILER_HSA_AQLPROFILE_API_TABLE_MAJOR_VERSION @ROCPROFILER_HSA_AQLPROFILE_API_TABLE_MAJOR_VERSION@ #cmakedefine ROCPROFILER_HSA_TOOLS_API_TABLE_MAJOR_VERSION @ROCPROFILER_HSA_TOOLS_API_TABLE_MAJOR_VERSION@ #cmakedefine ROCPROFILER_HSA_API_TABLE_STEP_VERSION @ROCPROFILER_HSA_API_TABLE_STEP_VERSION@ #cmakedefine ROCPROFILER_HSA_CORE_API_TABLE_STEP_VERSION @ROCPROFILER_HSA_CORE_API_TABLE_STEP_VERSION@ #cmakedefine ROCPROFILER_HSA_AMD_EXT_API_TABLE_STEP_VERSION @ROCPROFILER_HSA_AMD_EXT_API_TABLE_STEP_VERSION@ #cmakedefine ROCPROFILER_HSA_FINALIZER_API_TABLE_STEP_VERSION @ROCPROFILER_HSA_FINALIZER_API_TABLE_STEP_VERSION@ #cmakedefine ROCPROFILER_HSA_IMAGE_API_TABLE_STEP_VERSION @ROCPROFILER_HSA_IMAGE_API_TABLE_STEP_VERSION@ #cmakedefine ROCPROFILER_HSA_AQLPROFILE_API_TABLE_STEP_VERSION @ROCPROFILER_HSA_AQLPROFILE_API_TABLE_STEP_VERSION@ #cmakedefine ROCPROFILER_HSA_TOOLS_API_TABLE_STEP_VERSION @ROCPROFILER_HSA_TOOLS_API_TABLE_STEP_VERSION@ // clang-format on #define ROCPROFILER_VERSION \ ((10000 * ROCPROFILER_VERSION_MAJOR) + (100 * ROCPROFILER_VERSION_MINOR) + \ ROCPROFILER_VERSION_PATCH) // latest hsa-runtime version supported #define ROCPROFILER_HSA_RUNTIME_VERSION \ ((10000 * ROCPROFILER_HSA_RUNTIME_VERSION_MAJOR) + \ (100 * ROCPROFILER_HSA_RUNTIME_VERSION_MINOR))