set(qt_sources
  ctkCollapsibleButton.cpp
  qtDragSelfFilter.cxx
  qtInductionCoilsModel.cxx
  qtInductionSourceModel.cxx
  qtMaterialAttribute.cxx
  qtMaterialItem.cxx
  )

set(moc_headers
  ctkCollapsibleButton.h
  qtDragSelfFilter.h
  qtInductionCoilsModel.h
  qtInductionSourceModel.h
  qtMaterialAttribute.h
  qtMaterialItem.h
  )

set(qt_headers
  ${moc_headers}
  )

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)

add_library(smtkTruchasQtExt
  ${qt_sources}
  ${MOC_BUILT_SOURCES}
)

# Add location of moc files
target_include_directories(smtkTruchasQtExt PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
target_include_directories(smtkTruchasQtExt PUBLIC
  $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
  $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
  $<INSTALL_INTERFACE:include>
)

# Publicly link to smtkCore
target_link_libraries(smtkTruchasQtExt
  LINK_PUBLIC
    smtkQtExt
    smtkCore
    Qt5::Core
    Qt5::Widgets
  )
generate_export_header(smtkTruchasQtExt EXPORT_FILE_NAME Exports.h)

smtk_get_kit_name(name dir_prefix)

# Install the header files
install(
  FILES
    ${hdrs}
    ${MOC_BUILT_HEADERS}
    ${UIC_BUILT_HEADERS}
    ${CMAKE_CURRENT_BINARY_DIR}/Exports.h
  DESTINATION
    include/${PROJECT_NAME}/${PROJECT_VERSION}/${dir_prefix})

# Install the library and exports
install(
  TARGETS smtkTruchasQtExt
  EXPORT  TruchasExtensions
  ARCHIVE DESTINATION lib
  LIBRARY DESTINATION lib
  RUNTIME DESTINATION bin
  PUBLIC_HEADER DESTINATION include/${PROJECT_NAME}/${PROJECT_VERSION}/${dir_prefix})
