#------------------------------------------------------------------------------
# Install header files

file(GLOB SYFI_HEADERS *.h)
file(GLOB SYFI_SOURCES *.cpp)

install(FILES ${SYFI_HEADERS}
  DESTINATION ${SYFI_INCLUDE_DIR}/SyFi
  COMPONENT Development)

#------------------------------------------------------------------------------
# Generate and install syfi_version.h

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/syfi_version.h.in
  ${CMAKE_CURRENT_BINARY_DIR}/syfi_version.h @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/syfi_version.h
  DESTINATION ${SYFI_INCLUDE_DIR}/SyFi
  COMPONENT Development)

#------------------------------------------------------------------------------
# Build and install library

# Define libraries
add_library(syfi ${SYFI_HEADERS} ${SYFI_SOURCES})

# Append the library version information to the library target properties
if (SYFI_WITH_LIBRARY_VERSION)
  string(REPLACE "+" "" SYFI_LIBRARY_VERSION ${SYFILIB_VERSION})
  # This setting of SOVERSION assumes that any API change
  # will increment either the minor or major version number.
  set(SYFI_LIBRARY_PROPERTIES ${SYFI_LIBRARY_PROPERTIES}
    VERSION ${SYFI_LIBRARY_VERSION}
    SOVERSION ${SYFILIB_MAJOR_VERSION}.${SYFILIB_MINOR_VERSION}
  )
endif()
set_target_properties(syfi PROPERTIES ${SYFI_LIBRARY_PROPERTIES})

# Add SyFi target libraries
target_link_libraries(syfi ${SYFI_TARGET_LINK_LIBRARIES})

# Install library
install(TARGETS syfi
  RUNTIME DESTINATION ${SYFI_LIB_DIR} COMPONENT RuntimeExecutables
  LIBRARY DESTINATION ${SYFI_LIB_DIR} COMPONENT RuntimeLibraries
  ARCHIVE DESTINATION ${SYFI_LIB_DIR} COMPONENT Development
  )

#------------------------------------------------------------------------------
# SWIG

add_subdirectory(swig)

#------------------------------------------------------------------------------
# Generate CMake config file (syfi-config.cmake)

# Set library location
get_target_property(SYFI_LIBRARY_LOCATION syfi LOCATION)
get_filename_component(SYFI_LIBRARY_FILENAME ${SYFI_LIBRARY_LOCATION} NAME)
set(SYFI_LIBRARY "${CMAKE_INSTALL_PREFIX}/${SYFI_LIB_DIR}/${SYFI_LIBRARY_FILENAME}")

configure_file(${SYFI_SOURCE_DIR}/cmake/templates/syfi-config.cmake.in
  ${CMAKE_BINARY_DIR}/syfi-config.cmake @ONLY)
install(FILES ${CMAKE_BINARY_DIR}/syfi-config.cmake
  DESTINATION ${SYFI_SHARE_DIR}/cmake
  COMPONENT Development
  )
