@@ -131,12 +131,6 @@ else()
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 (
142136 STATUS
@@ -147,8 +141,7 @@ else()
147141 hwloc_targ
148142 GIT_REPOSITORY ${UMF_HWLOC_REPO}
149143 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)
152145 FetchContent_MakeAvailable(hwloc_targ)
153146
154147 set (LIBHWLOC_INCLUDE_DIRS
@@ -157,13 +150,6 @@ else()
157150 ${hwloc_targ_BINARY_DIR} /Release;${hwloc_targ_BINARY_DIR} /Debug)
158151 else ()
159152 include (FetchContent)
160- set (HWLOC_PATCH
161- git
162- apply
163- ${PROJECT_SOURCE_DIR} /cmake/fix_coverity_issues.patch
164- ||
165- (exit 0))
166-
167153 message (
168154 STATUS
169155 "Will fetch hwloc from ${UMF_HWLOC_REPO} (tag: ${UMF_HWLOC_TAG} )"
@@ -172,8 +158,7 @@ else()
172158 FetchContent_Declare(
173159 hwloc_targ
174160 GIT_REPOSITORY ${UMF_HWLOC_REPO}
175- GIT_TAG ${UMF_HWLOC_TAG}
176- PATCH_COMMAND ${HWLOC_PATCH} )
161+ GIT_TAG ${UMF_HWLOC_TAG} )
177162 FetchContent_MakeAvailable(hwloc_targ)
178163
179164 add_custom_command (
@@ -217,6 +202,22 @@ else()
217202 message (STATUS " LIBHWLOC_LIBRARY_DIRS = ${LIBHWLOC_LIBRARY_DIRS} " )
218203endif ()
219204
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+
220221# This build type check is not possible on Windows when CMAKE_BUILD_TYPE is not
221222# set, because in this case the build type is determined after a CMake
222223# configuration is done (at the build time)
0 commit comments