/*
 * This file has been automatically generated by the jrl-cmakemodules.
 * Please see https://github.com/jrl-umi3218/jrl-cmakemodules/blob/master/config.hh.cmake for details.
*/

#ifndef EIQUADPROG_CONFIG_HH
# define EIQUADPROG_CONFIG_HH

// Package version (header).
# define EIQUADPROG_VERSION_UNKNOWN_TAG 0 // Used to mention that the current version is unknown.
# define EIQUADPROG_VERSION "1.3.2"
# define EIQUADPROG_MAJOR_VERSION 1
# define EIQUADPROG_MINOR_VERSION 3
# define EIQUADPROG_PATCH_VERSION 2

#define EIQUADPROG_VERSION_AT_LEAST(major, minor, patch) (EIQUADPROG_MAJOR_VERSION>major || (EIQUADPROG_MAJOR_VERSION>=major && \
                                                             (EIQUADPROG_MINOR_VERSION>minor || (EIQUADPROG_MINOR_VERSION>=minor && \
                                                                                                     EIQUADPROG_PATCH_VERSION>=patch))))

#define EIQUADPROG_VERSION_AT_MOST(major, minor, patch) (EIQUADPROG_MAJOR_VERSION<major || (EIQUADPROG_MAJOR_VERSION<=major && \
                                                            (EIQUADPROG_MINOR_VERSION<minor || (EIQUADPROG_MINOR_VERSION<=minor && \
                                                                                                     EIQUADPROG_PATCH_VERSION<=patch))))

// Handle portable symbol export.
// Defining manually which symbol should be exported is required
// under Windows whether MinGW or MSVC is used.
//
// The headers then have to be able to work in two different modes:
// - dllexport when one is building the library,
// - dllimport for clients using the library.
//
// On Linux, set the visibility accordingly. If C++ symbol visibility
// is handled by the compiler, see: http://gcc.gnu.org/wiki/Visibility
//
// Explicit template instantiation on Windows need to add
// dllexport on the definition and dllimport on the declaration.
// The XXX_EXPLICIT_INSTANTIATION_DECLARATION_DLLAPI macro
// should be set on the declaration while
// the XXX_EXPLICIT_INSTANTIATION_DEFINITION_DLLAPI macro
// should be set on the definition.
# if defined _WIN32 || defined __CYGWIN__
// On Microsoft Windows, use dllimport and dllexport to tag symbols.
#  define EIQUADPROG_DLLIMPORT __declspec(dllimport)
#  define EIQUADPROG_DLLEXPORT __declspec(dllexport)
#  define EIQUADPROG_DLLLOCAL
#  define EIQUADPROG_EXPLICIT_INSTANTIATION_DECLARATION_DLLIMPORT __declspec(dllimport)
#  define EIQUADPROG_EXPLICIT_INSTANTIATION_DECLARATION_DLLEXPORT
#  define EIQUADPROG_EXPLICIT_INSTANTIATION_DEFINITION_DLLIMPORT __declspec(dllimport)
#  define EIQUADPROG_EXPLICIT_INSTANTIATION_DEFINITION_DLLEXPORT __declspec(dllexport)
# else
// On Linux, for GCC >= 4, tag symbols using GCC extension.
#  if __GNUC__ >= 4
#   define EIQUADPROG_DLLIMPORT __attribute__ ((visibility("default")))
#   define EIQUADPROG_DLLEXPORT __attribute__ ((visibility("default")))
#   define EIQUADPROG_DLLLOCAL  __attribute__ ((visibility("hidden")))
#   define EIQUADPROG_EXPLICIT_INSTANTIATION_DECLARATION_DLLIMPORT __attribute__ ((visibility("default")))
#   define EIQUADPROG_EXPLICIT_INSTANTIATION_DECLARATION_DLLEXPORT __attribute__ ((visibility("default")))
#   define EIQUADPROG_EXPLICIT_INSTANTIATION_DEFINITION_DLLIMPORT
#   define EIQUADPROG_EXPLICIT_INSTANTIATION_DEFINITION_DLLEXPORT
#  else
// Otherwise (GCC < 4 or another compiler is used), export everything.
#   define EIQUADPROG_DLLIMPORT
#   define EIQUADPROG_DLLEXPORT
#   define EIQUADPROG_DLLLOCAL
#   define EIQUADPROG_EXPLICIT_INSTANTIATION_DECLARATION_DLLIMPORT
#   define EIQUADPROG_EXPLICIT_INSTANTIATION_DECLARATION_DLLEXPORT
#   define EIQUADPROG_EXPLICIT_INSTANTIATION_DEFINITION_DLLIMPORT
#   define EIQUADPROG_EXPLICIT_INSTANTIATION_DEFINITION_DLLEXPORT
#  endif // __GNUC__ >= 4
# endif // defined _WIN32 || defined __CYGWIN__

# ifdef EIQUADPROG_STATIC
// If one is using the library statically, get rid of
// extra information and use standard explicit template
// instantiation keyword.
#  define EIQUADPROG_DLLAPI
#  define EIQUADPROG_LOCAL
#  define EIQUADPROG_EXPLICIT_INSTANTIATION_DECLARATION extern template
# else
// Depending on whether one is building or using the
// library define DLLAPI to import or export and
// define the right explicit template instantiation keyword.
#  ifdef eiquadprog_EXPORTS
#   define EIQUADPROG_DLLAPI EIQUADPROG_DLLEXPORT
#   define EIQUADPROG_EXPLICIT_INSTANTIATION_DECLARATION_DLLAPI EIQUADPROG_EXPLICIT_INSTANTIATION_DECLARATION_DLLEXPORT
#   define EIQUADPROG_EXPLICIT_INSTANTIATION_DEFINITION_DLLAPI EIQUADPROG_EXPLICIT_INSTANTIATION_DEFINITION_DLLEXPORT
#  else
#   define EIQUADPROG_DLLAPI EIQUADPROG_DLLIMPORT
#   define EIQUADPROG_EXPLICIT_INSTANTIATION_DECLARATION_DLLAPI EIQUADPROG_EXPLICIT_INSTANTIATION_DECLARATION_DLLIMPORT
#   define EIQUADPROG_EXPLICIT_INSTANTIATION_DEFINITION_DLLAPI EIQUADPROG_EXPLICIT_INSTANTIATION_DEFINITION_DLLIMPORT
#  endif // EIQUADPROG_EXPORTS
#  define EIQUADPROG_LOCAL EIQUADPROG_DLLLOCAL
# endif // EIQUADPROG_STATIC
#endif //! EIQUADPROG_CONFIG_HH
