Use appending to create lists of source files
authorKyle Guinn <elyk03@gmail.com>
Fri, 3 Feb 2017 06:25:30 +0000 (00:25 -0600)
committerKyle Guinn <elyk03@gmail.com>
Fri, 3 Feb 2017 06:25:30 +0000 (00:25 -0600)
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.

BLAS/SRC/CMakeLists.txt
CBLAS/src/CMakeLists.txt
SRC/CMakeLists.txt
TESTING/MATGEN/CMakeLists.txt

index b9f722d..4293027 100644 (file)
@@ -113,30 +113,24 @@ set(DBLAS3 dgemm.f dsymm.f dsyrk.f dsyr2k.f dtrmm.f dtrsm.f)
 
 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}
index 70262d4..3819183 100644 (file)
@@ -97,32 +97,22 @@ set(ZLEV3 cblas_zgemm.c cblas_zsymm.c cblas_zhemm.c cblas_zherk.c
         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)
index 0f6c9ae..a2b84d7 100644 (file)
@@ -490,32 +490,32 @@ if(USE_XBLAS)
   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}
index 54cf9d9..3a38ea1 100644 (file)
@@ -51,25 +51,22 @@ set(ZMATGEN zlatms.f zlatme.f zlatmr.f zlatmt.f
   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)