@@ -62,7 +62,7 @@ function(examples list_name)
6262 foreach (l ${${list_name} })
6363 get_filename_component (lwe ${l} NAME_WE )
6464 add_executable (${lwe} ${arpackexample_DIR} /${l} ${examples_EXTRA_SRCS} )
65- target_link_libraries (${lwe} arpack BLAS::BLAS LAPACK::LAPACK ${EXTRA_LDFLAGS} )
65+ target_link_libraries (${lwe} arpack ${LAPACK_BLAS_LIBS} ${EXTRA_LDFLAGS} )
6666 add_test (NAME "${lwe} _ex" COMMAND ${lwe} )
6767 endforeach ()
6868endfunction (examples )
@@ -76,10 +76,13 @@ function(pexamples list_name)
7676 endforeach ()
7777endfunction (pexamples )
7878
79- if (PYTHON3)
80- enable_language (C CXX ) # Boost requirement.
81- set (CMAKE_CXX_STANDARD 14) # Boost requirement.
79+ if (PYTHON3 OR EIGEN OR ICB)
80+ enable_language (CXX )
81+ set (CMAKE_CXX_STANDARD 14)
82+ set (CMAKE_CXX_STANDARD_REQUIRED ON )
83+ endif ()
8284
85+ if (PYTHON3)
8386 find_package (PythonInterp 3 REQUIRED )
8487 find_package (PythonLibs 3 REQUIRED )
8588 find_package (Boost 1.78 COMPONENTS python${BOOST_PYTHON_LIBSUFFIX} numpy${BOOST_PYTHON_LIBSUFFIX} REQUIRED )
@@ -139,10 +142,6 @@ endif ()
139142
140143# Enable language(s) before any find_package (in particular before MPI find_package).
141144if (ICB)
142- enable_language (C CXX ) # For testing binding with c/c++.
143-
144- set (CMAKE_CXX_STANDARD 11) # OK, since cmake-3.1 only.
145-
146145 file (WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY} /CMakeTmp/PROG_ICB.f90
147146 "
148147 PROGRAM PROG_ICB
@@ -302,6 +301,8 @@ if (NOT TARGET LAPACK::LAPACK) # Search only if not already found by upper CMake
302301 endif ()
303302endif ()
304303
304+ set (LAPACK_BLAS_LIBS LAPACK::LAPACK BLAS::BLAS)
305+
305306# As BLAS/LAPACK does not provide ICB, we may have to deal with symbols the old-fashion-boring-cumbersome-fortran/C way...
306307
307308if (SYMBOLSUFFIX)
@@ -647,7 +648,7 @@ function(build_tests)
647648
648649 add_executable (dnsimp_test TESTS/dnsimp.f TESTS/mmio.f TESTS/debug.h )
649650 set_target_properties ( dnsimp_test PROPERTIES OUTPUT_NAME dnsimp )
650- target_link_libraries (dnsimp_test arpack BLAS::BLAS LAPACK::LAPACK ${EXTRA_LDFLAGS} )
651+ target_link_libraries (dnsimp_test arpack ${LAPACK_BLAS_LIBS} ${EXTRA_LDFLAGS} )
651652 add_custom_command (TARGET dnsimp_test POST_BUILD
652653 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR} /TESTS/testA.mtx testA.mtx
653654 )
@@ -656,40 +657,40 @@ function(build_tests)
656657 if (ICB)
657658 add_executable (bug_1315_single TESTS/bug_1315_single.c )
658659 target_include_directories (bug_1315_single PUBLIC ${PROJECT_SOURCE_DIR} /ICB ) # Get arpack.h
659- target_link_libraries (bug_1315_single arpack BLAS::BLAS LAPACK::LAPACK ${EXTRA_LDFLAGS} )
660+ target_link_libraries (bug_1315_single arpack ${LAPACK_BLAS_LIBS} ${EXTRA_LDFLAGS} )
660661 add_test (bug_1315_single_tst ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /bug_1315_single )
661662
662663 add_executable (bug_1315_double TESTS/bug_1315_double.c )
663664 target_include_directories (bug_1315_double PUBLIC ${PROJECT_SOURCE_DIR} /ICB ) # Get arpack.h
664- target_link_libraries (bug_1315_double arpack BLAS::BLAS LAPACK::LAPACK ${EXTRA_LDFLAGS} )
665+ target_link_libraries (bug_1315_double arpack ${LAPACK_BLAS_LIBS} ${EXTRA_LDFLAGS} )
665666 add_test (bug_1315_double_tst ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /bug_1315_double )
666667 endif ()
667668
668669 add_executable (bug_1323 TESTS/bug_1323.f )
669- target_link_libraries (bug_1323 arpack BLAS::BLAS LAPACK::LAPACK ${EXTRA_LDFLAGS} )
670+ target_link_libraries (bug_1323 arpack ${LAPACK_BLAS_LIBS} ${EXTRA_LDFLAGS} )
670671 add_test (bug_1323_tst ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /bug_1323 )
671672
672673 add_executable (bug_58_double TESTS/bug_58_double.f )
673- target_link_libraries (bug_58_double arpack BLAS::BLAS LAPACK::LAPACK ${EXTRA_LDFLAGS} )
674+ target_link_libraries (bug_58_double arpack ${LAPACK_BLAS_LIBS} ${EXTRA_LDFLAGS} )
674675 add_test (bug_58_double_tst ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /bug_58_double )
675676
676677 add_executable (bug_79_double_complex TESTS/bug_79_double_complex.f )
677- target_link_libraries (bug_79_double_complex arpack BLAS::BLAS LAPACK::LAPACK ${EXTRA_LDFLAGS} )
678+ target_link_libraries (bug_79_double_complex arpack ${LAPACK_BLAS_LIBS} ${EXTRA_LDFLAGS} )
678679 add_test (bug_79_double_complex_tst ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /bug_79_double_complex )
679680
680681 add_executable (bug_142 TESTS/bug_142.f )
681- target_link_libraries (bug_142 arpack BLAS::BLAS LAPACK::LAPACK ${EXTRA_LDFLAGS} )
682+ target_link_libraries (bug_142 arpack ${LAPACK_BLAS_LIBS} ${EXTRA_LDFLAGS} )
682683 add_test (bug_142_tst ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /bug_142 )
683684
684685 add_executable (bug_142_gen TESTS/bug_142_gen.f )
685- target_link_libraries (bug_142_gen arpack BLAS::BLAS LAPACK::LAPACK ${EXTRA_LDFLAGS} )
686+ target_link_libraries (bug_142_gen arpack ${LAPACK_BLAS_LIBS} ${EXTRA_LDFLAGS} )
686687 add_test (bug_142_gen_tst ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /bug_142_gen )
687688
688689 if (MPI)
689690 set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /PARPACK/TESTS/MPI)
690691
691692 add_executable (issue46 PARPACK/TESTS/MPI/issue46.f )
692- target_link_libraries (issue46 parpack arpack BLAS::BLAS LAPACK::LAPACK ${EXTRA_LDFLAGS} )
693+ target_link_libraries (issue46 parpack arpack ${LAPACK_BLAS_LIBS} ${EXTRA_LDFLAGS} )
693694 add_test (issue46_tst mpiexec -n 2 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /issue46 )
694695 endif ()
695696
@@ -698,12 +699,12 @@ function(build_tests)
698699
699700 add_executable (icb_arpack_c TESTS/icb_arpack_c.c )
700701 target_include_directories (icb_arpack_c PUBLIC ${PROJECT_SOURCE_DIR} /ICB ) # Get arpack.h
701- target_link_libraries (icb_arpack_c arpack BLAS::BLAS LAPACK::LAPACK ${EXTRA_LDFLAGS} )
702+ target_link_libraries (icb_arpack_c arpack ${LAPACK_BLAS_LIBS} ${EXTRA_LDFLAGS} )
702703 add_test (icb_arpack_c_tst ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /icb_arpack_c )
703704
704705 add_executable (icb_arpack_cpp TESTS/icb_arpack_cpp.cpp )
705706 target_include_directories (icb_arpack_cpp PUBLIC ${PROJECT_SOURCE_DIR} /ICB ) # Get arpack.hpp
706- target_link_libraries (icb_arpack_cpp arpack BLAS::BLAS LAPACK::LAPACK ${EXTRA_LDFLAGS} )
707+ target_link_libraries (icb_arpack_cpp arpack ${LAPACK_BLAS_LIBS} ${EXTRA_LDFLAGS} )
707708 add_test (icb_arpack_cpp_tst ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /icb_arpack_cpp )
708709
709710 if (EIGEN)
@@ -713,7 +714,7 @@ function(build_tests)
713714
714715 add_executable (arpackmm EXAMPLES/MATRIX_MARKET/arpackmm.cpp )
715716 target_include_directories (arpackmm PUBLIC ${PROJECT_SOURCE_DIR} /ICB ${EIGEN3_INCLUDE_DIR} ) # Get arpack.h + eigen
716- target_link_libraries (arpackmm arpack BLAS::BLAS LAPACK::LAPACK ${EXTRA_LDFLAGS} )
717+ target_link_libraries (arpackmm arpack ${LAPACK_BLAS_LIBS} ${EXTRA_LDFLAGS} )
717718 configure_file (EXAMPLES/MATRIX_MARKET/As.mtx ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /As.mtx )
718719 configure_file (EXAMPLES/MATRIX_MARKET/An.mtx ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /An.mtx )
719720 configure_file (EXAMPLES/MATRIX_MARKET/Az.mtx ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /Az.mtx )
@@ -742,7 +743,7 @@ function(build_tests)
742743 ${Boost_INCLUDE_DIRS}
743744 ${PYTHON_INCLUDE_DIRS} )
744745 target_link_libraries (pyarpack
745- BLAS::BLAS LAPACK::LAPACK ${Boost_LIBRARIES} ${PYTHON_LIBRARIES} )
746+ ${LAPACK_BLAS_LIBS} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES} )
746747 install (TARGETS pyarpack
747748 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} /pyarpack
748749 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} /pyarpack)
@@ -798,12 +799,12 @@ function(build_tests)
798799
799800 add_executable (icb_parpack_c PARPACK/TESTS/MPI/icb_parpack_c.c )
800801 target_include_directories (icb_parpack_c PUBLIC ${PROJECT_SOURCE_DIR} /ICB MPI::MPI_C ) # Get parpack.h mpi.h
801- target_link_libraries (icb_parpack_c parpack arpack BLAS::BLAS LAPACK::LAPACK ${EXTRA_LDFLAGS} MPI::MPI_C )
802+ target_link_libraries (icb_parpack_c parpack arpack ${LAPACK_BLAS_LIBS} ${EXTRA_LDFLAGS} MPI::MPI_C )
802803 add_test (icb_parpack_c_tst mpiexec -n 2 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /icb_parpack_c )
803804
804805 add_executable (icb_parpack_cpp PARPACK/TESTS/MPI/icb_parpack_cpp.cpp )
805806 target_include_directories (icb_parpack_cpp PUBLIC ${PROJECT_SOURCE_DIR} /ICB MPI::MPI_CXX ) # Get parpack.hpp mpi.h
806- target_link_libraries (icb_parpack_cpp parpack arpack BLAS::BLAS LAPACK::LAPACK ${EXTRA_LDFLAGS} MPI::MPI_CXX )
807+ target_link_libraries (icb_parpack_cpp parpack arpack ${LAPACK_BLAS_LIBS} ${EXTRA_LDFLAGS} MPI::MPI_CXX )
807808 add_test (icb_parpack_cpp_tst mpiexec -n 2 ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} /icb_parpack_cpp )
808809 endif ()
809810 endif ()
0 commit comments