diff --git a/cmake/EigenTesting.cmake b/cmake/EigenTesting.cmake index 1637989ad..821bdae56 100644 --- a/cmake/EigenTesting.cmake +++ b/cmake/EigenTesting.cmake @@ -37,13 +37,16 @@ macro(ei_add_test_internal testname testname_with_suffix) endif() if(${ARGC} GREATER 3) - foreach(lib_to_link ${ARGV3}) - string(STRIP "${lib_to_link}" lib_to_link_stripped) - string(LENGTH "${lib_to_link_stripped}" lib_to_link_stripped_length) - if(${lib_to_link_stripped_length} GREATER 0) - target_link_libraries(${targetname} "${lib_to_link}") - endif() - endforeach() + set(libs_to_link ${ARGV3}) + # it could be that some cmake module provides a bad library string " " (just spaces), + # and that severely breaks target_link_libraries ("can't link to -l-lstdc++" errors). + # so we check for strings containing only spaces. + string(STRIP "${libs_to_link}" libs_to_link_stripped) + string(LENGTH "${libs_to_link_stripped}" libs_to_link_stripped_length) + if(${libs_to_link_stripped_length} GREATER 0) + # notice: no double quotes around ${libs_to_link} here. It may be a list. + target_link_libraries(${targetname} ${libs_to_link}) + endif() endif() if(WIN32) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index ce1826cb3..507eef31d 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -13,7 +13,7 @@ if(GSL_FOUND) ei_add_property(EIGEN_TESTED_BACKENDS "GSL, ") else(GSL_FOUND) ei_add_property(EIGEN_MISSING_BACKENDS "GSL, ") - set(GSL_LIBRARIES " ") + set(GSL_LIBRARIES "") endif(GSL_FOUND) @@ -76,7 +76,7 @@ ei_add_test(product_trsolve) ei_add_test(product_notemporary) ei_add_test(stable_norm) ei_add_test(bandmatrix) -ei_add_test(cholesky " " "${GSL_LIBRARIES}") +ei_add_test(cholesky "" "${GSL_LIBRARIES}") ei_add_test(lu) ei_add_test(determinant) ei_add_test(inverse) @@ -87,8 +87,8 @@ ei_add_test(upperbidiagonalization) ei_add_test(hessenberg) ei_add_test(schur_real) ei_add_test(schur_complex) -ei_add_test(eigensolver_selfadjoint " " "${GSL_LIBRARIES}") -ei_add_test(eigensolver_generic " " "${GSL_LIBRARIES}") +ei_add_test(eigensolver_selfadjoint "" "${GSL_LIBRARIES}") +ei_add_test(eigensolver_generic "" "${GSL_LIBRARIES}") ei_add_test(eigensolver_complex) ei_add_test(jacobi) ei_add_test(jacobisvd) @@ -106,12 +106,12 @@ ei_add_test(stdlist) ei_add_test(stddeque) ei_add_test(resize) if(QT4_FOUND) - ei_add_test(qtvector " " "${QT_QTCORE_LIBRARY}") + ei_add_test(qtvector "" "${QT_QTCORE_LIBRARY}") endif(QT4_FOUND) ei_add_test(sparse_vector) ei_add_test(sparse_basic) ei_add_test(sparse_product) -ei_add_test(sparse_solvers " " "${SPARSE_LIBS}") +ei_add_test(sparse_solvers "" "${SPARSE_LIBS}") ei_add_test(umeyama) ei_add_test(householder) ei_add_test(swap) diff --git a/unsupported/test/CMakeLists.txt b/unsupported/test/CMakeLists.txt index 24068b6f6..a96ac72b8 100644 --- a/unsupported/test/CMakeLists.txt +++ b/unsupported/test/CMakeLists.txt @@ -46,7 +46,7 @@ find_package(Adolc) if(ADOLC_FOUND) include_directories(${ADOLC_INCLUDES}) ei_add_property(EIGEN_TESTED_BACKENDS "Adolc, ") - ei_add_test(forward_adolc " " ${ADOLC_LIBRARIES}) + ei_add_test(forward_adolc "" ${ADOLC_LIBRARIES}) else(ADOLC_FOUND) ei_add_property(EIGEN_MISSING_BACKENDS "Adolc, ") endif(ADOLC_FOUND) @@ -69,15 +69,15 @@ if(MPFR_FOUND) include_directories(${MPFR_INCLUDES}) ei_add_property(EIGEN_TESTED_BACKENDS "MPFR C++, ") set(EIGEN_MPFR_TEST_LIBRARIES ${MPFR_LIBRARIES} ${GMP_LIBRARIES}) - ei_add_test(mpreal_support " " "${EIGEN_MPFR_TEST_LIBRARIES}" ) + ei_add_test(mpreal_support "" "${EIGEN_MPFR_TEST_LIBRARIES}" ) else() ei_add_property(EIGEN_MISSING_BACKENDS "MPFR C++, ") endif() -ei_add_test(sparse_llt " " "${SPARSE_LIBS}") -ei_add_test(sparse_ldlt " " "${SPARSE_LIBS}") -ei_add_test(sparse_lu " " "${SPARSE_LIBS}") -ei_add_test(sparse_extra " " " ") +ei_add_test(sparse_llt "" "${SPARSE_LIBS}") +ei_add_test(sparse_ldlt "" "${SPARSE_LIBS}") +ei_add_test(sparse_lu "" "${SPARSE_LIBS}") +ei_add_test(sparse_extra "" "") find_package(FFTW) if(FFTW_FOUND)