Remove fortran dependency for eigenblas.

This commit is contained in:
Antonio Sánchez 2025-08-04 19:11:43 +00:00 committed by Rasmus Munk Larsen
parent e4493233e8
commit edcf4c135f
3 changed files with 13 additions and 61 deletions

View File

@ -2,14 +2,6 @@
project(EigenBlas CXX) project(EigenBlas CXX)
if(EIGEN_BUILD_BLAS) if(EIGEN_BUILD_BLAS)
include(CheckLanguage)
check_language(Fortran)
if(CMAKE_Fortran_COMPILER)
enable_language(Fortran)
set(EIGEN_Fortran_COMPILER_WORKS ON)
else()
set(EIGEN_Fortran_COMPILER_WORKS OFF)
endif()
add_custom_target(blas) add_custom_target(blas)
@ -18,15 +10,9 @@ set(EigenBlas_SRCS single.cpp double.cpp complex_single.cpp complex_double.cpp
f2c/lsame.c f2c/dspmv.c f2c/ssbmv.c f2c/chbmv.c f2c/lsame.c f2c/dspmv.c f2c/ssbmv.c f2c/chbmv.c
f2c/sspmv.c f2c/zhbmv.c f2c/chpmv.c f2c/dsbmv.c f2c/sspmv.c f2c/zhbmv.c f2c/chpmv.c f2c/dsbmv.c
f2c/zhpmv.c f2c/dtbmv.c f2c/stbmv.c f2c/ctbmv.c f2c/zhpmv.c f2c/dtbmv.c f2c/stbmv.c f2c/ctbmv.c
f2c/ztbmv.c f2c/ztbmv.c f2c/complexdots.c
) )
if (EIGEN_Fortran_COMPILER_WORKS)
set(EigenBlas_SRCS ${EigenBlas_SRCS} fortran/complexdots.f)
else()
set(EigenBlas_SRCS ${EigenBlas_SRCS} f2c/complexdots.c)
endif()
set(EIGEN_BLAS_TARGETS "") set(EIGEN_BLAS_TARGETS "")
add_library(eigen_blas_static ${EigenBlas_SRCS}) add_library(eigen_blas_static ${EigenBlas_SRCS})
@ -49,8 +35,6 @@ foreach(target IN LISTS EIGEN_BLAS_TARGETS)
ARCHIVE DESTINATION lib) ARCHIVE DESTINATION lib)
endforeach() endforeach()
if(EIGEN_Fortran_COMPILER_WORKS)
if(EIGEN_BUILD_TESTING) if(EIGEN_BUILD_TESTING)
if(EIGEN_LEAVE_TEST_IN_ALL_TARGET) if(EIGEN_LEAVE_TEST_IN_ALL_TARGET)
add_subdirectory(testing) # can't do EXCLUDE_FROM_ALL here, breaks CTest add_subdirectory(testing) # can't do EXCLUDE_FROM_ALL here, breaks CTest
@ -60,4 +44,3 @@ if(EIGEN_BUILD_TESTING)
endif() endif()
endif() endif()
endif()

View File

@ -1,43 +0,0 @@
COMPLEX FUNCTION CDOTC(N,CX,INCX,CY,INCY)
INTEGER INCX,INCY,N
COMPLEX CX(*),CY(*)
COMPLEX RES
EXTERNAL CDOTCW
CALL CDOTCW(N,CX,INCX,CY,INCY,RES)
CDOTC = RES
RETURN
END
COMPLEX FUNCTION CDOTU(N,CX,INCX,CY,INCY)
INTEGER INCX,INCY,N
COMPLEX CX(*),CY(*)
COMPLEX RES
EXTERNAL CDOTUW
CALL CDOTUW(N,CX,INCX,CY,INCY,RES)
CDOTU = RES
RETURN
END
DOUBLE COMPLEX FUNCTION ZDOTC(N,CX,INCX,CY,INCY)
INTEGER INCX,INCY,N
DOUBLE COMPLEX CX(*),CY(*)
DOUBLE COMPLEX RES
EXTERNAL ZDOTCW
CALL ZDOTCW(N,CX,INCX,CY,INCY,RES)
ZDOTC = RES
RETURN
END
DOUBLE COMPLEX FUNCTION ZDOTU(N,CX,INCX,CY,INCY)
INTEGER INCX,INCY,N
DOUBLE COMPLEX CX(*),CY(*)
DOUBLE COMPLEX RES
EXTERNAL ZDOTUW
CALL ZDOTUW(N,CX,INCX,CY,INCY,RES)
ZDOTU = RES
RETURN
END

View File

@ -1,3 +1,13 @@
include(CheckLanguage)
check_language(Fortran)
if(CMAKE_Fortran_COMPILER)
enable_language(Fortran)
set(EIGEN_Fortran_COMPILER_WORKS ON)
else()
set(EIGEN_Fortran_COMPILER_WORKS OFF)
endif()
if (EIGEN_Fortran_COMPILER_WORKS)
macro(ei_add_blas_test testname) macro(ei_add_blas_test testname)
@ -38,3 +48,5 @@ ei_add_blas_test(zblat3)
# add_custom_target(level1) # add_custom_target(level1)
# add_dependencies(level1 sblat1) # add_dependencies(level1 sblat1)
endif()