cmake_minimum_required(VERSION 3.31)
project ( xdrfile )

include(GNUInstallDirs)

set ( PROJECT_DESCRIPTION "Reads/writes compressed trajectory files" )
set ( PROJECT_URL "https://github.com/MDAnalysis/mdanalysis" )
set ( VERSION "1.1.4" )


string ( TOLOWER ${CMAKE_PROJECT_NAME} PACKAGE_NAME )
set ( PACKAGE_VERSION "${PACKAGE_NAME}" )

file ( GLOB SRCS "src/*.c" )
add_library ( ${CMAKE_PROJECT_NAME} SHARED ${SRCS} )
set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${VERSION} SOVERSION 1)
target_compile_options(${CMAKE_PROJECT_NAME} PUBLIC -Wno-error=incompatible-pointer-types)


install ( TARGETS ${CMAKE_PROJECT_NAME} EXPORT ${PACKAGE_NAME}-targets LIBRARY  )
install ( DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${CMAKE_PROJECT_NAME} FILES_MATCHING PATTERN "*.h")

# pkg-config
configure_file(
   "${CMAKE_CURRENT_SOURCE_DIR}/lib${CMAKE_PROJECT_NAME}.pc.cmake.in"
   "${CMAKE_CURRENT_BINARY_DIR}/lib${CMAKE_PROJECT_NAME}.pc"
   @ONLY
)
install ( FILES
   "${CMAKE_CURRENT_BINARY_DIR}/lib${CMAKE_PROJECT_NAME}.pc"
   DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
)

#-----------------------------------------------------
# Publicize installed location to other CMake projects
#-----------------------------------------------------

set ( EXPORT_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PACKAGE_VERSION}" )

include ( CMakePackageConfigHelpers ) # Standard CMake module
write_basic_package_version_file(
"${CMAKE_BINARY_DIR}/${PACKAGE_NAME}-config-version.cmake"
  VERSION ${VERSION}
  COMPATIBILITY SameMajorVersion )

# install package config file
configure_package_config_file (
  "${CMAKE_SOURCE_DIR}/${CMAKE_PROJECT_NAME}-config.cmake.in"
  "${CMAKE_BINARY_DIR}/pkg/${PACKAGE_NAME}-config.cmake"
  INSTALL_DESTINATION "${EXPORT_INSTALL_DIR}"
  PATH_VARS EXPORT_INSTALL_DIR)

# Install the config and version files so that we can find this project with
# others
install ( FILES
  "${CMAKE_BINARY_DIR}/pkg/${PACKAGE_NAME}-config.cmake"
  "${CMAKE_BINARY_DIR}/${PACKAGE_NAME}-config-version.cmake"
  DESTINATION "${EXPORT_INSTALL_DIR}" )

#-----------------------------------------------------
# Tests
#-----------------------------------------------------
# enable_testing ()
include_directories ( include )
# set ( TEST_NAME "${CMAKE_PROJECT_NAME}_test")
# add_executable ( ${TEST_NAME} xdrfile_c_test.c )
# target_link_libraries ( ${TEST_NAME} m )
# target_link_libraries ( ${TEST_NAME} ${CMAKE_PROJECT_NAME} )
