
IF (${PACKAGE_NAME}_ENABLE_Kokkos)
   SET(SEACAS_HAVE_KOKKOS ON)
ENDIF()

IF (${TPL_ENABLE_CGNS})
  SET(SEACAS_HAVE_CGNS ON)
ENDIF()

IF (${TPL_ENABLE_MPI})
  SET(SEACAS_HAVE_MPI ON)
ENDIF()

IF (TPL_ENABLE_DATAWAREHOUSE)
  SET(SEACAS_HAVE_DATAWAREHOUSE ON)
ENDIF()

IF (${PACKAGE_NAME}_ENABLE_SEACASExodus)
  IF (TPL_Netcdf_PARALLEL)
    SET(PARALLEL_AWARE_EXODUS ON)
  ENDIF()
ENDIF()

TRIBITS_CONFIGURE_FILE(${PACKAGE_NAME}_config.h)

SET(HEADERS "")
SET(SOURCES "")

SET(HEADERS ${HEADERS}
  ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}_config.h)

ASSERT_DEFINED(${PROJECT_NAME}_ENABLE_Zoltan)
IF (NOT ${PROJECT_NAME}_ENABLE_Zoltan)
  ADD_DEFINITIONS(-DNO_ZOLTAN_SUPPORT)
ENDIF()

IF (${PROJECT_NAME}_ENABLE_ParMETIS)
ELSE()
  ADD_DEFINITIONS(-DNO_PARMETIS_SUPPORT)
ENDIF()

SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR})
APPEND_GLOB(HEADERS ${DIR}/Ioss_*.h)
APPEND_GLOB(SOURCES ${DIR}/*.C)

IF (NOT TPL_ENABLE_MPI)
  LIST(REMOVE_ITEM SOURCES ${DIR}/Ioss_Decomposition.C)
  LIST(REMOVE_ITEM HEADERS ${DIR}/Ioss_Decomposition.h)
ENDIF()

INCLUDE_DIRECTORIES(
  "${CMAKE_CURRENT_SOURCE_DIR}"
  "${CMAKE_CURRENT_BINARY_DIR}"
  "${Zoltan_INCLUDE_DIRS}"
  )

TRIBITS_ADD_LIBRARY(
  Ioss
  HEADERS ${HEADERS}
  SOURCES ${SOURCES}
  )


if (${CMAKE_PROJECT_NAME} STREQUAL "SEACASProj")
   # add a target to generate API documentation with Doxygen
   find_package(Doxygen)
   if(DOXYGEN_FOUND)
     add_custom_command(TARGET Ioss
        COMMAND ${DOXYGEN_EXECUTABLE} ARGS Doxyfile
        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..
        COMMENT "Generating IOSS API documentation with Doxygen" VERBATIM
      )     
   endif(DOXYGEN_FOUND)
endif()

IF (${PACKAGE_NAME}_ENABLE_SEACASExodus)
  ADD_SUBDIRECTORY(exodus)
  
  ADD_SUBDIRECTORY(exo_fpp)

  IF (TPL_Netcdf_PARALLEL)
    ADD_SUBDIRECTORY(exo_par)
  ENDIF()

  ADD_SUBDIRECTORY(exo_fac)
ENDIF()

IF (${PACKAGE_NAME}_ENABLE_Pamgen)
  ADD_SUBDIRECTORY(pamgen)
ENDIF()

IF (TPL_ENABLE_DATAWAREHOUSE)
  ADD_SUBDIRECTORY(data_warehouse)
ENDIF()

IF (TPL_ENABLE_CGNS)
  ADD_SUBDIRECTORY(cgns)
ENDIF()

ADD_SUBDIRECTORY(visualization)
ADD_SUBDIRECTORY(generated)
ADD_SUBDIRECTORY(heartbeat)
ADD_SUBDIRECTORY(transform)
ADD_SUBDIRECTORY(init)
ADD_SUBDIRECTORY(main)

TRIBITS_ADD_TEST_DIRECTORIES(utest)

