@@ -57,7 +57,6 @@ function(is_backport_patch_present patch_path repo_dir patch_in_branch)
5757 WORKING_DIRECTORY ${repo_dir}
5858 RESULT_VARIABLE patch_not_in_branches
5959 OUTPUT_QUIET
60- ERROR_QUIET
6160 )
6261 if (patch_not_in_branches)
6362 set (patch_in_branch False PARENT_SCOPE) # The patch is not present in local branch
@@ -74,7 +73,6 @@ function(is_valid_revision repo_dir revision return_val)
7473 COMMAND ${GIT_EXECUTABLE} log -1 ${revision}
7574 WORKING_DIRECTORY ${repo_dir}
7675 RESULT_VARIABLE output_var
77- ERROR_QUIET
7876 OUTPUT_QUIET
7977 )
8078 if (${output_var} EQUAL 0)
@@ -96,16 +94,21 @@ function(apply_patches repo_dir patches_dir base_revision target_branch)
9694 return ()
9795 endif ()
9896
99- message (STATUS "[OPENCL-CLANG] Patching repository ${repo_dir} " )
97+ # Check if it's a git repo
98+ if (EXISTS "${repo_dir} /.git" )
99+ message (STATUS "[OPENCL-CLANG] Patching repository ${repo_dir} " )
100+ else ()
101+ message (STATUS "[OPENCL-CLANG][Warning] ${repo_dir} is not a git repository, therefore, local patches are not applied" )
102+ return ()
103+ endif ()
100104 # Check if the target branch already exists
101105 execute_process (
102106 COMMAND ${GIT_EXECUTABLE} rev-parse --verify --no -revs -q ${target_branch}
103107 WORKING_DIRECTORY ${repo_dir}
104108 RESULT_VARIABLE patches_needed
105- ERROR_QUIET
106109 OUTPUT_QUIET
107110 )
108- if (patches_needed) # The target branch doesn't exist
111+ if (patches_needed EQUAL 1 ) # The target branch doesn't exist
109112 list (SORT patches)
110113 is_valid_revision(${repo_dir} ${base_revision} exists_base_rev)
111114
@@ -115,7 +118,6 @@ function(apply_patches repo_dir patches_dir base_revision target_branch)
115118 WORKING_DIRECTORY ${repo_dir}
116119 OUTPUT_VARIABLE repo_head
117120 OUTPUT_STRIP_TRAILING_WHITESPACE
118- ERROR_QUIET
119121 )
120122 message (STATUS "[OPENCL-CLANG] ref ${base_revision} not exists in repository, using current HEAD:${repo_head} " )
121123 set (base_revision ${repo_head} )
@@ -135,22 +137,25 @@ function(apply_patches repo_dir patches_dir base_revision target_branch)
135137 message (STATUS "[OPENCL-CLANG] Patch ${patch} is already in local branch - ignore patching" )
136138 else ()
137139 execute_process ( # Apply the patch
138- COMMAND ${GIT_EXECUTABLE} am --3way --ignore -whitespace ${patch}
140+ COMMAND ${GIT_EXECUTABLE} am --3way --ignore -whitespace -C0 ${patch}
139141 WORKING_DIRECTORY ${repo_dir}
140142 OUTPUT_VARIABLE patching_log
141- ERROR_QUIET
142143 )
143144 message (STATUS "[OPENCL-CLANG] Not present - ${patching_log} " )
144145 endif ()
145146 endforeach (patch)
146- else ( ) # The target branch already exists
147+ elseif (patches_needed EQUAL 0 ) # The target branch already exists
147148 execute_process ( # Check it out
148149 COMMAND ${GIT_EXECUTABLE} checkout ${target_branch}
149150 WORKING_DIRECTORY ${repo_dir}
150- ERROR_QUIET
151151 OUTPUT_QUIET
152152 )
153153 endif ()
154+ if (NOT (ret_check_out OR ret_apply_patch))
155+ message (STATUS "[OPENCL-CLANG] Applied patch successfully!" )
156+ else ()
157+ message (FATAL_ERROR "[OPENCL-CLANG] Failed to apply patch!" )
158+ endif ()
154159endfunction ()
155160
156161# Usage
0 commit comments