set(srcs
  Registrar.cxx
  )

set(headers
  Registrar.h
  )

add_library(smtkRGGSimulationPyARC SHARED ${srcs})

target_link_libraries(smtkRGGSimulationPyARC
  PUBLIC
    smtkCore
    smtkRGGSession
    Boost::boost
    Boost::filesystem
  PRIVATE
    ${__dependencies}
)

target_include_directories(smtkRGGSimulationPyARC PUBLIC
  $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
  $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
  $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${PROJECT_VERSION}>
)

generate_export_header(smtkRGGSimulationPyARC EXPORT_FILE_NAME Exports.h)

smtk_get_kit_name(name dir_prefix)

# Install the header files
install(
  FILES
  ${headers}
  ${CMAKE_CURRENT_BINARY_DIR}/Exports.h
  DESTINATION
  ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${PROJECT_VERSION}/${dir_prefix})

# Install the library and exports
install(
  TARGETS smtkRGGSimulationPyARC
  EXPORT  RGGSession
  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
  PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${PROJECT_VERSION}/${dir_prefix})


set(rggPySrcs
  __init__.py
  convert_to_pyarc.py
  pyarc_writer.py
  operators/export_to_pyarc.py
  operators/generate_cross_sections.py
  )

set(rgg_pymodulefiles)
set(rgg_pyxmlfiles)

smtk_pyoperation_xml("${CMAKE_CURRENT_SOURCE_DIR}/operators/export_to_pyarc.sbt" rgg_pyxmlfiles)
smtk_pyoperation_xml("${CMAKE_CURRENT_SOURCE_DIR}/operators/generate_cross_sections.sbt" rgg_pyxmlfiles)

set(relativedir "rggsession/simulation/pyarc")
foreach(pyfile ${rggPySrcs})
  get_filename_component(filename ${pyfile} NAME)
  configure_file(
    "${CMAKE_CURRENT_SOURCE_DIR}/${pyfile}"
    "${CMAKE_BINARY_DIR}/${relativedir}/${filename}" @ONLY
    )
  list(APPEND rgg_pymodulefiles "${CMAKE_BINARY_DIR}/${relativedir}/${filename}")
endforeach()

foreach(pyfile ${rgg_pyxmlfiles})
  get_filename_component(filename ${pyfile} NAME)
  configure_file(
    "${pyfile}"
    "${PROJECT_BINARY_DIR}/${relativedir}/${filename}" @ONLY
    )
  list(APPEND rgg_pymodulefiles "${PROJECT_BINARY_DIR}/${relativedir}/${filename}")
endforeach()

file(RELATIVE_PATH relativedir ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
install(
  FILES ${rgg_pymodulefiles}
  DESTINATION "${PYTHON_MODULEDIR}/${relativedir}"
  )

if (SIMULATION_WORKFLOWS_ROOT)
  install(
    DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/templates/"
    DESTINATION "${SIMULATION_WORKFLOWS_ROOT}/pyarc"
  )
endif()
