Skip to content

Commit abfe8ee

Browse files
committed
patch superlu to use metis
pass the fortran superlu driver to use metis ordering if available.
1 parent f59566b commit abfe8ee

1 file changed

Lines changed: 20 additions & 3 deletions

File tree

CMakeLists.txt

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,9 @@ if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
7979
endif()
8080

8181
set(SUPERLU_DIR "${PROJECT_SOURCE_DIR}/superlu")
82+
set(SUPERLU_PATCHES_DIR "${PROJECT_SOURCE_DIR}/superlu_patches")
8283
set(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")
8485
set(METIS_DIR "${PROJECT_SOURCE_DIR}/metis/METIS")
8586
set(GKLIB_DIR "${PROJECT_SOURCE_DIR}/metis/GKlib")
8687
set(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")
125142
endif()
126143

127144
set(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

Comments
 (0)