#
# Go the extra mile and treat this as a library
# that users can link to in their own programs.
#
add_library(libhsx hsx_m.f90)

# Expose hsx library for external projects
add_library(${PROJECT_NAME}::libhsx ALIAS libhsx)
set_target_properties(libhsx
  PROPERTIES
  VERSION "${PROJECT_VERSION}"
  Fortran_MODULE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include"
)

target_include_directories(
  libhsx
  PUBLIC
  $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
  $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)

#
# Now the utilities
# 
add_executable( hsx2hs hsx2hs.f90)
add_executable( hs2hsx hs2hsx.f90)

target_link_libraries(hsx2hs libhsx)
target_link_libraries(hs2hsx libhsx)

if( SIESTA_INSTALL )
  install(
    TARGETS libhsx
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    )
  install(
    DIRECTORY
    "${CMAKE_CURRENT_BINARY_DIR}/include/"
    DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
  )
  install(
    TARGETS
      hsx2hs hs2hsx
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
    )
endif()
