From 6d2ec032fe136732bbe79f816735d07ea36adb62 Mon Sep 17 00:00:00 2001 From: Sarbojit2019 <52527887+SarbojitAMD@users.noreply.github.com> Date: Mon, 30 Dec 2019 12:44:24 +0530 Subject: [PATCH] Change to generate hipVersion.h (#1726) HIP_VERSION_MAJOR, HIP_VERSION_MINOR, HIP_VERSION_PATCH and HIP_VERSION pre-processor macros are now defined in hipVersion.h instead of being set by hipcc. [ROCm/hip commit: aa4aea0754db617c4336e0ae5df91a2d0976fc71] --- projects/hip/CMakeLists.txt | 13 ++++++ projects/hip/bin/hipcc | 2 +- projects/hip/include/hip/hip_runtime.h | 2 +- .../hip/tests/src/deviceLib/hipVersion.cpp | 42 +++++++++++++++++++ 4 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 projects/hip/tests/src/deviceLib/hipVersion.cpp diff --git a/projects/hip/CMakeLists.txt b/projects/hip/CMakeLists.txt index 2f65d75ae1..22f15fb8ca 100644 --- a/projects/hip/CMakeLists.txt +++ b/projects/hip/CMakeLists.txt @@ -343,6 +343,19 @@ endif() # Generate .hipVersion file(WRITE "${PROJECT_BINARY_DIR}/.hipVersion" ${_versionInfo}) +# Generate hipVersion.h +set(_versionInfoHeader +"// Auto-generated by cmake\n +#ifndef HIP_VERSION_H +#define HIP_VERSION_H\n +#define HIP_VERSION_MAJOR ${HIP_VERSION_MAJOR} +#define HIP_VERSION_MINOR ${HIP_VERSION_MINOR} +#define HIP_VERSION_PATCH ${HIP_VERSION_GITDATE} +#define HIP_VERSION (HIP_VERSION_MAJOR * 100 + HIP_VERSION_MINOR)\n +#endif\n +") +file(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/include/hip/hipVersion.h" ${_versionInfoHeader}) + # Build doxygen documentation find_program(DOXYGEN_EXE doxygen) if(DOXYGEN_EXE) diff --git a/projects/hip/bin/hipcc b/projects/hip/bin/hipcc index 9d325c2bf9..ece79ab18d 100755 --- a/projects/hip/bin/hipcc +++ b/projects/hip/bin/hipcc @@ -341,7 +341,7 @@ if ($HIP_PLATFORM eq "clang") { } # Add paths to common HIP includes: -$HIPCXXFLAGS .= " -isystem $HIP_INCLUDE_PATH -DHIP_VERSION_MAJOR=$HIP_VERSION_MAJOR -DHIP_VERSION_MINOR=$HIP_VERSION_MINOR -DHIP_VERSION_PATCH=$HIP_VERSION_GITDATE" ; +$HIPCXXFLAGS .= " -isystem $HIP_INCLUDE_PATH" ; my $compileOnly = 0; my $needCXXFLAGS = 0; # need to add CXX flags to compile step diff --git a/projects/hip/include/hip/hip_runtime.h b/projects/hip/include/hip/hip_runtime.h index b02eb0eef7..75ed73ca8d 100644 --- a/projects/hip/include/hip/hip_runtime.h +++ b/projects/hip/include/hip/hip_runtime.h @@ -49,7 +49,7 @@ THE SOFTWARE. #include #endif - +#include #include #if defined(__HIP_PLATFORM_HCC__) && !defined(__HIP_PLATFORM_NVCC__) diff --git a/projects/hip/tests/src/deviceLib/hipVersion.cpp b/projects/hip/tests/src/deviceLib/hipVersion.cpp new file mode 100644 index 0000000000..e328c31fdf --- /dev/null +++ b/projects/hip/tests/src/deviceLib/hipVersion.cpp @@ -0,0 +1,42 @@ +/* +Copyright (c) 2015-present 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. +*/ + +/* HIT_START + * BUILD: %t %s ../test_common.cpp + * TEST: %t + * HIT_END + */ + + #include "test_common.h" + +/* + * Note : Compile time test hence always returns success while run. + * Intension is to make sure apilcation can access hip version. + */ + int main() + { + std::cout<<"Hip major version : "<