You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
option(EL_C_INTERFACE "Build work-in-progress C interface"ON)
51
-
52
80
# Attempt to use 64-bit integers
53
81
option(EL_USE_64BIT_INTS "Use 64-bit integers where possible"OFF)
54
82
55
-
# Whether or not to use Qt5 for visualization if it is found (experimental)
56
-
# NOTE: Setting Qt5Widgets_DIR, Qt5_DIR, or Qt5_LIBDIR overrides this variable
57
-
option(EL_USE_QT5 "Attempt to use Qt5?"OFF)
58
-
59
83
option(EL_USE_CUSTOM_ALLTOALLV "Avoid MPI_Alltoallv for performance reasons"ON)
60
84
option(EL_BARRIER_IN_ALLTOALLV "Barrier before posting non-blocking recvs"OFF)
61
85
62
-
option(BUILD_KISSFFT "Build KISS FFT"ON)
63
-
if(BUILD_KISSFFT)
64
-
add_subdirectory(external/kiss_fft)
65
-
include_directories(external/kiss_fft)
66
-
elseif(MANUAL_KISSFFT)
67
-
# The following variables should be set:
68
-
# KISSFFT_INCLUDE_DIR: The directory containing kiss_fft.h
69
-
# KISSFFT_LIBS: The list of KISS-FFT libraries to link
70
-
include_directories(${KISSFFT_INCLUDE_DIR})
71
-
endif()
72
-
73
-
# NOTE: ParMETIS cannot yet be legally distributed under an unrestrictive
74
-
# license and is currently limited to educational and research purposes.
75
-
# However, recent versions of METIS can be distributed under the Apache
76
-
# License Version 2.
86
+
# If the version of METIS packaged with Elemental is to be built (the default),
87
+
# then no METIS-specific variables need to be specified, but if the user prefers
88
+
# to use their own version, then the root path of the installation should be
89
+
# passed in via the METIS_ROOT variable.
77
90
option(BUILD_METIS "Build METIS"ON)
78
-
option(BUILD_PARMETIS "Build ParMETIS"OFF)
79
-
if(BUILD_PARMETIS)
80
-
message(FATAL_ERROR "ParMETIS cannot be legally distributed with Elemental under a permissive license. A version of Elemental restricted to educational purposes which contains ParMETIS will hopefully soon be available.")
81
-
# add_subdirectory(external/parmetis)
82
-
# set(EL_HAVE_METIS TRUE)
83
-
# set(EL_HAVE_PARMETIS TRUE)
91
+
92
+
# ParMETIS cannot yet be legally distributed under an unrestrictive
93
+
# license and is currently limited to educational and research purposes.
94
+
# (recent versions of METIS can be distributed under the Apache License
# However, if the user is in an educational or government institution, then
98
+
# it is possible to re-enable support for ParMETIS by specifying the following
99
+
# variables:
88
100
#
89
-
# include_directories(${GKLIB_INCLUDE_DIR})
90
-
# include_directories(${METIS_ROOT}/include)
91
-
# include_directories(${PARMETIS_ROOT}/include)
92
-
elseif(MANUAL_PARMETIS)
93
-
message(FATAL_ERROR "ParMETIS cannot be legally distributed with Elemental under a permissive license. A version of Elemental restricted to educational purposes which contains ParMETIS will hopefully soon be available.")
94
-
# # The following variables need to be specified:
95
-
# # PARMETIS_TLS_PATCH: defined iff there is a GKlib configure file
96
-
# # GKLIB_INCLUDE_DIR: if PARMETIS_TLS_PATCH is defined, this should point
97
-
# # to the directory containing gklib_tls.h
98
-
# # METIS_ROOT: the full path to the root of the MeTiS source tree
99
-
# # PARMETIS_ROOT: the full path to the root of the ParMeTiS source tree
100
-
# # PARMETIS_LIBS: the list of ParMETIS libraries to link to
101
-
# set(EL_HAVE_METIS TRUE)
102
-
# set(EL_HAVE_PARMETIS TRUE)
103
-
# if(PARMETIS_TLS_PATCH)
104
-
# include_directories(${GKLIB_INCLUDE_DIR})
105
-
# endif()
101
+
# METIS_ROOT: the full path to the root of the MeTiS source tree
102
+
# PARMETIS_ROOT: the full path to the root of the ParMeTiS source tree
103
+
# PARMETIS_LIBS: the list of ParMETIS libraries to link to
104
+
# PARMETIS_TLS_PATCH: defined iff there is a GKlib configure file
105
+
# (if you have not heard of this, ignore it)
106
+
# GKLIB_INCLUDE_DIR: if PARMETIS_TLS_PATCH is defined, this should point
107
+
# to the directory containing gklib_tls.h
108
+
#
109
+
# and adding in a custom ParMETIS routine for performing nodal bisections
110
+
# in parallel (which was originally part of Clique and can be easily found).
"${LANG} optimization/debug flags for ${UPPER_BUILD_TYPE} mode")
253
203
else()
254
204
set(${LANG}_FLAGS "-O3"CACHESTRING
@@ -258,6 +208,62 @@ if(NOT WIN32) # I forget why we need this guard
258
208
endforeach()
259
209
endif()
260
210
211
+
if(BUILD_PARMETIS)
212
+
message(FATAL_ERROR "ParMETIS cannot be legally distributed with Elemental under a permissive license. A version of Elemental restricted to educational purposes which contains ParMETIS will hopefully soon be available.")
message(FATAL_ERROR "ParMETIS cannot be legally distributed with Elemental under a permissive license. A version of Elemental restricted to educational purposes which contains ParMETIS will hopefully soon be available.")
0 commit comments