if (${CMAKE_PROJECT_NAME} STREQUAL "Seacas")
  INCLUDE(InstallSymLink)
endif()

SET( ACCESSDIR ${CMAKE_INSTALL_PREFIX} )
SET( SEPARATOR "_")
INCLUDE(GNUInstallDirs)

ASSERT_DEFINED(${PROJECT_NAME}_ENABLE_SEACASNemspread)
ASSERT_DEFINED(${PROJECT_NAME}_ENABLE_SEACASNemslice)
IF (${PROJECT_NAME}_ENABLE_SEACASNemspread AND ${PROJECT_NAME}_ENABLE_SEACASNemslice)
  IF (${PROJECT_NAME}_ENABLE_Zoltan)
     SET( DECOMP_DEFAULT rib )
  ELSE()
     SET( DECOMP_DEFAULT inertial )
  ENDIF()

  CONFIGURE_FILE(
	${CMAKE_CURRENT_SOURCE_DIR}/decomp.in
	${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/decomp
	@ONLY
	)
  FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/decomp
       DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
       FILE_PERMISSIONS OWNER_READ OWNER_WRITE
         OWNER_EXECUTE GROUP_READ GROUP_EXECUTE)
  INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/decomp DESTINATION ${CMAKE_INSTALL_BINDIR})
ENDIF()

ASSERT_DEFINED(${PROJECT_NAME}_ENABLE_SEACASBlot)
IF (${PROJECT_NAME}_ENABLE_SEACASBlot)
  CONFIGURE_FILE(
	${CMAKE_CURRENT_SOURCE_DIR}/blot.in
	${CMAKE_CURRENT_BINARY_DIR}/blot
	@ONLY
	)
  INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/blot DESTINATION ${CMAKE_INSTALL_BINDIR})
ENDIF()

ASSERT_DEFINED(${PROJECT_NAME}_ENABLE_SEACASFastq)
IF (${PROJECT_NAME}_ENABLE_SEACASFastq)
  CONFIGURE_FILE(
	${CMAKE_CURRENT_SOURCE_DIR}/fastq.in
	${CMAKE_CURRENT_BINARY_DIR}/fastq
	@ONLY
	)
  INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/fastq DESTINATION ${CMAKE_INSTALL_BINDIR})
ENDIF()

ASSERT_DEFINED(${PROJECT_NAME}_ENABLE_SEACASEpu)
IF (${PROJECT_NAME}_ENABLE_SEACASEpu)
  CONFIGURE_FILE(
	${CMAKE_CURRENT_SOURCE_DIR}/epup.in
	${CMAKE_CURRENT_BINARY_DIR}/epup
	@ONLY
	)
  INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/epup DESTINATION ${CMAKE_INSTALL_BINDIR})
ENDIF()

ASSERT_DEFINED(${PROJECT_NAME}_ENABLE_SEACASConjoin)
IF (${PROJECT_NAME}_ENABLE_SEACASConjoin)
  CONFIGURE_FILE(
	${CMAKE_CURRENT_SOURCE_DIR}/pconjoin.in
	${CMAKE_CURRENT_BINARY_DIR}/pconjoin
	@ONLY
	)
  INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/pconjoin DESTINATION ${CMAKE_INSTALL_BINDIR})
ENDIF()

TRIBITS_INCLUDE_DIRECTORIES(
  "${CMAKE_CURRENT_SOURCE_DIR}"
)

SET(HEADERS "")

IF (NOT CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
   APPEND_GLOB(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/getopt.seacas.c)
   ASSERT_DEFINED(${PROJECT_NAME}_ENABLE_SEACASBlot)
   ASSERT_DEFINED(${PROJECT_NAME}_ENABLE_SEACASFastq)
   ASSERT_DEFINED(${PROJECT_NAME}_ENABLE_SEACASEpu)
   IF (${PROJECT_NAME}_ENABLE_SEACASBlot OR
       ${PROJECT_NAME}_ENABLE_SEACASFastq OR
       ${PROJECT_NAME}_ENABLE_SEACASEpu)
      ADD_EXECUTABLE(getopt.seacas ${SOURCES} )
      install_executable(getopt.seacas)
   endif()
ENDIF()

ASSERT_DEFINED(${PROJECT_NAME}_ENABLE_SEACASExodus)
ASSERT_DEFINED(BUILD_SHARED_LIBS)
IF (${PROJECT_NAME}_ENABLE_SEACASExodus)
   find_package(Python COMPONENTS Interpreter Development)
   IF (${Python_FOUND})
      message(STATUS "Found python version ${Python_VERSION}")
      IF (${Python_VERSION} VERSION_LESS "3.0")
	 SET( EXODUSPY "exodus2.py" )
	 SET( EXOMERGE "exomerge2.py")
	 MESSAGE(STATUS "A Python-2 version of exodus.py and exomerge.py will be installed.")
      ELSE()
	 SET( EXODUSPY "exodus3.py" )
	 SET( EXOMERGE "exomerge3.py")
#	 IF (NOT ${PROJECT_NAME}_HOSTNAME STREQUAL "APPVEYOR-VM")
#            ADD_TEST(NAME test_exodus3.py COMMAND ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/tests/test_exodus3.py)
#            ADD_TEST(NAME test_exomerge3.py COMMAND ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/tests/exomerge_unit_test.py)
#	 ENDIF()
	 MESSAGE(STATUS "A Python-3 version of exodus.py and exomerge.py will be installed.")
      ENDIF()

      IF (BUILD_SHARED_LIBS OR SEACASExodus_ENABLE_SHARED)
         FILE(GLOB_RECURSE EXODUSIIH "${CMAKE_SOURCE_DIR}/packages/seacas/*exodusII.h")
         FILE(STRINGS "${EXODUSIIH}" EXODUS_VERSION REGEX "#define EXODUS_VERSION .*")
         CONFIGURE_FILE(
             ${CMAKE_CURRENT_SOURCE_DIR}/exodus2.in.py
             ${CMAKE_CURRENT_BINARY_DIR}/exodus2.py
             @ONLY
             )
         CONFIGURE_FILE(
             ${CMAKE_CURRENT_SOURCE_DIR}/exodus3.in.py
             ${CMAKE_CURRENT_BINARY_DIR}/exodus3.py
             @ONLY
             )
         CONFIGURE_FILE(
             ${CMAKE_CURRENT_SOURCE_DIR}/tests/exomerge_unit_test.py
             ${CMAKE_CURRENT_BINARY_DIR}/tests/exomerge_unit_test.py
             @ONLY
             )
         CONFIGURE_FILE(
             ${CMAKE_CURRENT_SOURCE_DIR}/exomerge3.py
             ${CMAKE_CURRENT_BINARY_DIR}/exomerge3.py
             @ONLY
             )
         CONFIGURE_FILE(
             ${CMAKE_CURRENT_SOURCE_DIR}/exomerge2.py
             ${CMAKE_CURRENT_BINARY_DIR}/exomerge2.py
             @ONLY
             )
         CONFIGURE_FILE(
             ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_exodus3.py
             ${CMAKE_CURRENT_BINARY_DIR}/tests/test_exodus3.py
             @ONLY
             )
         CONFIGURE_FILE(
             ${CMAKE_CURRENT_SOURCE_DIR}/tests/test-assembly.exo
             ${CMAKE_CURRENT_BINARY_DIR}/tests/test-assembly.exo
             COPYONLY
             )

         INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/exodus2.py DESTINATION ${CMAKE_INSTALL_LIBDIR})
         INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/exodus3.py DESTINATION ${CMAKE_INSTALL_LIBDIR})
         INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/tests/test_exodus3.py DESTINATION ${CMAKE_INSTALL_LIBDIR}/tests/)
         INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/tests/exomerge_unit_test.py DESTINATION ${CMAKE_INSTALL_LIBDIR}/tests/)
         INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/tests/test-assembly.exo DESTINATION ${CMAKE_INSTALL_LIBDIR}/tests/)
         INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/tests/exomerge_unit_test.e DESTINATION ${CMAKE_INSTALL_LIBDIR}/tests/)
         INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/exomerge2.py DESTINATION ${CMAKE_INSTALL_LIBDIR})
         INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/exomerge3.py DESTINATION ${CMAKE_INSTALL_LIBDIR})

         if (${CMAKE_PROJECT_NAME} STREQUAL "Seacas" AND NOT WIN32)
            InstallSymLink(${EXODUSPY} ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/exodus.py)
            InstallSymLink(${EXOMERGE} ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/exomerge.py)
         endif()
      ELSE()
         MESSAGE(STATUS "Exodus.py and exomerge.py NOT installed since shared exodus library is not available.")
      ENDIF()
   else()
      MESSAGE(STATUS "Exodus.py and exomerge.py NOT installed since Python could not be found.")
   endif()
ELSE()
   MESSAGE(STATUS "Exodus.py and exomerge.py NOT installed since Exodus is not enabled.")
endif()
