@@ -131,12 +131,6 @@ else()
131
131
set (HWLOC_ENABLE_TESTING OFF )
132
132
set (HWLOC_SKIP_LSTOPO ON )
133
133
set (HWLOC_SKIP_TOOLS ON )
134
- set (HWLOC_PATCH
135
- git
136
- apply
137
- ${PROJECT_SOURCE_DIR} /cmake/fix_coverity_issues.patch
138
- ||
139
- (exit 0 ))
140
134
141
135
message (
142
136
STATUS
@@ -147,8 +141,7 @@ else()
147
141
hwloc_targ
148
142
GIT_REPOSITORY ${UMF_HWLOC_REPO}
149
143
GIT_TAG ${UMF_HWLOC_TAG}
150
- PATCH_COMMAND ${HWLOC_PATCH} SOURCE_SUBDIR contrib/windows-cmake/
151
- FIND_PACKAGE_ARGS )
144
+ SOURCE_SUBDIR contrib/windows-cmake/ FIND_PACKAGE_ARGS )
152
145
FetchContent_MakeAvailable (hwloc_targ )
153
146
154
147
set (LIBHWLOC_INCLUDE_DIRS
@@ -157,13 +150,6 @@ else()
157
150
${hwloc_targ_BINARY_DIR} /Release;${hwloc_targ_BINARY_DIR}/Debug )
158
151
else ()
159
152
include (FetchContent )
160
- set (HWLOC_PATCH
161
- git
162
- apply
163
- ${PROJECT_SOURCE_DIR} /cmake/fix_coverity_issues.patch
164
- ||
165
- (exit 0 ))
166
-
167
153
message (
168
154
STATUS
169
155
"Will fetch hwloc from ${UMF_HWLOC_REPO} (tag: ${UMF_HWLOC_TAG} )"
@@ -172,8 +158,7 @@ else()
172
158
FetchContent_Declare (
173
159
hwloc_targ
174
160
GIT_REPOSITORY ${UMF_HWLOC_REPO}
175
- GIT_TAG ${UMF_HWLOC_TAG}
176
- PATCH_COMMAND ${HWLOC_PATCH} )
161
+ GIT_TAG ${UMF_HWLOC_TAG} )
177
162
FetchContent_MakeAvailable (hwloc_targ )
178
163
179
164
add_custom_command (
@@ -217,6 +202,22 @@ else()
217
202
message (STATUS " LIBHWLOC_LIBRARY_DIRS = ${LIBHWLOC_LIBRARY_DIRS} " )
218
203
endif ()
219
204
205
+ if (hwloc_targ_SOURCE_DIR )
206
+ # apply security patch for HWLOC
207
+ execute_process (
208
+ COMMAND git apply ${PROJECT_SOURCE_DIR} /cmake/fix_coverity_issues.patch
209
+ WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
210
+ OUTPUT_VARIABLE UMF_HWLOC_PATCH_OUTPUT
211
+ ERROR_VARIABLE UMF_HWLOC_PATCH_ERROR )
212
+
213
+ if (UMF_HWLOC_PATCH_OUTPUT )
214
+ message (STATUS "HWLOC patch command output:\n ${UMF_HWLOC_PATCH_OUTPUT} " )
215
+ endif ()
216
+ if (UMF_HWLOC_PATCH_ERROR )
217
+ message (WARNING "HWLOC patch command output:\n ${UMF_HWLOC_PATCH_ERROR} " )
218
+ endif ()
219
+ endif ()
220
+
220
221
# This build type check is not possible on Windows when CMAKE_BUILD_TYPE is not
221
222
# set, because in this case the build type is determined after a CMake
222
223
# configuration is done (at the build time)
0 commit comments