set(matrix_srcs
  matrixProjection.cpp
  matrixPCA.cpp
  matrixBLAS.cpp
  matrixLAPACK.cpp
  matrixBLASOptimized.cpp
  matrix.cpp
)
set(matrix_hdrs
    expokit_xgpadm.h
    matrix.h
    matrixBLAS.h
    matrixLAPACK.h
    matrixPCA.h
    matrixProjection.h
)
if (VegaFEM_ENABLE_ExpoKit_SUPPORT)
  set(matrix_srcs
    ${matrix_srcs}
    matrixExp.cpp
  )
  set(matrix_hdrs
    ${matrix_hdrs}
    matrixExp.h
  )
endif()

# if (VegaFEM_BUILD_MODEL_REDUCTION)
#     set(matrix_srcs
#         ${matrix_srcs}
#         )
# endif()

vega_add_library(matrix
  SOURCES
    ${matrix_srcs}
  PUBLIC_HEADERS
    ${matrix_hdrs}
)

target_link_libraries(matrix
  PUBLIC
    matrixIO
    ${BLAS}
    ${CBLAS_LIBRARY}
    ${LAPACK_LIBRARIES}
)

# if (BLAS_FOUND)
#   target_link_libraries(matrix
#     PUBLIC
#       ${BLAS}
#       ${CBLAS_LIBRARY}
#       ${LAPACK_LIBRARIES}
#   )
# endif()
