@@ -131,21 +131,14 @@ elseif(WINDOWS AND NOT UMF_DISABLE_HWLOC)
131131 set (HWLOC_ENABLE_TESTING OFF )
132132 set (HWLOC_SKIP_LSTOPO ON )
133133 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))
140134
141135 message (STATUS "Will fetch hwloc from ${UMF_HWLOC_REPO} " )
142136
143137 FetchContent_Declare(
144138 hwloc_targ
145139 GIT_REPOSITORY ${UMF_HWLOC_REPO}
146140 GIT_TAG ${UMF_HWLOC_TAG}
147- PATCH_COMMAND ${HWLOC_PATCH} SOURCE_SUBDIR contrib/windows-cmake/
148- FIND_PACKAGE_ARGS)
141+ SOURCE_SUBDIR contrib/windows-cmake/ FIND_PACKAGE_ARGS)
149142
150143 FetchContent_GetProperties(hwloc_targ)
151144 if (NOT hwloc_targ_POPULATED)
@@ -162,20 +155,13 @@ elseif(WINDOWS AND NOT UMF_DISABLE_HWLOC)
162155 message (STATUS " LIBHWLOC_LIBRARY_DIRS = ${LIBHWLOC_LIBRARY_DIRS} " )
163156elseif (NOT UMF_DISABLE_HWLOC)
164157 include (FetchContent)
165- set (HWLOC_PATCH
166- git
167- apply
168- ${PROJECT_SOURCE_DIR} /cmake/fix_coverity_issues.patch
169- ||
170- (exit 0))
171158
172159 message (STATUS "Will fetch hwloc from ${UMF_HWLOC_REPO} " )
173160
174161 FetchContent_Declare(
175162 hwloc_targ
176163 GIT_REPOSITORY ${UMF_HWLOC_REPO}
177- GIT_TAG ${UMF_HWLOC_TAG}
178- PATCH_COMMAND ${HWLOC_PATCH} )
164+ GIT_TAG ${UMF_HWLOC_TAG} )
179165
180166 FetchContent_GetProperties(hwloc_targ)
181167 if (NOT hwloc_targ_POPULATED)
@@ -222,6 +208,22 @@ elseif(NOT UMF_DISABLE_HWLOC)
222208 message (STATUS " LIBHWLOC_LIBRARY_DIRS = ${LIBHWLOC_LIBRARY_DIRS} " )
223209endif ()
224210
211+ if (hwloc_targ_SOURCE_DIR)
212+ # apply security patch for HWLOC
213+ execute_process (
214+ COMMAND git apply ${PROJECT_SOURCE_DIR} /cmake/fix_coverity_issues.patch
215+ WORKING_DIRECTORY ${hwloc_targ_SOURCE_DIR}
216+ OUTPUT_VARIABLE UMF_HWLOC_PATCH_OUTPUT
217+ ERROR_VARIABLE UMF_HWLOC_PATCH_ERROR)
218+
219+ if (UMF_HWLOC_PATCH_OUTPUT)
220+ message (STATUS "HWLOC patch command output:\n ${UMF_HWLOC_PATCH_OUTPUT} " )
221+ endif ()
222+ if (UMF_HWLOC_PATCH_ERROR)
223+ message (WARNING "HWLOC patch command output:\n ${UMF_HWLOC_PATCH_ERROR} " )
224+ endif ()
225+ endif ()
226+
225227# This build type check is not possible on Windows when CMAKE_BUILD_TYPE is not
226228# set, because in this case the build type is determined after a CMake
227229# configuration is done (at the build time)
0 commit comments