Skip to content

Commit d7a6c9c

Browse files
[build] Check if SPIRV-LLVM-Translator is already patched (#4314)
1 parent 59b7b25 commit d7a6c9c

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

third_party/intel/cmake/FindSPIRVToLLVMTranslator.cmake

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,35 @@ if (NOT SPIRVToLLVMTranslator_FOUND)
2020

2121
FetchContent_GetProperties(spirv-llvm-translator)
2222
if(NOT spirv-llvm-translator_POPULATED)
23+
set(LLVM_CONFIG ${LLVM_LIBRARY_DIR}/../bin/llvm-config)
24+
set(LLVM_DIR "${LLVM_LIBRARY_DIR}/cmake/llvm" CACHE PATH "Path to LLVM build dir " FORCE)
25+
set(LLVM_SPIRV_BUILD_EXTERNAL YES CACHE BOOL "Build SPIRV-LLVM Translator as external" FORCE)
26+
2327
FetchContent_MakeAvailable(spirv-llvm-translator)
2428

2529
# FIXME: Don't apply patch when Agama driver is updated.
2630
execute_process(
27-
COMMAND git apply ${CMAKE_CURRENT_LIST_DIR}/3122.patch
31+
COMMAND git apply --check ${CMAKE_CURRENT_LIST_DIR}/3122.patch
2832
WORKING_DIRECTORY ${spirv-llvm-translator_SOURCE_DIR}
33+
ERROR_QUIET
2934
RESULT_VARIABLE PATCH_RESULT
3035
)
36+
if(PATCH_RESULT EQUAL 0)
37+
execute_process(
38+
COMMAND git apply ${CMAKE_CURRENT_LIST_DIR}/3122.patch
39+
WORKING_DIRECTORY ${spirv-llvm-translator_SOURCE_DIR}
40+
RESULT_VARIABLE PATCH_RESULT
41+
)
42+
else()
43+
execute_process( # Check if the patch is already applied
44+
COMMAND git apply --reverse --check ${CMAKE_CURRENT_LIST_DIR}/3122.patch
45+
WORKING_DIRECTORY ${spirv-llvm-translator_SOURCE_DIR}
46+
RESULT_VARIABLE PATCH_RESULT
47+
)
48+
endif()
3149
if(NOT PATCH_RESULT EQUAL 0)
3250
message(FATAL_ERROR "Failed to apply 3122.patch to SPIRV-LLVM-Translator")
3351
endif()
34-
35-
set(LLVM_CONFIG ${LLVM_LIBRARY_DIR}/../bin/llvm-config)
36-
set(LLVM_DIR "${LLVM_LIBRARY_DIR}/cmake/llvm" CACHE PATH "Path to LLVM build dir " FORCE)
37-
set(LLVM_SPIRV_BUILD_EXTERNAL YES CACHE BOOL "Build SPIRV-LLVM Translator as external" FORCE)
3852
endif()
3953

4054
set(SPIRVToLLVMTranslator_INCLUDE_DIR "${SPIRVToLLVMTranslator_SOURCE_DIR}/include"

0 commit comments

Comments
 (0)