xref: /aosp_15_r20/external/eigen/lapack/CMakeLists.txt (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
1*bf2c3715SXin Li
2*bf2c3715SXin Liproject(EigenLapack CXX)
3*bf2c3715SXin Li
4*bf2c3715SXin Liinclude(CheckLanguage)
5*bf2c3715SXin Licheck_language(Fortran)
6*bf2c3715SXin Liif(CMAKE_Fortran_COMPILER)
7*bf2c3715SXin Li  enable_language(Fortran)
8*bf2c3715SXin Li  set(EIGEN_Fortran_COMPILER_WORKS ON)
9*bf2c3715SXin Lielse()
10*bf2c3715SXin Li  set(EIGEN_Fortran_COMPILER_WORKS OFF)
11*bf2c3715SXin Liendif()
12*bf2c3715SXin Li
13*bf2c3715SXin Liadd_custom_target(lapack)
14*bf2c3715SXin Liinclude_directories(../blas)
15*bf2c3715SXin Li
16*bf2c3715SXin Liset(EigenLapack_SRCS
17*bf2c3715SXin Lisingle.cpp double.cpp complex_single.cpp complex_double.cpp ../blas/xerbla.cpp
18*bf2c3715SXin Li)
19*bf2c3715SXin Li
20*bf2c3715SXin Liif(EIGEN_Fortran_COMPILER_WORKS)
21*bf2c3715SXin Li
22*bf2c3715SXin Liset(EigenLapack_SRCS  ${EigenLapack_SRCS}
23*bf2c3715SXin Li  slarft.f  dlarft.f  clarft.f  zlarft.f
24*bf2c3715SXin Li  slarfb.f  dlarfb.f  clarfb.f  zlarfb.f
25*bf2c3715SXin Li  slarfg.f  dlarfg.f  clarfg.f  zlarfg.f
26*bf2c3715SXin Li  slarf.f   dlarf.f   clarf.f   zlarf.f
27*bf2c3715SXin Li  sladiv.f  dladiv.f  cladiv.f  zladiv.f
28*bf2c3715SXin Li  ilaslr.f  iladlr.f  ilaclr.f  ilazlr.f
29*bf2c3715SXin Li  ilaslc.f  iladlc.f  ilaclc.f  ilazlc.f
30*bf2c3715SXin Li  dlapy2.f  dlapy3.f  slapy2.f  slapy3.f
31*bf2c3715SXin Li  clacgv.f  zlacgv.f
32*bf2c3715SXin Li  slamch.f  dlamch.f
33*bf2c3715SXin Li  second_NONE.f dsecnd_NONE.f
34*bf2c3715SXin Li)
35*bf2c3715SXin Li
36*bf2c3715SXin Lioption(EIGEN_ENABLE_LAPACK_TESTS OFF "Enable the Lapack unit tests")
37*bf2c3715SXin Li
38*bf2c3715SXin Liif(EIGEN_ENABLE_LAPACK_TESTS)
39*bf2c3715SXin Li
40*bf2c3715SXin Li  get_filename_component(eigen_full_path_to_reference_lapack "./reference/" ABSOLUTE)
41*bf2c3715SXin Li  if(NOT EXISTS ${eigen_full_path_to_reference_lapack})
42*bf2c3715SXin Li    # Download lapack and install sources and testing at the right place
43*bf2c3715SXin Li    message(STATUS "Download lapack_addons_3.4.1.tgz...")
44*bf2c3715SXin Li
45*bf2c3715SXin Li    file(DOWNLOAD "http://downloads.tuxfamily.org/eigen/lapack_addons_3.4.1.tgz"
46*bf2c3715SXin Li                  "${CMAKE_CURRENT_SOURCE_DIR}/lapack_addons_3.4.1.tgz"
47*bf2c3715SXin Li                  INACTIVITY_TIMEOUT 15
48*bf2c3715SXin Li                  TIMEOUT 240
49*bf2c3715SXin Li                  STATUS download_status
50*bf2c3715SXin Li                  EXPECTED_MD5 ab5742640617e3221a873aba44bbdc93
51*bf2c3715SXin Li                  SHOW_PROGRESS)
52*bf2c3715SXin Li
53*bf2c3715SXin Li    message(STATUS ${download_status})
54*bf2c3715SXin Li    list(GET download_status 0 download_status_num)
55*bf2c3715SXin Li    set(download_status_num 0)
56*bf2c3715SXin Li    if(download_status_num EQUAL 0)
57*bf2c3715SXin Li      message(STATUS "Setup lapack reference and lapack unit tests")
58*bf2c3715SXin Li      execute_process(COMMAND tar xzf  "lapack_addons_3.4.1.tgz" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
59*bf2c3715SXin Li    else()
60*bf2c3715SXin Li      message(STATUS "Download of lapack_addons_3.4.1.tgz failed, LAPACK unit tests won't be enabled")
61*bf2c3715SXin Li      set(EIGEN_ENABLE_LAPACK_TESTS false)
62*bf2c3715SXin Li    endif()
63*bf2c3715SXin Li
64*bf2c3715SXin Li  endif()
65*bf2c3715SXin Li
66*bf2c3715SXin Li  get_filename_component(eigen_full_path_to_reference_lapack "./reference/" ABSOLUTE)
67*bf2c3715SXin Li  if(EXISTS ${eigen_full_path_to_reference_lapack})
68*bf2c3715SXin Li    set(EigenLapack_funcfilenames
69*bf2c3715SXin Li        ssyev.f   dsyev.f   csyev.f   zsyev.f
70*bf2c3715SXin Li        spotrf.f  dpotrf.f  cpotrf.f  zpotrf.f
71*bf2c3715SXin Li        spotrs.f  dpotrs.f  cpotrs.f  zpotrs.f
72*bf2c3715SXin Li        sgetrf.f  dgetrf.f  cgetrf.f  zgetrf.f
73*bf2c3715SXin Li        sgetrs.f  dgetrs.f  cgetrs.f  zgetrs.f)
74*bf2c3715SXin Li
75*bf2c3715SXin Li    file(GLOB ReferenceLapack_SRCS0 RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "reference/*.f")
76*bf2c3715SXin Li    foreach(filename1 IN LISTS ReferenceLapack_SRCS0)
77*bf2c3715SXin Li      string(REPLACE "reference/" "" filename ${filename1})
78*bf2c3715SXin Li      list(FIND EigenLapack_SRCS ${filename} id1)
79*bf2c3715SXin Li      list(FIND EigenLapack_funcfilenames ${filename} id2)
80*bf2c3715SXin Li      if((id1 EQUAL -1) AND (id2 EQUAL -1))
81*bf2c3715SXin Li        set(ReferenceLapack_SRCS ${ReferenceLapack_SRCS} reference/${filename})
82*bf2c3715SXin Li      endif()
83*bf2c3715SXin Li    endforeach()
84*bf2c3715SXin Li  endif()
85*bf2c3715SXin Li
86*bf2c3715SXin Li
87*bf2c3715SXin Liendif()
88*bf2c3715SXin Li
89*bf2c3715SXin Liendif()
90*bf2c3715SXin Li
91*bf2c3715SXin Liset(EIGEN_LAPACK_TARGETS "")
92*bf2c3715SXin Li
93*bf2c3715SXin Liadd_library(eigen_lapack_static ${EigenLapack_SRCS} ${ReferenceLapack_SRCS})
94*bf2c3715SXin Lilist(APPEND EIGEN_LAPACK_TARGETS eigen_lapack_static)
95*bf2c3715SXin Li
96*bf2c3715SXin Liif (EIGEN_BUILD_SHARED_LIBS)
97*bf2c3715SXin Li  add_library(eigen_lapack SHARED ${EigenLapack_SRCS})
98*bf2c3715SXin Li  list(APPEND EIGEN_LAPACK_TARGETS eigen_lapack)
99*bf2c3715SXin Li  target_link_libraries(eigen_lapack  eigen_blas)
100*bf2c3715SXin Liendif()
101*bf2c3715SXin Li
102*bf2c3715SXin Liforeach(target IN LISTS EIGEN_LAPACK_TARGETS)
103*bf2c3715SXin Li  if(EIGEN_STANDARD_LIBRARIES_TO_LINK_TO)
104*bf2c3715SXin Li    target_link_libraries(${target} ${EIGEN_STANDARD_LIBRARIES_TO_LINK_TO})
105*bf2c3715SXin Li  endif()
106*bf2c3715SXin Li  add_dependencies(lapack ${target})
107*bf2c3715SXin Li  install(TARGETS ${target}
108*bf2c3715SXin Li          RUNTIME DESTINATION bin
109*bf2c3715SXin Li          LIBRARY DESTINATION lib
110*bf2c3715SXin Li          ARCHIVE DESTINATION lib)
111*bf2c3715SXin Liendforeach()
112*bf2c3715SXin Li
113*bf2c3715SXin Li
114*bf2c3715SXin Liget_filename_component(eigen_full_path_to_testing_lapack "./testing/" ABSOLUTE)
115*bf2c3715SXin Liif(EXISTS ${eigen_full_path_to_testing_lapack})
116*bf2c3715SXin Li
117*bf2c3715SXin Li  # The following comes from lapack/TESTING/CMakeLists.txt
118*bf2c3715SXin Li  # Get Python
119*bf2c3715SXin Li  find_package(PythonInterp)
120*bf2c3715SXin Li  message(STATUS "Looking for Python found - ${PYTHONINTERP_FOUND}")
121*bf2c3715SXin Li  if (PYTHONINTERP_FOUND)
122*bf2c3715SXin Li    message(STATUS "Using Python version ${PYTHON_VERSION_STRING}")
123*bf2c3715SXin Li  endif()
124*bf2c3715SXin Li
125*bf2c3715SXin Li  set(LAPACK_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
126*bf2c3715SXin Li  set(LAPACK_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
127*bf2c3715SXin Li  set(BUILD_SINGLE      true)
128*bf2c3715SXin Li  set(BUILD_DOUBLE      true)
129*bf2c3715SXin Li  set(BUILD_COMPLEX     true)
130*bf2c3715SXin Li  set(BUILD_COMPLEX16E  true)
131*bf2c3715SXin Li
132*bf2c3715SXin Li  if(MSVC_VERSION)
133*bf2c3715SXin Li#  string(REPLACE "/STACK:10000000" "/STACK:900000000000000000"
134*bf2c3715SXin Li#    CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
135*bf2c3715SXin Li  string(REGEX REPLACE "(.*)/STACK:(.*) (.*)" "\\1/STACK:900000000000000000 \\3"
136*bf2c3715SXin Li    CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
137*bf2c3715SXin Li  endif()
138*bf2c3715SXin Li  file(MAKE_DIRECTORY "${LAPACK_BINARY_DIR}/TESTING")
139*bf2c3715SXin Li  add_subdirectory(testing/MATGEN)
140*bf2c3715SXin Li  add_subdirectory(testing/LIN)
141*bf2c3715SXin Li  add_subdirectory(testing/EIG)
142*bf2c3715SXin Li  macro(add_lapack_test output input target)
143*bf2c3715SXin Li    set(TEST_INPUT "${LAPACK_SOURCE_DIR}/testing/${input}")
144*bf2c3715SXin Li    set(TEST_OUTPUT "${LAPACK_BINARY_DIR}/TESTING/${output}")
145*bf2c3715SXin Li    string(REPLACE "." "_" input_name ${input})
146*bf2c3715SXin Li    set(testName "${target}_${input_name}")
147*bf2c3715SXin Li    if(EXISTS "${TEST_INPUT}")
148*bf2c3715SXin Li      add_test(NAME LAPACK-${testName}
149*bf2c3715SXin Li        COMMAND "${CMAKE_COMMAND}"
150*bf2c3715SXin Li        -DTEST=$<TARGET_FILE:${target}>
151*bf2c3715SXin Li        -DINPUT=${TEST_INPUT}
152*bf2c3715SXin Li        -DOUTPUT=${TEST_OUTPUT}
153*bf2c3715SXin Li        -DINTDIR=${CMAKE_CFG_INTDIR}
154*bf2c3715SXin Li        -P "${LAPACK_SOURCE_DIR}/testing/runtest.cmake")
155*bf2c3715SXin Li    endif()
156*bf2c3715SXin Li  endmacro()
157*bf2c3715SXin Li
158*bf2c3715SXin Li  if (BUILD_SINGLE)
159*bf2c3715SXin Li  add_lapack_test(stest.out stest.in xlintsts)
160*bf2c3715SXin Li  #
161*bf2c3715SXin Li  # ======== SINGLE RFP LIN TESTS ========================
162*bf2c3715SXin Li  add_lapack_test(stest_rfp.out stest_rfp.in xlintstrfs)
163*bf2c3715SXin Li  #
164*bf2c3715SXin Li  #
165*bf2c3715SXin Li  # ======== SINGLE EIG TESTS ===========================
166*bf2c3715SXin Li  #
167*bf2c3715SXin Li
168*bf2c3715SXin Li  add_lapack_test(snep.out nep.in xeigtsts)
169*bf2c3715SXin Li
170*bf2c3715SXin Li
171*bf2c3715SXin Li  add_lapack_test(ssep.out sep.in xeigtsts)
172*bf2c3715SXin Li
173*bf2c3715SXin Li
174*bf2c3715SXin Li  add_lapack_test(ssvd.out svd.in xeigtsts)
175*bf2c3715SXin Li
176*bf2c3715SXin Li
177*bf2c3715SXin Li  add_lapack_test(sec.out sec.in xeigtsts)
178*bf2c3715SXin Li
179*bf2c3715SXin Li
180*bf2c3715SXin Li  add_lapack_test(sed.out sed.in xeigtsts)
181*bf2c3715SXin Li
182*bf2c3715SXin Li
183*bf2c3715SXin Li  add_lapack_test(sgg.out sgg.in xeigtsts)
184*bf2c3715SXin Li
185*bf2c3715SXin Li
186*bf2c3715SXin Li  add_lapack_test(sgd.out sgd.in xeigtsts)
187*bf2c3715SXin Li
188*bf2c3715SXin Li
189*bf2c3715SXin Li  add_lapack_test(ssb.out ssb.in xeigtsts)
190*bf2c3715SXin Li
191*bf2c3715SXin Li
192*bf2c3715SXin Li  add_lapack_test(ssg.out ssg.in xeigtsts)
193*bf2c3715SXin Li
194*bf2c3715SXin Li
195*bf2c3715SXin Li  add_lapack_test(sbal.out sbal.in xeigtsts)
196*bf2c3715SXin Li
197*bf2c3715SXin Li
198*bf2c3715SXin Li  add_lapack_test(sbak.out sbak.in xeigtsts)
199*bf2c3715SXin Li
200*bf2c3715SXin Li
201*bf2c3715SXin Li  add_lapack_test(sgbal.out sgbal.in xeigtsts)
202*bf2c3715SXin Li
203*bf2c3715SXin Li
204*bf2c3715SXin Li  add_lapack_test(sgbak.out sgbak.in xeigtsts)
205*bf2c3715SXin Li
206*bf2c3715SXin Li
207*bf2c3715SXin Li  add_lapack_test(sbb.out sbb.in xeigtsts)
208*bf2c3715SXin Li
209*bf2c3715SXin Li
210*bf2c3715SXin Li  add_lapack_test(sglm.out glm.in xeigtsts)
211*bf2c3715SXin Li
212*bf2c3715SXin Li
213*bf2c3715SXin Li  add_lapack_test(sgqr.out gqr.in xeigtsts)
214*bf2c3715SXin Li
215*bf2c3715SXin Li
216*bf2c3715SXin Li  add_lapack_test(sgsv.out gsv.in xeigtsts)
217*bf2c3715SXin Li
218*bf2c3715SXin Li
219*bf2c3715SXin Li  add_lapack_test(scsd.out csd.in xeigtsts)
220*bf2c3715SXin Li
221*bf2c3715SXin Li
222*bf2c3715SXin Li  add_lapack_test(slse.out lse.in xeigtsts)
223*bf2c3715SXin Li  endif()
224*bf2c3715SXin Li
225*bf2c3715SXin Li  if (BUILD_DOUBLE)
226*bf2c3715SXin Li  #
227*bf2c3715SXin Li  # ======== DOUBLE LIN TESTS ===========================
228*bf2c3715SXin Li  add_lapack_test(dtest.out dtest.in xlintstd)
229*bf2c3715SXin Li  #
230*bf2c3715SXin Li  # ======== DOUBLE RFP LIN TESTS ========================
231*bf2c3715SXin Li  add_lapack_test(dtest_rfp.out dtest_rfp.in xlintstrfd)
232*bf2c3715SXin Li  #
233*bf2c3715SXin Li  # ======== DOUBLE EIG TESTS ===========================
234*bf2c3715SXin Li
235*bf2c3715SXin Li  add_lapack_test(dnep.out nep.in xeigtstd)
236*bf2c3715SXin Li
237*bf2c3715SXin Li
238*bf2c3715SXin Li  add_lapack_test(dsep.out sep.in xeigtstd)
239*bf2c3715SXin Li
240*bf2c3715SXin Li
241*bf2c3715SXin Li  add_lapack_test(dsvd.out svd.in xeigtstd)
242*bf2c3715SXin Li
243*bf2c3715SXin Li
244*bf2c3715SXin Li  add_lapack_test(dec.out dec.in xeigtstd)
245*bf2c3715SXin Li
246*bf2c3715SXin Li
247*bf2c3715SXin Li  add_lapack_test(ded.out ded.in xeigtstd)
248*bf2c3715SXin Li
249*bf2c3715SXin Li
250*bf2c3715SXin Li  add_lapack_test(dgg.out dgg.in xeigtstd)
251*bf2c3715SXin Li
252*bf2c3715SXin Li
253*bf2c3715SXin Li  add_lapack_test(dgd.out dgd.in xeigtstd)
254*bf2c3715SXin Li
255*bf2c3715SXin Li
256*bf2c3715SXin Li  add_lapack_test(dsb.out dsb.in xeigtstd)
257*bf2c3715SXin Li
258*bf2c3715SXin Li
259*bf2c3715SXin Li  add_lapack_test(dsg.out dsg.in xeigtstd)
260*bf2c3715SXin Li
261*bf2c3715SXin Li
262*bf2c3715SXin Li  add_lapack_test(dbal.out dbal.in xeigtstd)
263*bf2c3715SXin Li
264*bf2c3715SXin Li
265*bf2c3715SXin Li  add_lapack_test(dbak.out dbak.in xeigtstd)
266*bf2c3715SXin Li
267*bf2c3715SXin Li
268*bf2c3715SXin Li  add_lapack_test(dgbal.out dgbal.in xeigtstd)
269*bf2c3715SXin Li
270*bf2c3715SXin Li
271*bf2c3715SXin Li  add_lapack_test(dgbak.out dgbak.in xeigtstd)
272*bf2c3715SXin Li
273*bf2c3715SXin Li
274*bf2c3715SXin Li  add_lapack_test(dbb.out dbb.in xeigtstd)
275*bf2c3715SXin Li
276*bf2c3715SXin Li
277*bf2c3715SXin Li  add_lapack_test(dglm.out glm.in xeigtstd)
278*bf2c3715SXin Li
279*bf2c3715SXin Li
280*bf2c3715SXin Li  add_lapack_test(dgqr.out gqr.in xeigtstd)
281*bf2c3715SXin Li
282*bf2c3715SXin Li
283*bf2c3715SXin Li  add_lapack_test(dgsv.out gsv.in xeigtstd)
284*bf2c3715SXin Li
285*bf2c3715SXin Li
286*bf2c3715SXin Li  add_lapack_test(dcsd.out csd.in xeigtstd)
287*bf2c3715SXin Li
288*bf2c3715SXin Li
289*bf2c3715SXin Li  add_lapack_test(dlse.out lse.in xeigtstd)
290*bf2c3715SXin Li  endif()
291*bf2c3715SXin Li
292*bf2c3715SXin Li  if (BUILD_COMPLEX)
293*bf2c3715SXin Li  add_lapack_test(ctest.out ctest.in xlintstc)
294*bf2c3715SXin Li  #
295*bf2c3715SXin Li  # ======== COMPLEX RFP LIN TESTS ========================
296*bf2c3715SXin Li  add_lapack_test(ctest_rfp.out ctest_rfp.in xlintstrfc)
297*bf2c3715SXin Li  #
298*bf2c3715SXin Li  # ======== COMPLEX EIG TESTS ===========================
299*bf2c3715SXin Li
300*bf2c3715SXin Li  add_lapack_test(cnep.out nep.in xeigtstc)
301*bf2c3715SXin Li
302*bf2c3715SXin Li
303*bf2c3715SXin Li  add_lapack_test(csep.out sep.in xeigtstc)
304*bf2c3715SXin Li
305*bf2c3715SXin Li
306*bf2c3715SXin Li  add_lapack_test(csvd.out svd.in xeigtstc)
307*bf2c3715SXin Li
308*bf2c3715SXin Li
309*bf2c3715SXin Li  add_lapack_test(cec.out cec.in xeigtstc)
310*bf2c3715SXin Li
311*bf2c3715SXin Li
312*bf2c3715SXin Li  add_lapack_test(ced.out ced.in xeigtstc)
313*bf2c3715SXin Li
314*bf2c3715SXin Li
315*bf2c3715SXin Li  add_lapack_test(cgg.out cgg.in xeigtstc)
316*bf2c3715SXin Li
317*bf2c3715SXin Li
318*bf2c3715SXin Li  add_lapack_test(cgd.out cgd.in xeigtstc)
319*bf2c3715SXin Li
320*bf2c3715SXin Li
321*bf2c3715SXin Li  add_lapack_test(csb.out csb.in xeigtstc)
322*bf2c3715SXin Li
323*bf2c3715SXin Li
324*bf2c3715SXin Li  add_lapack_test(csg.out csg.in xeigtstc)
325*bf2c3715SXin Li
326*bf2c3715SXin Li
327*bf2c3715SXin Li  add_lapack_test(cbal.out cbal.in xeigtstc)
328*bf2c3715SXin Li
329*bf2c3715SXin Li
330*bf2c3715SXin Li  add_lapack_test(cbak.out cbak.in xeigtstc)
331*bf2c3715SXin Li
332*bf2c3715SXin Li
333*bf2c3715SXin Li  add_lapack_test(cgbal.out cgbal.in xeigtstc)
334*bf2c3715SXin Li
335*bf2c3715SXin Li
336*bf2c3715SXin Li  add_lapack_test(cgbak.out cgbak.in xeigtstc)
337*bf2c3715SXin Li
338*bf2c3715SXin Li
339*bf2c3715SXin Li  add_lapack_test(cbb.out cbb.in xeigtstc)
340*bf2c3715SXin Li
341*bf2c3715SXin Li
342*bf2c3715SXin Li  add_lapack_test(cglm.out glm.in xeigtstc)
343*bf2c3715SXin Li
344*bf2c3715SXin Li
345*bf2c3715SXin Li  add_lapack_test(cgqr.out gqr.in xeigtstc)
346*bf2c3715SXin Li
347*bf2c3715SXin Li
348*bf2c3715SXin Li  add_lapack_test(cgsv.out gsv.in xeigtstc)
349*bf2c3715SXin Li
350*bf2c3715SXin Li
351*bf2c3715SXin Li  add_lapack_test(ccsd.out csd.in xeigtstc)
352*bf2c3715SXin Li
353*bf2c3715SXin Li
354*bf2c3715SXin Li  add_lapack_test(clse.out lse.in xeigtstc)
355*bf2c3715SXin Li  endif()
356*bf2c3715SXin Li
357*bf2c3715SXin Li  if (BUILD_COMPLEX16)
358*bf2c3715SXin Li  #
359*bf2c3715SXin Li  # ======== COMPLEX16 LIN TESTS ========================
360*bf2c3715SXin Li  add_lapack_test(ztest.out ztest.in xlintstz)
361*bf2c3715SXin Li  #
362*bf2c3715SXin Li  # ======== COMPLEX16 RFP LIN TESTS ========================
363*bf2c3715SXin Li  add_lapack_test(ztest_rfp.out ztest_rfp.in xlintstrfz)
364*bf2c3715SXin Li  #
365*bf2c3715SXin Li  # ======== COMPLEX16 EIG TESTS ===========================
366*bf2c3715SXin Li
367*bf2c3715SXin Li  add_lapack_test(znep.out nep.in xeigtstz)
368*bf2c3715SXin Li
369*bf2c3715SXin Li
370*bf2c3715SXin Li  add_lapack_test(zsep.out sep.in xeigtstz)
371*bf2c3715SXin Li
372*bf2c3715SXin Li
373*bf2c3715SXin Li  add_lapack_test(zsvd.out svd.in xeigtstz)
374*bf2c3715SXin Li
375*bf2c3715SXin Li
376*bf2c3715SXin Li  add_lapack_test(zec.out zec.in xeigtstz)
377*bf2c3715SXin Li
378*bf2c3715SXin Li
379*bf2c3715SXin Li  add_lapack_test(zed.out zed.in xeigtstz)
380*bf2c3715SXin Li
381*bf2c3715SXin Li
382*bf2c3715SXin Li  add_lapack_test(zgg.out zgg.in xeigtstz)
383*bf2c3715SXin Li
384*bf2c3715SXin Li
385*bf2c3715SXin Li  add_lapack_test(zgd.out zgd.in xeigtstz)
386*bf2c3715SXin Li
387*bf2c3715SXin Li
388*bf2c3715SXin Li  add_lapack_test(zsb.out zsb.in xeigtstz)
389*bf2c3715SXin Li
390*bf2c3715SXin Li
391*bf2c3715SXin Li  add_lapack_test(zsg.out zsg.in xeigtstz)
392*bf2c3715SXin Li
393*bf2c3715SXin Li
394*bf2c3715SXin Li  add_lapack_test(zbal.out zbal.in xeigtstz)
395*bf2c3715SXin Li
396*bf2c3715SXin Li
397*bf2c3715SXin Li  add_lapack_test(zbak.out zbak.in xeigtstz)
398*bf2c3715SXin Li
399*bf2c3715SXin Li
400*bf2c3715SXin Li  add_lapack_test(zgbal.out zgbal.in xeigtstz)
401*bf2c3715SXin Li
402*bf2c3715SXin Li
403*bf2c3715SXin Li  add_lapack_test(zgbak.out zgbak.in xeigtstz)
404*bf2c3715SXin Li
405*bf2c3715SXin Li
406*bf2c3715SXin Li  add_lapack_test(zbb.out zbb.in xeigtstz)
407*bf2c3715SXin Li
408*bf2c3715SXin Li
409*bf2c3715SXin Li  add_lapack_test(zglm.out glm.in xeigtstz)
410*bf2c3715SXin Li
411*bf2c3715SXin Li
412*bf2c3715SXin Li  add_lapack_test(zgqr.out gqr.in xeigtstz)
413*bf2c3715SXin Li
414*bf2c3715SXin Li
415*bf2c3715SXin Li  add_lapack_test(zgsv.out gsv.in xeigtstz)
416*bf2c3715SXin Li
417*bf2c3715SXin Li
418*bf2c3715SXin Li  add_lapack_test(zcsd.out csd.in xeigtstz)
419*bf2c3715SXin Li
420*bf2c3715SXin Li
421*bf2c3715SXin Li  add_lapack_test(zlse.out lse.in xeigtstz)
422*bf2c3715SXin Li  endif()
423*bf2c3715SXin Li
424*bf2c3715SXin Li
425*bf2c3715SXin Li  if (BUILD_SIMPLE)
426*bf2c3715SXin Li      if (BUILD_DOUBLE)
427*bf2c3715SXin Li  #
428*bf2c3715SXin Li  # ======== SINGLE-DOUBLE PROTO LIN TESTS ==============
429*bf2c3715SXin Li          add_lapack_test(dstest.out dstest.in xlintstds)
430*bf2c3715SXin Li      endif()
431*bf2c3715SXin Li  endif()
432*bf2c3715SXin Li
433*bf2c3715SXin Li
434*bf2c3715SXin Li  if (BUILD_COMPLEX)
435*bf2c3715SXin Li      if (BUILD_COMPLEX16)
436*bf2c3715SXin Li  #
437*bf2c3715SXin Li  # ======== COMPLEX-COMPLEX16 LIN TESTS ========================
438*bf2c3715SXin Li          add_lapack_test(zctest.out zctest.in xlintstzc)
439*bf2c3715SXin Li      endif()
440*bf2c3715SXin Li  endif()
441*bf2c3715SXin Li
442*bf2c3715SXin Li  # ==============================================================================
443*bf2c3715SXin Li
444*bf2c3715SXin Li  execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${LAPACK_SOURCE_DIR}/testing/lapack_testing.py ${LAPACK_BINARY_DIR})
445*bf2c3715SXin Li  add_test(
446*bf2c3715SXin Li    NAME LAPACK_Test_Summary
447*bf2c3715SXin Li    WORKING_DIRECTORY ${LAPACK_BINARY_DIR}
448*bf2c3715SXin Li    COMMAND ${PYTHON_EXECUTABLE} "lapack_testing.py"
449*bf2c3715SXin Li  )
450*bf2c3715SXin Li
451*bf2c3715SXin Liendif()
452*bf2c3715SXin Li
453