Skip to content

Commit f263a44

Browse files
committed
Hide oneMKL internal result variables
1 parent 28ffd83 commit f263a44

1 file changed

Lines changed: 88 additions & 57 deletions

File tree

cmake/modules/FindMKL.cmake

Lines changed: 88 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -96,28 +96,34 @@ if(ENABLE_MPI)
9696
message(STATUS "oneMKL BLACS interface: ${_mkl_blacs_name}")
9797
endif()
9898

99-
# Re-run searches when a configuration axis or the selected MKL root changes.
100-
# This avoids reusing a library cached for another link mode, threading layer,
101-
# MPI ABI, or oneMKL installation.
102-
set(_mkl_search_signature
103-
"${_mkl_root_hints};${_mkl_link};${_mkl_interface_name};${_mkl_threading};${_mkl_blacs_name}"
104-
)
105-
if(DEFINED _MKL_SEARCH_SIGNATURE
106-
AND NOT "${_MKL_SEARCH_SIGNATURE}" STREQUAL "${_mkl_search_signature}")
107-
foreach(
108-
_mkl_cache_var IN
109-
ITEMS MKL_INCLUDE
110-
MKL_FFTW_INCLUDE
111-
MKL_INTERFACE_LIB
112-
MKL_THREAD
113-
MKL_CORE
114-
MKL_SCALAPACK
115-
MKL_BLACS)
116-
unset(${_mkl_cache_var} CACHE)
117-
endforeach()
118-
endif()
119-
set(_MKL_SEARCH_SIGNATURE "${_mkl_search_signature}"
120-
CACHE INTERNAL "Configuration used for the current oneMKL search")
99+
# These are result variables of this finder, not user configuration inputs.
100+
foreach(_mkl_result_var IN ITEMS
101+
MKL_INCLUDE
102+
MKL_FFTW_INCLUDE
103+
MKL_INTERFACE_LIB
104+
MKL_THREAD
105+
MKL_CORE
106+
MKL_SCALAPACK
107+
MKL_BLACS)
108+
if(DEFINED CACHE{${_mkl_result_var}})
109+
message(WARNING
110+
"${_mkl_result_var} is an internal result of FindMKL.cmake and will be ignored.")
111+
unset(${_mkl_result_var} CACHE)
112+
endif()
113+
unset(${_mkl_result_var})
114+
endforeach()
115+
116+
foreach(_mkl_internal_var IN ITEMS
117+
_abacus_mkl_include
118+
_abacus_mkl_fftw_include
119+
_abacus_mkl_interface_lib
120+
_abacus_mkl_thread
121+
_abacus_mkl_core
122+
_abacus_mkl_scalapack
123+
_abacus_mkl_blacs)
124+
unset(${_mkl_internal_var})
125+
unset(${_mkl_internal_var} CACHE)
126+
endforeach()
121127

122128
set(_mkl_saved_suffixes "${CMAKE_FIND_LIBRARY_SUFFIXES}")
123129
if(_mkl_link STREQUAL "static")
@@ -126,38 +132,63 @@ elseif(_mkl_link STREQUAL "dynamic")
126132
set(CMAKE_FIND_LIBRARY_SUFFIXES ".so")
127133
endif()
128134

129-
find_path(MKL_INCLUDE
130-
NAMES mkl.h
131-
HINTS ${_mkl_root_hints}
132-
PATH_SUFFIXES include)
133-
find_path(MKL_FFTW_INCLUDE
134-
NAMES fftw3.h
135-
HINTS ${_mkl_root_hints}
136-
PATH_SUFFIXES include/fftw)
137-
find_library(MKL_INTERFACE_LIB
138-
NAMES ${_mkl_interface_name}
139-
HINTS ${_mkl_root_hints}
140-
PATH_SUFFIXES lib/intel64 lib)
141-
find_library(MKL_THREAD
142-
NAMES mkl_${_mkl_threading}
143-
HINTS ${_mkl_root_hints}
144-
PATH_SUFFIXES lib/intel64 lib)
145-
find_library(MKL_CORE
146-
NAMES mkl_core
147-
HINTS ${_mkl_root_hints}
148-
PATH_SUFFIXES lib/intel64 lib)
135+
find_path(_abacus_mkl_include
136+
NAMES mkl.h
137+
PATHS ${_mkl_root_hints}
138+
PATH_SUFFIXES include
139+
NO_DEFAULT_PATH)
140+
141+
find_path(_abacus_mkl_fftw_include
142+
NAMES fftw3.h
143+
PATHS ${_mkl_root_hints}
144+
PATH_SUFFIXES include/fftw
145+
NO_DEFAULT_PATH)
146+
147+
find_library(_abacus_mkl_interface_lib
148+
NAMES ${_mkl_interface_name}
149+
PATHS ${_mkl_root_hints}
150+
PATH_SUFFIXES lib/intel64 lib
151+
NO_DEFAULT_PATH)
152+
153+
find_library(_abacus_mkl_thread
154+
NAMES mkl_${_mkl_threading}
155+
PATHS ${_mkl_root_hints}
156+
PATH_SUFFIXES lib/intel64 lib
157+
NO_DEFAULT_PATH)
158+
159+
find_library(_abacus_mkl_core
160+
NAMES mkl_core
161+
PATHS ${_mkl_root_hints}
162+
PATH_SUFFIXES lib/intel64 lib
163+
NO_DEFAULT_PATH)
164+
149165
if(ENABLE_MPI)
150-
find_library(MKL_SCALAPACK
151-
NAMES mkl_scalapack_lp64
152-
HINTS ${_mkl_root_hints}
153-
PATH_SUFFIXES lib/intel64 lib)
154-
find_library(MKL_BLACS
155-
NAMES ${_mkl_blacs_name}
156-
HINTS ${_mkl_root_hints}
157-
PATH_SUFFIXES lib/intel64 lib)
166+
find_library(_abacus_mkl_scalapack
167+
NAMES mkl_scalapack_lp64
168+
PATHS ${_mkl_root_hints}
169+
PATH_SUFFIXES lib/intel64 lib
170+
NO_DEFAULT_PATH)
171+
172+
find_library(_abacus_mkl_blacs
173+
NAMES ${_mkl_blacs_name}
174+
PATHS ${_mkl_root_hints}
175+
PATH_SUFFIXES lib/intel64 lib
176+
NO_DEFAULT_PATH)
158177
endif()
178+
159179
set(CMAKE_FIND_LIBRARY_SUFFIXES "${_mkl_saved_suffixes}")
160180

181+
set(MKL_INCLUDE "${_abacus_mkl_include}")
182+
set(MKL_FFTW_INCLUDE "${_abacus_mkl_fftw_include}")
183+
set(MKL_INTERFACE_LIB "${_abacus_mkl_interface_lib}")
184+
set(MKL_THREAD "${_abacus_mkl_thread}")
185+
set(MKL_CORE "${_abacus_mkl_core}")
186+
187+
if(ENABLE_MPI)
188+
set(MKL_SCALAPACK "${_abacus_mkl_scalapack}")
189+
set(MKL_BLACS "${_abacus_mkl_blacs}")
190+
endif()
191+
161192
set(_mkl_required_vars MKL_INCLUDE MKL_FFTW_INCLUDE MKL_INTERFACE_LIB MKL_THREAD MKL_CORE)
162193
if(ENABLE_MPI)
163194
list(APPEND _mkl_required_vars MKL_SCALAPACK MKL_BLACS)
@@ -243,10 +274,10 @@ if(MKL_FOUND)
243274
endif()
244275

245276
mark_as_advanced(
246-
MKL_INCLUDE
247-
MKL_FFTW_INCLUDE
248-
MKL_INTERFACE_LIB
249-
MKL_THREAD
250-
MKL_CORE
251-
MKL_SCALAPACK
252-
MKL_BLACS)
277+
_abacus_mkl_include
278+
_abacus_mkl_fftw_include
279+
_abacus_mkl_interface_lib
280+
_abacus_mkl_thread
281+
_abacus_mkl_core
282+
_abacus_mkl_scalapack
283+
_abacus_mkl_blacs)

0 commit comments

Comments
 (0)