
TRIBITS_SUBPACKAGE(TpetraAdapters)

ASSERT_DEFINED(
  Thyra_ENABLE_EXPLICIT_INSTANTIATION
  Tpetra_INST_FLOAT
  Tpetra_INST_COMPLEX_DOUBLE
  Tpetra_INST_COMPLEX_FLOAT
  Teuchos_INST_FLOAT
  Teuchos_INST_COMPLEX_DOUBLE
  Teuchos_INST_COMPLEX_FLOAT
)

IF (Thyra_ENABLE_EXPLICIT_INSTANTIATION)

  IF ((Tpetra_INST_FLOAT AND NOT Teuchos_INST_FLOAT) OR (NOT Tpetra_INST_FLOAT AND Teuchos_INST_FLOAT))
    MESSAGE(FATAL_ERROR "Tpetra_INST_FLOAT=${Tpetra_INST_FLOAT} != Teuchos_INST_FLOAT=${Teuchos_INST_FLOAT}. The two need to match. Consider setting Trilinos_ENABLE_FLOAT instead of setting Tpetra_INST_FLOAT and/or Teuchos_INST_FLOAT individually.")
  ENDIF()

  IF ((Tpetra_INST_COMPLEX_FLOAT AND NOT Teuchos_INST_COMPLEX_FLOAT) OR (NOT Tpetra_INST_COMPLEX_FLOAT AND Teuchos_INST_COMPLEX_FLOAT))
    MESSAGE(FATAL_ERROR "Tpetra_INST_COMPLEX_FLOAT=${Tpetra_INST_COMPLEX_FLOAT} != Teuchos_INST_COMPLEX_FLOAT=${Teuchos_INST_COMPLEX_FLOAT}. The two need to match. Consider setting Trilinos_ENABLE_COMPLEX_FLOAT instead of setting Tpetra_INST_COMPLEX_FLOAT and/or Teuchos_INST_COMPLEX_FLOAT individually.")
  ENDIF()

  IF ((Tpetra_INST_COMPLEX_DOUBLE AND NOT Teuchos_INST_COMPLEX_DOUBLE) OR (NOT Tpetra_INST_COMPLEX_DOUBLE AND Teuchos_INST_COMPLEX_DOUBLE))
    MESSAGE(FATAL_ERROR "Tpetra_INST_COMPLEX_DOUBLE=${Tpetra_INST_COMPLEX_DOUBLE} != Teuchos_INST_COMPLEX_DOUBLE=${Teuchos_INST_COMPLEX_DOUBLE}. The two need to match. Consider setting Trilinos_ENABLE_COMPLEX_DOUBLE instead of setting Tpetra_INST_COMPLEX_DOUBLE and/or Teuchos_INST_COMPLEX_DOUBLE individually.")
  ENDIF()

ENDIF()

ADD_SUBDIRECTORY(src)

TRIBITS_ADD_TEST_DIRECTORIES(test)

#TRIBITS_ADD_TEST_DIRECTORIES(example)

TRIBITS_SUBPACKAGE_POSTPROCESS()
