SWDEV-249870: Generate Pre-Compiled Headers from includes in source repo for Online Compilation
Change-Id: I663f510603e983927f80f7944df4d039ba7bc0b0
[ROCm/clr commit: 9ef681a618]
此提交包含在:
@@ -314,6 +314,21 @@ if (BUILD_HIPIFY_CLANG)
|
||||
add_subdirectory(hipify-clang)
|
||||
endif()
|
||||
|
||||
# Generate hip_version.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
|
||||
#define __HIP_HAS_GET_PCH ${_pchStatus}\n
|
||||
#endif\n
|
||||
")
|
||||
file(WRITE "${PROJECT_BINARY_DIR}/include/hip/hip_version.h" ${_versionInfoHeader})
|
||||
include_directories(${PROJECT_BINARY_DIR}/include)
|
||||
|
||||
if(HIP_RUNTIME STREQUAL "rocclr")
|
||||
include_directories(${PROJECT_SOURCE_DIR}/include)
|
||||
add_subdirectory(rocclr)
|
||||
@@ -463,21 +478,6 @@ if(NOT DEFINED HIP_VERSION_GITDATE)
|
||||
set(HIP_VERSION_GITDATE 0)
|
||||
endif()
|
||||
|
||||
# Generate hip_version.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
|
||||
#define __HIP_HAS_GET_PCH ${_pchStatus}\n
|
||||
#endif\n
|
||||
")
|
||||
file(WRITE "${PROJECT_BINARY_DIR}/include/hip/hip_version.h" ${_versionInfoHeader})
|
||||
include_directories(${PROJECT_BINARY_DIR}/include)
|
||||
|
||||
# Build doxygen documentation
|
||||
find_program(DOXYGEN_EXE doxygen)
|
||||
if(DOXYGEN_EXE)
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
#set -x
|
||||
LLVM_DIR="$1/../../../"
|
||||
HIP_BUILD_INC_DIR=$1
|
||||
HIP_INC_DIR=$2
|
||||
LLVM_DIR="$3/../../../"
|
||||
HSA_DIR="$4"
|
||||
tmp=/tmp/hip_pch.$$
|
||||
mkdir -p $tmp
|
||||
|
||||
@@ -46,7 +49,7 @@ __hip_pch_size:
|
||||
.long __hip_pch_size - __hip_pch
|
||||
EOF
|
||||
|
||||
$LLVM_DIR/bin/clang -O3 -c -std=c++17 -isystem $LLVM_DIR/lib/clang/11.0.0/include/.. -isystem /opt/rocm/include -nogpulib --cuda-device-only -x hip $tmp/hip_pch.h -E >$tmp/pch.cui
|
||||
$LLVM_DIR/bin/clang -O3 -std=c++17 -nogpulib -isystem $HIP_INC_DIR -isystem $HIP_BUILD_INC_DIR -isystem $HSA_DIR/include --cuda-device-only -x hip $tmp/hip_pch.h -E >$tmp/pch.cui
|
||||
|
||||
cat $tmp/hip_macros.h >> $tmp/pch.cui
|
||||
|
||||
|
||||
@@ -155,7 +155,7 @@ endif()
|
||||
# Short-Term solution for pre-compiled headers for online compilation
|
||||
# Enable pre compiled header
|
||||
if(__HIP_ENABLE_PCH)
|
||||
execute_process(COMMAND sh -c "${CMAKE_CURRENT_SOURCE_DIR}/../bin/hip_embed_pch.sh ${LLVM_DIR}")
|
||||
execute_process(COMMAND sh -c "${CMAKE_CURRENT_SOURCE_DIR}/../bin/hip_embed_pch.sh ${PROJECT_BINARY_DIR}/include ${PROJECT_SOURCE_DIR}/include ${LLVM_DIR} ${HSA_PATH}")
|
||||
add_definitions(-D__HIP_ENABLE_PCH)
|
||||
endif()
|
||||
|
||||
|
||||
新增問題並參考
封鎖使用者