aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2011-09-21 10:27:38 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2011-09-21 10:27:38 +0200
commitebfed5a51298fc03ad0c39c18b3ca723014d5c85 (patch)
treeb506e422eecac2d1358dd8b1b9b9a0a7823d02b3
parent1d796acb05c20b09e9b8389e3919634ddf02e3ec (diff)
Enable incomplete BLAS/Lapack builds when no fortran compiler has been found.
Works here with gcc. Hopefully this will work for MSVC too.
-rw-r--r--CMakeLists.txt16
-rw-r--r--blas/CMakeLists.txt19
-rw-r--r--lapack/CMakeLists.txt9
-rw-r--r--unsupported/test/CMakeLists.txt14
4 files changed, 33 insertions, 25 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9c37c96e9..ab44f22c1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -343,15 +343,13 @@ else()
add_subdirectory(test EXCLUDE_FROM_ALL)
endif()
-if(NOT MSVC)
- if(EIGEN_LEAVE_TEST_IN_ALL_TARGET)
- add_subdirectory(blas)
- add_subdirectory(lapack)
- else()
- add_subdirectory(blas EXCLUDE_FROM_ALL)
- add_subdirectory(lapack EXCLUDE_FROM_ALL)
- endif()
-endif(NOT MSVC)
+if(EIGEN_LEAVE_TEST_IN_ALL_TARGET)
+ add_subdirectory(blas)
+ add_subdirectory(lapack)
+else()
+ add_subdirectory(blas EXCLUDE_FROM_ALL)
+ add_subdirectory(lapack EXCLUDE_FROM_ALL)
+endif()
add_subdirectory(unsupported)
diff --git a/blas/CMakeLists.txt b/blas/CMakeLists.txt
index 1811a18a7..03346a936 100644
--- a/blas/CMakeLists.txt
+++ b/blas/CMakeLists.txt
@@ -13,16 +13,25 @@ if( NOT DEFINED EIGEN_Fortran_COMPILER_WORKS OR EIGEN_Fortran_COMPILER_WORKS)
endif()
+add_custom_target(blas)
+
+set(EigenBlas_SRCS single.cpp double.cpp complex_single.cpp complex_double.cpp xerbla.cpp)
+
if(CMAKE_Fortran_COMPILER_WORKS)
-add_custom_target(blas)
+message(WARNING " No fortran compiler has been detected, the blas build will be incomplete.")
-set(EigenBlas_SRCS single.cpp double.cpp complex_single.cpp complex_double.cpp xerbla.cpp
+set(EigenBlas_SRCS ${EigenBlas_SRCS}
complexdots.f
srotm.f srotmg.f drotm.f drotmg.f
- lsame.f chpr2.f ctbsv.f dspmv.f dtbmv.f dtpsv.f ssbmv.f sspr.f stpmv.f zhpr2.f ztbsv.f chbmv.f chpr.f ctpmv.f dspr2.f dtbsv.f sspmv.f stbmv.f stpsv.f zhbmv.f zhpr.f ztpmv.f chpmv.f ctbmv.f ctpsv.f dsbmv.f dspr.f dtpmv.f sspr2.f stbsv.f zhpmv.f ztbmv.f ztpsv.f
+ lsame.f chpr2.f ctbsv.f dspmv.f dtbmv.f dtpsv.f ssbmv.f sspr.f stpmv.f
+ zhpr2.f ztbsv.f chbmv.f chpr.f ctpmv.f dspr2.f dtbsv.f sspmv.f stbmv.f stpsv.f
+ zhbmv.f zhpr.f ztpmv.f chpmv.f ctbmv.f ctpsv.f dsbmv.f dspr.f dtpmv.f sspr2.f
+ stbsv.f zhpmv.f ztbmv.f ztpsv.f
)
+endif(CMAKE_Fortran_COMPILER_WORKS)
+
add_library(eigen_blas_static ${EigenBlas_SRCS})
add_library(eigen_blas SHARED ${EigenBlas_SRCS})
@@ -38,6 +47,7 @@ install(TARGETS eigen_blas eigen_blas_static
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
+if(CMAKE_Fortran_COMPILER_WORKS)
if(EIGEN_LEAVE_TEST_IN_ALL_TARGET)
add_subdirectory(testing) # can't do EXCLUDE_FROM_ALL here, breaks CTest
@@ -45,4 +55,5 @@ else()
add_subdirectory(testing EXCLUDE_FROM_ALL)
endif()
-endif(CMAKE_Fortran_COMPILER_WORKS)
+endif()
+
diff --git a/lapack/CMakeLists.txt b/lapack/CMakeLists.txt
index 32fd6ad81..ad7c04274 100644
--- a/lapack/CMakeLists.txt
+++ b/lapack/CMakeLists.txt
@@ -13,15 +13,16 @@ if( NOT DEFINED EIGEN_Fortran_COMPILER_WORKS OR EIGEN_Fortran_COMPILER_WORKS)
endif()
-if(CMAKE_Fortran_COMPILER_WORKS)
add_custom_target(lapack)
include_directories(../blas)
set(EigenLapack_SRCS
-single.cpp double.cpp complex_single.cpp complex_double.cpp
+single.cpp double.cpp complex_single.cpp complex_double.cpp ../blas/xerbla.cpp
)
+if(CMAKE_Fortran_COMPILER_WORKS)
+
get_filename_component(eigen_full_path_to_reference_to_reference_lapack "./reference/" ABSOLUTE)
if(EXISTS ${eigen_full_path_to_reference_to_reference_lapack})
set(EigenLapack_SRCS ${EigenLapack_SRCS}
@@ -357,6 +358,8 @@ reference/ctbcon.f reference/dormhr.f reference/sla_
)
endif()
+endif(CMAKE_Fortran_COMPILER_WORKS)
+
add_library(eigen_lapack_static ${EigenLapack_SRCS})
add_library(eigen_lapack SHARED ${EigenLapack_SRCS})
@@ -373,4 +376,4 @@ install(TARGETS eigen_lapack eigen_lapack_static
ARCHIVE DESTINATION lib)
# add_subdirectory(testing)
-endif(CMAKE_Fortran_COMPILER_WORKS)
+
diff --git a/unsupported/test/CMakeLists.txt b/unsupported/test/CMakeLists.txt
index cd50c48e1..c84cccc52 100644
--- a/unsupported/test/CMakeLists.txt
+++ b/unsupported/test/CMakeLists.txt
@@ -4,15 +4,11 @@ include_directories(../../test ../../unsupported ../../Eigen
set(SPARSE_LIBS "")
-# configure blas/lapack
-if(CMAKE_Fortran_COMPILER_WORKS)
- set(BLAS_FOUND TRUE)
- set(LAPACK_FOUND TRUE)
- set(BLAS_LIBRARIES eigen_blas_static)
- set(LAPACK_LIBRARIES eigen_lapack_static)
-else()
- # TODO search for default blas/lapack
-endif()
+# configure blas/lapack (use Eigen's by default)
+set(BLAS_FOUND TRUE)
+set(LAPACK_FOUND TRUE)
+set(BLAS_LIBRARIES eigen_blas)
+set(LAPACK_LIBRARIES eigen_lapack)
find_package(Cholmod)
if(CHOLMOD_FOUND AND BLAS_FOUND AND LAPACK_FOUND)