Allows any combination of types/precisions to be built at once.
Name the lists "SOURCES" instead of "ALLOBJ" since they contain lists of
source files, not object files.
Fix problems in BLAS: Was missing the ${CBLAS3} file set when building
with BLAS_COMPLEX. Was adding ${BLASLIB} as if it were a source file.
set(ZBLAS3 zgemm.f zsymm.f zsyrk.f zsyr2k.f ztrmm.f ztrsm.f
zhemm.f zherk.f zher2k.f)
-# default build all of it
-set(ALLOBJ ${SBLAS1} ${SBLAS2} ${SBLAS3} ${DBLAS1} ${DBLAS2} ${DBLAS3}
- ${CBLAS1} ${CBLAS2} ${CBLAS3} ${ZBLAS1}
- ${ZBLAS2} ${ZBLAS3} ${ALLBLAS})
+
+set(SOURCES)
if(BLAS_SINGLE)
- set(ALLOBJ ${SBLAS1} ${ALLBLAS}
- ${SBLAS2} ${SBLAS3})
+ list(APPEND SOURCES ${SBLAS1} ${ALLBLAS} ${SBLAS2} ${SBLAS3})
endif()
if(BLAS_DOUBLE)
- set(ALLOBJ ${DBLAS1} ${ALLBLAS}
- ${DBLAS2} ${DBLAS3})
+ list(APPEND SOURCES ${DBLAS1} ${ALLBLAS} ${DBLAS2} ${DBLAS3})
endif()
if(BLAS_COMPLEX)
- set(ALLOBJ ${BLASLIB} ${CBLAS1} ${CB1AUX}
- ${ALLBLAS} ${CBLAS2})
+ list(APPEND SOURCES ${CBLAS1} ${CB1AUX} ${ALLBLAS} ${CBLAS2} ${CBLAS3})
endif()
if(BLAS_COMPLEX16)
- set(ALLOBJ ${BLASLIB} ${ZBLAS1} ${ZB1AUX}
- ${ALLBLAS} ${ZBLAS2} ${ZBLAS3})
+ list(APPEND SOURCES ${ZBLAS1} ${ZB1AUX} ${ALLBLAS} ${ZBLAS2} ${ZBLAS3})
endif()
+list(REMOVE_DUPLICATES SOURCES)
-
-add_library(blas ${ALLOBJ})
+add_library(blas ${SOURCES})
set_target_properties(
blas PROPERTIES
VERSION ${LAPACK_VERSION}
cblas_zher2k.c cblas_ztrmm.c cblas_ztrsm.c cblas_zsyrk.c
cblas_zsyr2k.c)
-# default build all of it
-set(ALLOBJ ${SCLEV1} ${SLEV1} ${SLEV2} ${SLEV3} ${ERRHAND}
- ${DLEV1} ${DLEV2} ${DLEV3}
- ${CLEV1} ${CLEV2} ${CLEV3}
- ${ZLEV1} ${ZLEV2} ${ZLEV3})
-# Single precision real
+set(SOURCES)
if(CBLAS_SINGLE)
- set(ALLOBJ ${SCLEV1} ${SLEV1} ${SLEV2} ${SLEV3} ${ERRHAND})
+ list(APPEND SOURCES ${SLEV1} ${SCLEV1} ${SLEV2} ${SLEV3} ${ERRHAND})
endif()
-
-# Double precision real
if(CBLAS_DOUBLE)
- set(ALLOBJ ${DLEV1} ${DLEV2} ${DLEV3} ${ERRHAND})
+ list(APPEND SOURCES ${DLEV1} ${DLEV2} ${DLEV3} ${ERRHAND})
endif()
-
-# Single precision complex
if(CBLAS_COMPLEX)
- set(ALLOBJ ${CLEV1} ${SCLEV1} ${CLEV2} ${CLEV3} ${ERRHAND})
+ list(APPEND SOURCES ${CLEV1} ${SCLEV1} ${CLEV2} ${CLEV3} ${ERRHAND})
endif()
-
-# Double precision complex
if(CBLAS_COMPLEX16)
- set(ALLOBJ ${ZLEV1} ${ZLEV2} ${ZLEV3} ${ERRHAND})
+ list(APPEND SOURCES ${ZLEV1} ${ZLEV2} ${ZLEV3} ${ERRHAND})
endif()
+list(REMOVE_DUPLICATES SOURCES)
-add_library(cblas ${ALLOBJ})
+add_library(cblas ${SOURCES})
target_link_libraries(cblas PRIVATE ${BLAS_LIBRARIES})
lapack_install_library(cblas)
list(APPEND ZLASRC ${ZXLASRC})
endif()
-set(ALLOBJ)
+
+set(SOURCES)
if(BUILD_SINGLE)
- list(APPEND ALLOBJ ${SLASRC} ${DSLASRC} ${SCLAUX} ${ALLAUX})
+ list(APPEND SOURCES ${SLASRC} ${DSLASRC} ${SCLAUX} ${ALLAUX})
message(STATUS "Building single precision real")
endif()
if(BUILD_DOUBLE)
- list(APPEND ALLOBJ ${DLASRC} ${DSLASRC} ${DZLAUX} ${ALLAUX})
+ list(APPEND SOURCES ${DLASRC} ${DSLASRC} ${DZLAUX} ${ALLAUX})
message(STATUS "Building double precision real")
endif()
if(BUILD_COMPLEX)
- list(APPEND ALLOBJ ${CLASRC} ${ZCLASRC} ${SCLAUX} ${ALLAUX})
+ list(APPEND SOURCES ${CLASRC} ${ZCLASRC} ${SCLAUX} ${ALLAUX})
message(STATUS "Building single precision complex")
endif()
if(BUILD_COMPLEX16)
- list(APPEND ALLOBJ ${ZLASRC} ${ZCLASRC} ${DZLAUX} ${ALLAUX})
+ list(APPEND SOURCES ${ZLASRC} ${ZCLASRC} ${DZLAUX} ${ALLAUX})
message(STATUS "Building double precision complex")
endif()
-list(REMOVE_DUPLICATES ALLOBJ)
+list(REMOVE_DUPLICATES SOURCES)
-if(NOT ALLOBJ)
+if(NOT SOURCES)
message(FATAL_ERROR "-->LAPACK SRC BUILD: NOTHING TO BUILD, NO PRECISION SELECTED:
PLEASE ENABLE AT LEAST ONE OF THOSE: BUILD_SINGLE, BUILD_COMPLEX, BUILD_DOUBLE, BUILD_COMPLEX16.")
endif()
-
-add_library(lapack ${ALLOBJ})
+add_library(lapack ${SOURCES})
set_target_properties(
lapack PROPERTIES
VERSION ${LAPACK_VERSION}
zlagge.f zlaghe.f zlagsy.f zlakf2.f zlarge.f zlaror.f zlarot.f
zlatm1.f zlarnd.f zlatm2.f zlatm3.f zlatm5.f zlatm6.f zlahilb.f)
+
+set(SOURCES)
if(BUILD_SINGLE)
- set(ALLOBJ ${SMATGEN} ${SCATGEN})
+ list(APPEND SOURCES ${SMATGEN} ${SCATGEN})
endif()
if(BUILD_DOUBLE)
- set(ALLOBJ ${ALLOBJ} ${DMATGEN} ${DZATGEN})
+ list(APPEND SOURCES ${DMATGEN} ${DZATGEN})
endif()
if(BUILD_COMPLEX)
- set(ALLOBJ ${ALLOBJ} ${CMATGEN} ${SCATGEN})
+ list(APPEND SOURCES ${CMATGEN} ${SCATGEN})
endif()
if(BUILD_COMPLEX16)
- set(ALLOBJ ${ALLOBJ} ${ZMATGEN} ${DZATGEN})
+ list(APPEND SOURCES ${ZMATGEN} ${DZATGEN})
endif()
+list(REMOVE_DUPLICATES SOURCES)
-if(NOT ALLOBJ)
- set(ALLOBJ ${SMATGEN} ${CMATGEN} ${SCATGEN} ${DMATGEN} ${ZMATGEN}
- ${DZATGEN})
-else()
- list(REMOVE_DUPLICATES ALLOBJ)
-endif()
-add_library(tmglib ${ALLOBJ})
+add_library(tmglib ${SOURCES})
target_link_libraries(tmglib ${LAPACK_LIBRARIES})
lapack_install_library(tmglib)