@@ -79,8 +79,9 @@ if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
7979endif ()
8080
8181set (SUPERLU_DIR "${PROJECT_SOURCE_DIR} /superlu" )
82+ set (SUPERLU_PATCHES_DIR "${PROJECT_SOURCE_DIR} /superlu_patches" )
8283set (SUPERLU_MT_DIR "${PROJECT_SOURCE_DIR} /superlu_mt" )
83- set (SUPERLU_PATCHES_DIR "${PROJECT_SOURCE_DIR} /superlu_mt_patches" )
84+ set (SUPERLU_MT_PATCHES_DIR "${PROJECT_SOURCE_DIR} /superlu_mt_patches" )
8485set (METIS_DIR "${PROJECT_SOURCE_DIR} /metis/METIS" )
8586set (GKLIB_DIR "${PROJECT_SOURCE_DIR} /metis/GKlib" )
8687set (METIS_PATCHES_DIR "${PROJECT_SOURCE_DIR} /metis/metis_patches" )
@@ -122,6 +123,22 @@ if(TPL_ENABLE_METISLIB)
122123
123124 set (TPL_METIS_LIBRARIES "${CMAKE_ARCHIVE_OUTPUT_DIRECTORY} /libmetis.a;${CMAKE_ARCHIVE_OUTPUT_DIRECTORY} /libGKlib.a" CACHE STRING "METIS static libraries" FORCE )
124125 set (TPL_METIS_INCLUDE_DIRS "${CMAKE_BINARY_DIR} /metis/METIS/include" CACHE PATH "METIS include directory" FORCE )
126+
127+ message (STATUS "Applying patches to SUPERLU..." )
128+ file (GLOB_RECURSE SUPERLU_PATCH_FILES RELATIVE "${SUPERLU_PATCHES_DIR} " "${SUPERLU_PATCHES_DIR} /*" )
129+
130+ foreach (file IN LISTS SUPERLU_PATCH_FILES)
131+ set (src "${SUPERLU_PATCHES_DIR} /${file} " )
132+ set (dst "${SUPERLU_DIR} /${file} " )
133+
134+ get_filename_component (dst_dir "${dst} " DIRECTORY )
135+ file (MAKE_DIRECTORY "${dst_dir} " )
136+
137+ message (STATUS " Patching: ${file} " )
138+ file (COPY "${src} " DESTINATION "${dst_dir} " )
139+ endforeach ()
140+
141+ message (STATUS "SUPERLU patched for METIS" )
125142endif ()
126143
127144set (enable_examples OFF FORCE )
@@ -132,10 +149,10 @@ if(USE_SUPERLU_MT)
132149 message (STATUS "Will link against faster SuperLU_MT." )
133150 set (PLAT "_OPENMP" CACHE STRING "threading flavor _PTHREAD/_OPENMP" FORCE )
134151 message (STATUS "Applying patches to SuperLU_MT..." )
135- file (GLOB_RECURSE PATCH_FILES RELATIVE "${SUPERLU_PATCHES_DIR } " "${SUPERLU_PATCHES_DIR } /*" )
152+ file (GLOB_RECURSE PATCH_FILES RELATIVE "${SUPERLU_MT_PATCHES_DIR } " "${SUPERLU_MT_PATCHES_DIR } /*" )
136153
137154 foreach (file IN LISTS PATCH_FILES)
138- set (src "${SUPERLU_PATCHES_DIR } /${file} " )
155+ set (src "${SUPERLU_MT_PATCHES_DIR } /${file} " )
139156 set (dst "${SUPERLU_MT_DIR} /${file} " )
140157
141158 # ensure the destination directory exists
0 commit comments