set(xmsSrcs
  ElementSizing.cxx
  ExportModel.cxx
  ImportXMSMesh.cxx
  RefinementSources.cxx
  Registrar.cxx
)

set(xmsHeaders
  EdgeMap.h
  ElementSizing.h
  ExportModel.h
  ImportXMSMesh.h
  RefinementSources.h
  Registrar.h
)

set(operators
  GenerateMesh
)

foreach (operator ${operators})
  smtk_encode_file("${CMAKE_CURRENT_SOURCE_DIR}/operators/${operator}.sbt"
    TARGET_OUTPUT targetName)
  list(APPEND xmsSrcs "${CMAKE_CURRENT_SOURCE_DIR}/operators/${operator}.cxx")
  list(APPEND xmsHeaders "${CMAKE_CURRENT_SOURCE_DIR}/operators/${operator}.h")
  list(APPEND _dependencies ${targetName})
endforeach ()

add_library(smtkXMSMesh ${xmsSrcs})

target_link_libraries(smtkXMSMesh
  PUBLIC
    smtkCore
    XMS::Mesher
)

add_dependencies(smtkXMSMesh ${_dependencies})

install(
  TARGETS smtkXMSMesh
  EXPORT  xms_smtk
  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})

smtk_export_header(smtkXMSMesh Exports.h)

if(ENABLE_PYTHON_WRAPPING)
  add_subdirectory(pybind11)
endif()
