@@ -52,8 +52,11 @@ if(NOT DEFINED GPUCA_HIP_HIPIFY_FROM_CUDA OR "${GPUCA_HIP_HIPIFY_FROM_CUDA}")
5252 list (APPEND HIP_SOURCES "${GPUCA_HIP_SOURCE_DIR} /${HIP_SOURCE} " )
5353 endforeach ()
5454
55- add_custom_command (OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /${MODULE} _HIPIFIED_CHK.done COMMAND diff -u ${GPUCA_HIP_SOURCE_DIR} /GPUReconstructionHIPkernel.template.hip ${CMAKE_CURRENT_SOURCE_DIR} /GPUReconstructionHIPkernel.template.hip && touch ${CMAKE_CURRENT_BINARY_DIR} /${MODULE} _HIPIFIED_CHK.done DEPENDS ${GPUCA_HIP_SOURCE_DIR} /GPUReconstructionHIPkernel.template.hip ${CMAKE_CURRENT_SOURCE_DIR} /GPUReconstructionHIPkernel.template.hip)
56- add_custom_target (${MODULE} _HIPIFIED_CHK DEPENDS ${CMAKE_CURRENT_BINARY_DIR} /${MODULE} _HIPIFIED_CHK.done)
55+ add_custom_command (OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /${MODULE} _HIPIFIED_CHK.done
56+ COMMAND diff -u ${GPUCA_HIP_SOURCE_DIR} /GPUReconstructionHIPkernel.template.hip ${CMAKE_CURRENT_SOURCE_DIR} /GPUReconstructionHIPkernel.template.hip > ${CMAKE_CURRENT_BINARY_DIR} /${MODULE} _HIPIFIED_CHK.done
57+ DEPENDS ${GPUCA_HIP_SOURCE_DIR} /GPUReconstructionHIPkernel.template.hip ${CMAKE_CURRENT_SOURCE_DIR} /GPUReconstructionHIPkernel.template.hip
58+ COMMENT Checking HIPified file ${CMAKE_CURRENT_SOURCE_DIR} /GPUReconstructionHIPkernel.template.hip)
59+ add_custom_target (${MODULE} _HIPIFIED_CHK ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR} /${MODULE} _HIPIFIED_CHK.done)
5760else ()
5861 get_filename_component (GPUCA_HIP_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} ABSOLUTE )
5962endif ()
@@ -103,14 +106,20 @@ if(NOT ALIGPU_BUILD_TYPE STREQUAL "ALIROOT")
103106 add_custom_command (
104107 OUTPUT ${GPU_RTC_BIN} .src
105108 COMMAND cat ${GPUDIR} /Base/hip/GPUReconstructionHIPIncludes.h > ${GPU_RTC_BIN} .src
106- COMMAND ${CMAKE_CXX_COMPILER} ${GPU_RTC_DEFINES} ${GPU_RTC_INCLUDES} -std=c++${CMAKE_HIP_STANDARD} -D__HIPCC__ -D__HIP_DEVICE_COMPILE__ -x c++ -E ${GPU_RTC_SRC} >> ${GPU_RTC_BIN} .src
109+ COMMAND ${CMAKE_CXX_COMPILER} ${GPU_RTC_DEFINES} ${GPU_RTC_INCLUDES} -std=c++${CMAKE_HIP_STANDARD} -D__HIPCC__ -D__HIP_DEVICE_COMPILE__ -x c++ -nostdinc - E ${GPU_RTC_SRC} >> ${GPU_RTC_BIN} .src
107110 MAIN_DEPENDENCY ${GPU_RTC_SRC}
108111 IMPLICIT_DEPENDS CXX ${GPU_RTC_SRC}
109112 COMMAND_EXPAND_LISTS
110113 COMMENT "Preparing HIP RTC source file ${GPU_RTC_BIN} .src"
111114 )
112115 create_binary_resource(${GPU_RTC_BIN} .src ${GPU_RTC_BIN} .src.o)
113116
117+ add_custom_command (OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /${MODULE} _HIP_SRC_CHK.done
118+ COMMAND ! grep "# [0-9]* \"\\ (/usr/\\ |.*GCC-Toolchain\\ )" ${GPU_RTC_BIN} .src > ${CMAKE_CURRENT_BINARY_DIR} /${MODULE} _HIP_SRC_CHK.done || bash -c "echo ERROR: HIP RTC sources contain standard headers 1>&2 && exit 1"
119+ COMMENT Checking HIP RTC File ${GPU_RTC_BIN} .src
120+ DEPENDS ${GPU_RTC_BIN} .src VERBATIM )
121+ add_custom_target (${MODULE} _HIP_SRC_CHK ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR} /${MODULE} _HIP_SRC_CHK.done)
122+
114123 add_custom_command (
115124 OUTPUT ${GPU_RTC_BIN} .command
116125 COMMAND echo -n "${hip_HIPCC_EXECUTABLE} ${GPU_RTC_FLAGS_SEPARATED} ${GPU_RTC_DEFINES} --genco" > ${GPU_RTC_BIN} .command
@@ -202,7 +211,7 @@ target_include_directories(${MODULE}_CXX PRIVATE $<TARGET_PROPERTY:${TMP_BASELIB
202211target_link_libraries (${targetName} PRIVATE ${MODULE} _CXX)
203212
204213if (NOT DEFINED GPUCA_HIP_HIPIFY_FROM_CUDA OR "${GPUCA_HIP_HIPIFY_FROM_CUDA} " )
205- add_custom_target (${MODULE} _HIPIFIED DEPENDS ${HIP_SOURCES} ${MODULE} _HIPIFIED_CHK )
214+ add_custom_target (${MODULE} _HIPIFIED DEPENDS ${HIP_SOURCES} )
206215 add_dependencies (${targetName} ${MODULE} _HIPIFIED)
207216 add_dependencies (${MODULE} _CXX ${MODULE} _HIPIFIED)
208217endif ()
0 commit comments