53
53
DOC "Directory where the SCOTCH-PT header is located"
57
find_library(SCOTCH_LIBRARY
59
HINTS ${SCOTCH_DIR}/lib $ENV{SCOTCH_DIR}/lib
60
DOC "The SCOTCH library"
64
find_library(SCOTCHERR_LIBRARY
66
HINTS ${SCOTCH_DIR}/lib $ENV{SCOTCH_DIR}/lib
67
DOC "The SCOTCH-ERROR library"
56
70
# Check for ptscotch
57
71
find_library(PTSCOTCH_LIBRARY
79
93
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
80
94
"location of ptscotch.h: ${SCOTCH_INCLUDE_DIRS}/ptscotch.h")
81
95
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
96
"location of libscotch: ${SCOTCH_LIBRARY}")
97
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
82
98
"location of libptscotch: ${PTSCOTCH_LIBRARY}")
83
99
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
84
100
"location of libptscotcherr: ${PTSCOTCHERR_LIBRARY}")
87
103
# Set flags for building test program
88
104
set(CMAKE_REQUIRED_INCLUDES ${SCOTCH_INCLUDE_DIRS})
89
105
set(CMAKE_REQUIRED_LIBRARIES ${SCOTCH_LIBRARIES})
106
#set(CMAKE_REQUIRED_LIBRARIES ${SCOTCH_LIBRARY} ${SCOTCHERR_LIBRARY})
91
108
# Add MPI variables if MPI has been found
92
109
if (MPI_CXX_FOUND)
124
142
RUN_OUTPUT_VARIABLE OUTPUT
127
146
if (SCOTCH_CONFIG_TEST_VERSION_EXITCODE EQUAL 0)
128
147
set(SCOTCH_VERSION ${OUTPUT} CACHE TYPE STRING)
148
message(STATUS "Found SCOTCH (version ${SCOTCH_VERSION})")
151
# For SCOTCH version > 6, need to add libraries scotch and ptscotch
152
if (NOT ${SCOTCH_VERSION} VERSION_LESS "6")
153
set(SCOTCH_LIBRARIES ${PTSCOTCH_LIBRARY} ${SCOTCH_LIBRARY} ${PTSCOTCHERR_LIBRARY})
154
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${SCOTCH_LIBRARY})
131
157
# PT-SCOTCH was first introduced in SCOTCH version 5.0
190
216
message(STATUS "Performing test SCOTCH_TEST_RUNS - Failed")
191
217
if (SCOTCH_DEBUG)
192
# Output some variables
193
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
218
# Output some variables
219
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
194
220
"SCOTCH_TEST_LIB_COMPILED = ${SCOTCH_TEST_LIB_COMPILED}")
195
221
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
196
222
"SCOTCH_TEST_LIB_COMPILE_OUTPUT = ${SCOTCH_TEST_LIB_COMPILE_OUTPUT}")
204
230
# If program does not run, try adding zlib library and test again
205
231
if(NOT SCOTCH_TEST_RUNS)
206
232
if (NOT ZLIB_FOUND)
210
236
if (ZLIB_INCLUDE_DIRS AND ZLIB_LIBRARIES)
211
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${ZLIB_INCLUDE_DIRS})
212
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${ZLIB_LIBRARIES})
237
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${ZLIB_INCLUDE_DIRS})
238
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${ZLIB_LIBRARIES})
214
message(STATUS "Performing test SCOTCH_ZLIB_TEST_RUNS")
216
SCOTCH_ZLIB_TEST_LIB_EXITCODE
217
SCOTCH_ZLIB_TEST_LIB_COMPILED
218
${CMAKE_CURRENT_BINARY_DIR}
219
${SCOTCH_TEST_LIB_CPP}
221
"-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}"
222
"-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}"
223
COMPILE_OUTPUT_VARIABLE SCOTCH_ZLIB_TEST_LIB_COMPILE_OUTPUT
224
RUN_OUTPUT_VARIABLE SCOTCH_ZLIB_TEST_LIB_OUTPUT
240
message(STATUS "Performing test SCOTCH_ZLIB_TEST_RUNS")
242
SCOTCH_ZLIB_TEST_LIB_EXITCODE
243
SCOTCH_ZLIB_TEST_LIB_COMPILED
244
${CMAKE_CURRENT_BINARY_DIR}
245
${SCOTCH_TEST_LIB_CPP}
247
"-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}"
248
"-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}"
249
COMPILE_OUTPUT_VARIABLE SCOTCH_ZLIB_TEST_LIB_COMPILE_OUTPUT
250
RUN_OUTPUT_VARIABLE SCOTCH_ZLIB_TEST_LIB_OUTPUT
227
253
# Add zlib flags if required and set test run to 'true'
228
254
if (SCOTCH_ZLIB_TEST_LIB_COMPILED AND SCOTCH_ZLIB_TEST_LIB_EXITCODE EQUAL 0)
232
258
set(SCOTCH_TEST_RUNS TRUE)
234
260
message(STATUS "Performing test SCOTCH_ZLIB_TEST_RUNS - Failed")
236
262
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
237
263
"SCOTCH_ZLIB_TEST_LIB_COMPILED = ${SCOTCH_ZLIB_TEST_LIB_COMPILED}")
238
264
message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "