# As input the following variables should be set:
#
#   MLPACK_SOURCE_DIR: directory containing mlpack sources.
#
# And our goal in this file is to generate/configure mlpack.pc.

# First, we need to extract the version string.
if (NOT EXISTS "${CMAKE_BINARY_DIR}/include/mlpack/core/util/version.hpp")
  message(FATAL_ERROR "Cannot open "
      "${CMAKE_BINARY_DIR}/include/mlpack/core/util/version.hpp to extract "
      "version!")
endif ()

file(READ "${CMAKE_BINARY_DIR}/include/mlpack/core/util/version.hpp"
    VERSION_HPP_CONTENTS)
string(REGEX REPLACE ".*#define MLPACK_VERSION_MAJOR ([0-9]+).*" "\\1"
    MLPACK_VERSION_MAJOR "${VERSION_HPP_CONTENTS}")
string(REGEX REPLACE ".*#define MLPACK_VERSION_MINOR ([0-9]+).*" "\\1"
    MLPACK_VERSION_MINOR "${VERSION_HPP_CONTENTS}")
string(REGEX REPLACE ".*#define MLPACK_VERSION_PATCH [\"]?([0-9x]+)[\"]?.*" "\\1"
    MLPACK_VERSION_PATCH "${VERSION_HPP_CONTENTS}")

set(MLPACK_VERSION_STRING
    "${MLPACK_VERSION_MAJOR}.${MLPACK_VERSION_MINOR}.${MLPACK_VERSION_PATCH}")

configure_file(
    ${CMAKE_BINARY_DIR}/CMake/mlpack.pc.in.partial
    ${CMAKE_BINARY_DIR}/lib/pkgconfig/mlpack.pc @ONLY)
