# $Header: /space/CVS/Trilinos/packages/anasazi/test/CMakeLists.txt,v 1.10 2008/07/25 23:04:47 ejguill Exp $

# Required modules
INCLUDE(Trilinos_Add_Executable_And_Test)

# Setup include directories and library dependencies
INCLUDE_DIRECTORIES(${${PROJECT_NAME}_INCLUDE_DIRS})
LINK_LIBRARIES(${${PROJECT_NAME}_LIBRARIES})

# Test arguments for MPI
IF(TRILINOS_ENABLE_MPI)
	SET(TEST_ARGUMENTS TEST MPITEST)
ELSE(TRILINOS_ENABLE_MPI)
	SET(TEST_ARGUMENTS TEST)
ENDIF(TRILINOS_ENABLE_MPI)

# Test definitions
TRILINOS_ADD_EXECUTABLE_AND_TEST(ARPACKExamples NAME ARPACKDDriver ${TEST_ARGUMENTS} SOURCES ddriver.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(BlockDavidson NAME BlockDavidson ${TEST_ARGUMENTS} SOURCES cxx_main.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(BlockDavidson NAME BlockDavidsonSolver ${TEST_ARGUMENTS} SOURCES cxx_main_solvertest.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(BlockDavidson NAME BlockDavidsonAux ${TEST_ARGUMENTS} SOURCES cxx_main_auxtest.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(BlockKrylovSchur NAME BlockKrylovSchur ${TEST_ARGUMENTS} SOURCES cxx_main.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(BlockKrylovSchur NAME BlockKrylovSchurNH ${TEST_ARGUMENTS} SOURCES cxx_main_nh.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(BlockKrylovSchur NAME BlockKrylovSchurSolver ${TEST_ARGUMENTS} SOURCES cxx_main_solvertest.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(LOBPCG NAME LOBPCG ${TEST_ARGUMENTS} SOURCES cxx_main.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(LOBPCG NAME LOBPCGSimple ${TEST_ARGUMENTS} SOURCES cxx_simple.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(LOBPCG NAME LOBPCGSolver ${TEST_ARGUMENTS} SOURCES cxx_main_solvertest.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(LOBPCG NAME LOBPCGAux ${TEST_ARGUMENTS} SOURCES cxx_main_auxtest.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(MVOPTester NAME MVOP ${TEST_ARGUMENTS} SOURCES cxx_main.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(ModalSolverUtils ${TEST_ARGUMENTS} SOURCES cxx_main.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(OrthoManager NAME OrthoManagerMat ${TEST_ARGUMENTS} SOURCES cxx_mattest.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(OrthoManager NAME OrthoManagerGen ${TEST_ARGUMENTS} SOURCES cxx_gentest.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(OrthoManager NAME OrthoManager ${TEST_ARGUMENTS} SOURCES cxx_main.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(OrthoManager NAME OrthoManagerFloat ${TEST_ARGUMENTS} SOURCES cxx_main.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(SortManager ${TEST_ARGUMENTS} SOURCES cxx_main.cpp)
TRILINOS_ADD_EXECUTABLE_AND_TEST(StatusTest ${TEST_ARGUMENTS} SOURCES cxx_main.cpp)

IF(Teuchos_ENABLE_COMPLEX)
  TRILINOS_ADD_EXECUTABLE_AND_TEST(BlockKrylovSchur NAME BlockKrylovSchurComplexLap ${TEST_ARGUMENTS} SOURCES cxx_main_complex_lap.cpp)
  IF(Trilinos_ENABLE_TRIUTILS)
    TRILINOS_ADD_EXECUTABLE_AND_TEST(BlockDavidson NAME BlockDavidsonComplex ${TEST_ARGUMENTS} SOURCES cxx_main_complex.cpp)
    TRILINOS_ADD_EXECUTABLE_AND_TEST(BlockKrylovSchur NAME BlockKrylovSchurComplex ${TEST_ARGUMENTS} SOURCES cxx_main_complex.cpp)
    TRILINOS_ADD_EXECUTABLE_AND_TEST(LOBPCG NAME LOBPCGComplex ${TEST_ARGUMENTS} SOURCES cxx_main_complex.cpp)
    TRILINOS_ADD_EXECUTABLE_AND_TEST(MVOPTester NAME MVOPComplex ${TEST_ARGUMENTS} SOURCES cxx_main_complex.cpp)
    TRILINOS_ADD_EXECUTABLE_AND_TEST(OrthoManager NAME OrthoManagerComplex ${TEST_ARGUMENTS} SOURCES cxx_main_complex.cpp)
    TRILINOS_ADD_EXECUTABLE_AND_TEST(OrthoManager NAME OrthoManagerComplexGen ${TEST_ARGUMENTS} SOURCES cxx_main_complex.cpp)
    TRILINOS_ADD_EXECUTABLE_AND_TEST(OrthoManager NAME OrthoManagerComplexMat ${TEST_ARGUMENTS} SOURCES cxx_main_complex.cpp)
  ENDIF(Trilinos_ENABLE_TRIUTILS)
ENDIF(Teuchos_ENABLE_COMPLEX)

IF(Teuchos_ENABLE_TRIUTILS)
  TRILINOS_ADD_EXECUTABLE_AND_TEST(MVOPTester NAME MVOPTpetra ${TEST_ARGUMENTS} SOURCES cxx_main_tpetra.cpp)
ENDIF(Teuchos_ENABLE_TRIUTILS)
